Borja Sanz – S3lab http://s3lab.deusto.es S3lab Security Blog Wed, 06 May 2020 12:51:35 +0000 es hourly 1 https://wordpress.org/?v=5.1.5 Y la máquina ganó de nuevo http://s3lab.deusto.es/la-maquina-gano-nuevo/ Sat, 12 Mar 2016 10:55:42 +0000 http://s3lab.deusto.es/?p=7898 Uno de los juegos más ancestrales que existen es el de Go. Originario de la antigua China, lleva enfrentando a estrategas durante más de 2.500 años, y fue considerado uno de las cuatro artes esenciales de la cultura china de

The post Y la máquina ganó de nuevo appeared first on S3lab.

]]>
AlphaGoUno de los juegos más ancestrales que existen es el de Go. Originario de la antigua China, lleva enfrentando a estrategas durante más de 2.500 años, y fue considerado uno de las cuatro artes esenciales de la cultura china de la antigüedad.

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.

]]>
Liberad a Willy, datos para todos http://s3lab.deusto.es/liberad-a-willy-datos-para-todos/ Fri, 05 Feb 2016 10:55:56 +0000 http://s3lab.deusto.es/?p=7735 En la ciencia, uno de los puntos críticos siempre es el conjunto de datos. El conseguir uno preparado y listo para interactuar con él es de por sí un gran reto, especialmente en el área de aprendizaje automático. Y la

The post Liberad a Willy, datos para todos appeared first on S3lab.

]]>
Warehouse1En la ciencia, uno de los puntos críticos siempre es el conjunto de datos. El conseguir uno preparado y listo para interactuar con él es de por sí un gran reto, especialmente en el área de aprendizaje automático. Y la semana pasada se produjo un gran acontecimiento.

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.

]]>
En lo profundo del aprendizaje automático http://s3lab.deusto.es/profundo-aprendizaje-automatico/ Wed, 25 Nov 2015 10:55:53 +0000 http://s3lab.deusto.es/?p=7536 La inteligencia artificial está de moda. Desde visiones más apocalípticas hasta la aparición de nuevas aplicaciones y frameworks que hacen más fácil a los desarrolladores este tipo de aplicaciones. Y hoy precisamente, vamos a hablar de uno de estos frameworks: TensorFlow.

The post En lo profundo del aprendizaje automático appeared first on S3lab.

]]>
La inteligencia artificial está de moda. Desde visiones más apocalípticas hasta la aparición de nuevas aplicaciones y frameworks que hacen más fácil a los desarrolladores este tipo de aplicaciones. Y hoy precisamente, vamos a hablar de uno de estos frameworks: TensorFlow. En el artículo, TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems Google nos enseña su evolución y su funcionamiento.

¿Qué es TensorFlow?

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.

Los conceptos básicos

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.

Ejemplo de código: Hola Mundo

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.

El futuro de la inteligencia artificial

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.

]]>
El backstage de «How Old Are You» http://s3lab.deusto.es/backstage-howoldareyou/ Tue, 13 Oct 2015 09:55:42 +0000 http://s3lab.deusto.es/?p=4402 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

The post El backstage de «How Old Are You» appeared first on S3lab.

]]>
HOAYDashboard2

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 nacimiento de la herramienta

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.

La presentación al público

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.

Lecciones aprendidas

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.

Y todavía se puede mejorar

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.

]]>
El poder de la televisión http://s3lab.deusto.es/el-poder-de-la-television/ Tue, 15 Sep 2015 09:55:57 +0000 http://s3lab.deusto.es/?p=4246 Cualquiera que esté un poco al día en el ámbito de la seguridad y de las series de televisión sabrá que ahora mismo tenemos una serie que refleja una gran cantidad de aspectos de la cultura cyberpunk actual y que

The post El poder de la televisión appeared first on S3lab.

]]>
MrRobotCualquiera que esté un poco al día en el ámbito de la seguridad y de las series de televisión sabrá que ahora mismo tenemos una serie que refleja una gran cantidad de aspectos de la cultura cyberpunk actual y que está llamando poderosamente la atención: Mr. Robot.

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.

]]>
Por un puñado de tweets http://s3lab.deusto.es/por-un-punado-de-tweets/ Tue, 23 Jun 2015 10:00:08 +0000 http://s3lab.deusto.es/?p=4008 En los últimos días hemos visto el enorme revuelo que se montado por unos tweets publicados hace 4 años. Y lo peor de todo es que parece que ha desatado toda una moda de «arqueología social», buscando aquel tweet o aquella

The post Por un puñado de tweets appeared first on S3lab.

]]>
En los últimos días hemos visto el enorme revuelo que se montado por unos tweets publicados hace 4 años. Y lo peor de todo es que parece que ha desatado toda una moda de «arqueología social», buscando aquel tweet o aquella expresión que pudiera provocar una situación embarazosa. Pero, ¿como se hace esto? Vamos a hacer un sencillo ejemplo de cómo se puede, gracias a la magia de la programación, realizar esta labor «arqueológica».

Paso 1: Obtener las claves de la API de Twitter

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:

  • Accede a apps.twitter.com con tu cuenta de Twitter (si no tienes, puede ser un buen momento para crearla).»
  • Pulsamos el botón de «Create a new app»
  • Rellenamos el formulario, aceptamos los términos y pinchamos en «Create yout Twitter application».
  • En la siguiente página, en la pestaña API keys, tendremos los datos que necesitamos, que son 3:
    • API keys
    • API secret
    • Y el access token, que se obtiene pulsando el botón que aparece en la parte inferior.

Paso 2: Conexión y descarga de datos

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.

]]>