The post Y la máquina ganó de nuevo appeared first on S3lab.
]]>Hoy en día, sigue siendo un juego con un gran número de adeptos y jugadores profesionales. Sin embargo, hace un par de semanas apareció un nuevo jugador en el tablero, AlphaGo. Nacido en los laboratorios de Google este jugador ha tenido la osadía de retar a los grandes maestros del juego. Y de momento va ganando la partida.
A través del uso de redes neuronales y árboles de búsqueda, el algoritmo desarrollado por Google le permitido luchar de tú a tú con los mayores expertos en la materia de este juego. Primero, fue el campeón europeo de este juego el que sucumbió en 3 rondas al algoritmo. Y ahora ha sido el campeón mundial el que ha perdido el primer envite. Para entender mejor lo que supone este hito, en Nature han preparado un gran vídeo.
La evolución que está experimentando la inteligencia artificial en los últimos años supone una de las épocas más interesantes en este ámbito. Además, la posibilidad de aplicar y transferir estas técnicas a la sociedad añade un aliciente más a esta gran época. Un mundo de oportunidades se ofrece desde múltiples puntos de vista. Los próximos años prometen ser realmente apasionantes.
The post Y la máquina ganó de nuevo appeared first on S3lab.
]]>The post Liberad a Willy, datos para todos appeared first on S3lab.
]]>En los últimos días Yahoo! ha salido en las noticias, y no precisamente por cosas agradables. Sin embargo, la pasada semana liberaron 13,5 TB de conjuntos de datos anónimos de interacción de los usuarios. Además, para hacer más apetitoso el conjunto de datos, también incluye información como rangos de edades, género y datos geográficos generalizados.
Esto permite a los investigadores del área de aprendizaje automático realizar un muy amplio abanico de experimentos con conjuntos de datos que normalmente están reservados para las grandes compañías.
En la web se pueden ver los conjuntos de datos disponibles por áreas, como son datos de sistemas de computación, datos de imágenes o datos de marketing y anuncios. Lo que llama poderosamente la atención son los requisitos para poder acceder al conjunto de datos:
- Ser miembro, empleado o estudiante de una universidad acreditada.
- Mandar un correo desde una cuenta de una universidad para solicitarlo.
Pero aún llama la atención las restricciones del conjunto de datos. Expresamente está prohibido compartir el conjunto de datos con:
- Entidades comerciales
- Empleados en entidades comerciales con relación con la universidad.
- Instituciones de investigación no adscritos a una universidad de investigación.
Muchas veces hemos comentado en este blog la importancia del negocio de los datos. Y en este caso, Yahoo, ha liberado a todos una mina de oro.
The post Liberad a Willy, datos para todos appeared first on S3lab.
]]>The post En lo profundo del aprendizaje automático appeared first on S3lab.
]]>Cómo ellos mismos describen, es una biblioteca de software de código libre para la computación numérica usando grafos de flujos de datos. En el artículo, destacan cómo en 2011 empezaron a trabajar en el proyecto «Google Brain», con el objetivo de explorar el uso de las redes neuronales profundas de gran escala, tanto desde el punto de vista de investigación como desde el punto de vista de producto. TensorFlow es la evolución de la primera aproximación que realizaron en este campo, obteniendo un modelo de programación más flexible y un rendimiento significativamente mejor.
Dentro del framework, la computación es descrita como un grafo dirigido, compuesto por una serie de nodos. Cada uno de estos nodos puede tener múltiples entradas y múltiples salidas, siendo los tensors los valores que fluyen a través de los arcos del grafo. Por otro lado, las operaciones representan una operación abstracta (por ejemplo, una suma) mientras que los kernels es una implementación concreta de una operación que puede ser ejecutada en un dispositivo concreto (por ejemplo, una GPU). Finalmente, las sesiones es el mecanismo en el que los clientes interactúan con el sistema.
Si estáis interesados en ver como se construyen estos sistemas han empezado a aparecer ejemplos de código. Uno de los más interesantes (además del de la propia página web de TensorFlow) es el creado por Aymeric Damien en el que se puede acceder al código de ejemplo, así como a los cuadernos de iPython para ver el código con mayor nivel de detalle. A modo de ejemplo, vamos a mostrar aquí el código correspondiente al clásico «Hola Mundo», sacado de sus ejemplos.
import tensorflow as tf # Create a Constant op # The op is added as a node to the default graph. # The value returned by the constructor represents the output of the Constant op. hello = tf.constant('Hello, TensorFlow!') # Start tf session sess = tf.Session() print sess.run(hello)
Como se puede observar, crea una operación constante que almacena el string «Hello, TensorFlow!». Posteriormente genera una sesión y lanza la operación hello anteriormente creada en la sesión instanciada.
TensorFlow no es más que un ejemplo del desarrollo que se está produciendo en los últimos años en esta área. Aplicaciones punteras de uso común, como Facebook, Google o Airbnb tienen buena parte de sus sistemas monitorizados con este tipo de algoritmos para recomendarnos el mejor alojamiento, la mejor búsqueda, o localizar a amigos de nuestra infancia.
Los miedos de gente tan reputada como Elon Musk o Stephen Hawking se basan en el espectacular crecimiento de este tipo de sistemas en los últimos años y, en general, en la experiencia pasada de convertir grandes avances de la humanidad en grandes peligros para nosotros mismos.
The post En lo profundo del aprendizaje automático appeared first on S3lab.
]]>The post El backstage de «How Old Are You» appeared first on S3lab.
]]>Hace un tiempo hablábamos de una herramienta que presentó Microsoft y que se convirtió en viral (las cifras sobre el éxito de la herramienta son bastante impresionantes: 80 millones de personas subimos 500 millones de imágenes en 7 días.), ya que adivinaba tu edad (o por lo menos lo intentaba). Ahora, dentro de la conferencia Strata + Hadoop, Joseph Sirosh, el mismo que presentó la herramienta en la pasada BUILD, comenta qué cosas han aprendido gracias a esta herramienta y los próximos pasos que están dando. Bienvenidos al backstage de una herramienta viral.
El objetivo de la herramienta no era más que demostrar la potencia de las APIs que se iban a presentar. Entre ellas, herramientas de analítica de datos, de machine learning, de visualización, etc. Para el desarrollo, se contó con un ingeniero durante 3 semanas de trabajo. Tres días antes de la presentación, Joseph mandó un correo interno a Microsoft pediendo ayuda para el testeo de la herramienta, pidiendo por favor que no se divulgara. Por supuesto, no salió bien. Un twittero en Turquía hablo de la herramienta el mismo día. Y empezó a ser viral: 25.000 usuarios accedieron en 3 horas. Sin embargo, sacaron varias conclusiones. La primera, que era buena idea añadir botones para compartir en redes sociales (algún día hablaremos de estos botones y de como trackean a los usuarios), crearon un hashtag y, sobre todo, volvieron a escribir el post que tenían preparado para un enfoque mucho menos técnico.
Una vez lanzado al público, la herramienta se convirtió en viral, tanto que le dedicamos un post en este mismo blog. Pero, ¿qué datos se pueden obtener de una herramienta como esta? En la propia demo enseñaron algunos de ellos, como por ejemplo el número de caras que se han subido, el genero de cada una de ellas, el edad estimada, la localización desde donde se ha subido, el sistema operativo, etc. En una herramienta tan sencilla como esta, se puede sacar una gran cantidad de información de cada uno de nosotros, sin mucho esfuerzo. Y consiguieron 50 millones de usuarios en la primera semana (por ponerlo en contexto, esa cifra de usuarios se consigió tras 75 años en el caso del telefono, y 35 días en el caso de Angry Birds), con un pico máximo de 1,2 millones de usuarios a la hora.
Una de las más importantes es que el éxito se parece mucho a un ataque de denegación de servicio. Con ese volumen de peticiones, el haber montado la infraestructura adecuada evito el colapso de la misma. Por otro lado, la gente compartía más dos tipos de predicciones: las que eran precisas y las que eran muy erróneas (mucho más este segundo tipo de predicciones). También analizaron los datos que recogían, y vieron como en los puntos de máximo apogeo, se subían el doble de fotos de mujeres que de hombres, o como las franjas de edades que más aparecían eran o jóvenes o de mediana edad. También encontraron formas de parecer más joven (por lo menos a los ojos del algoritmo), quitando las gafas o la barba.
El siguiente paso es seguir entrenando el algoritmo. Y la mejor forma de hacer eso, es con humanos. Por ello, han sacado la versión para que otra gente evalúe la edad de las personas de la foto. Y de esa forma seguir recogiendo datos y mejorando la precisión.
Este me parece un buen ejemplo de como, con un juego bastante sencillo, es posible recabar mucha más información de la que pudiera parecer a primera vista. En este caso, no se trata de información crítica, ni puede que muy interesante, pero esto demuestra que de cualquier fuente de datos, hoy en día, cualquiera puede sacar una gran cantidad de información y, si es listo, hasta hacer un buen negocio.
The post El backstage de «How Old Are You» appeared first on S3lab.
]]>The post El poder de la televisión appeared first on S3lab.
]]>Esta serie narra las historia de Elliot Alderson y tiene una serie de peculiaridades que la hacen distinta a las demás. Y una de las que más llama la atención es que los «hackeos» son bastante reales. Nada de aporrear las teclas hasta conseguir un «Access Granted». Las herramientas que se ven en pantalla son reales y su uso es el adecuado (como Wired se encargó de recopilar) y eso es muy raro hoy en día.
Los productores de la serie han llevado a cabo a un exhaustivo trabajo de investigación sobre la cultura hacker y la han plasmado con fidelidad en la pantalla. Un ejemplo claro de ello es una secuencia en la que instalan un spyware en un teléfono Android, y como corresponde a la aplicación Flexispy.
Sin embargo, de todo lo que he leído hasta ahora de la serie, lo que más me ha llamado la atención es la historia del mail que utiliza el protagonista: Protonmail. Al igual que todas las demás, este servicio de correo alojado en Suiza ofrece un servicio en el que la seguridad es el elemento distintivo.
En su blog, la propia empresa cuenta como los productores de la serie se pusieron en contacto con ellos y, tras hacer una profuna investigación sobre la seguridad en distintos sistemas de correo, eran capaces de ver la diferencia técnica entre el servicio que ofrecia la empresa y los de su competencia. Sin embargo, siendo esto llamativo y seguro que raro (no hay más que ver como se tratan los temas informáticos en la televisión), no es lo más interesante de la historia.
En una de las conversaciones con el equipo de Mr. Robot, estos les indicaron que una persona tan obsesionada con la seguridad como Elliot agradecería tener un sistema de monitorización que le permita conocer cuando se mandó un correo, la última vez que se accedió al sistema o los intentos fallidos de login. Y esa idea les pareció tan interesante al equipo de Protonmail que lo añadieron en la siguiente versión.
Muchas veces decimos que no tenemos que creernos lo que vemos en televisión, y es cierto. Sin embargo, series como esta que buscan representar de forma tan fiel algo tan minoritario como la cultura hacker, te reconcilian con el medio.
A veces, yo sí veo la televisión.
The post El poder de la televisión appeared first on S3lab.
]]>The post Por un puñado de tweets appeared first on S3lab.
]]>Para poder acceder al streaming de Twitter, el primer paso es obtener las claves para poder llamar a su API desde programación. Es muy sencillo:
Para poder gestionar el streaming de tweets, lo mejor es utilizar una librería. En este caso, vamos a utilizar Tweepy. Su instalación es muy sencilla:
pip install tweetpy
Una vez instalada, el siguiente código nos dará lo que necesitamos para conectarnos a Twitter:
# Importamos los metodos necesarios de tweepy from tweepy.streaming import StreamListener from tweepy import OAuthHandler import tweepy import csv #Variables that contains the user credentials to access Twitter API access_token = "" access_token_secret = "" consumer_key = "" consumer_secret = "" if __name__ == '__main__': #This handles Twitter authetification and the connection to Twitter Streaming API auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) stream = Stream(auth, l) api = tweepy.API(auth)
Por defecto, únicamente podríamos bajar 200 tweets como máximo, a través del siguiente comando:
new_tweets = api.user_timeline(screen_name = screen_name,count=200)
Desde el punto de vista «arqueológico», esto tiene poco valor. Afortunadamente, hay pequeños scripts que nos ayudan a solventar estos problemas:
#keep grabbing tweets until there are no tweets left to grab while len(new_tweets) > 0: print "getting tweets before %s" % (oldest) #all subsiquent requests use the max_id param to prevent duplicates new_tweets = api.user_timeline(screen_name = screen_name,count=200,max_id=oldest) #save most recent tweets alltweets.extend(new_tweets) #update the id of the oldest tweet less one oldest = alltweets[-1].id - 1 print "...%s tweets downloaded so far" % (len(alltweets))
Y con esto, tenemos recopilados todos los tweets. En la próxima entrega veremos como podemos hacer búsquedas en ellos, y empezar a buscar.
The post Por un puñado de tweets appeared first on S3lab.
]]>