Luis María Lepe Talking Shoes, iWatch, ProjectGlass: Una temporada cargada de complementos Hace unos días Google presentaba en la feria SXSW Interactive un experimento con unas zapatillas a las que ha denominado The Talking Shoes. Este anuncio se une a los lanzamientos o rumores...
Susana Martínez Ferreiro Un portal para controlarlos a todos Ya en la película ”El señor de los anillos” nos decían que hacía falta un anillo único para controlarlos a todos; si lo extrapolamos al plano de los sistemas...
Alfonso Alcántara Cómo tomar buenas decisiones en 2019: Diccionario para directivos motivadores (III) En este artículo vamos a intentar aprender a tomar mejores decisiones, así que podría ser buena idea decidir leerlo por completo. Y también aprovecho para darte al final la tercera entrega,...
Juan Luis Manfredi Cómo seleccionar talento en seis pasos El desarrollo natural de las organizaciones es el crecimiento inteligente, esto es, la selección de las áreas geográficas o sectoriales en las que la empresa puede aportar valor neto...
Diego Samuel Espitia TypoSquatting: usando tu cerebro para engañarte Nuestra capacidad cerebral es increíblemente poderosa, pero también genera algunos riesgos de ciberseguridad. En este post te contamos por qué.
ElevenPaths Noticias de Ciberseguridad: Boletín semanal 17-23 de octubre Nuevo troyano bancario denominado Vizom El equipo de investigadores de IBM Security Trusteer ha publicado un informe en el que analiza el nuevo troyano bancario de la “familia brasileña” denominado...
Fran Ramírez Episodio 1 | Code Talks by Ideas Locas – ‘ATTPwn: Emulación de adversarios’ ¡Bienvenidos/as a los nuevos Code Talks by Ideas Locas! El año pasado, junto a nuestros compañeros de ElevenPaths, publicamos una serie de vídeos que llamamos ‘Code Talks for Developers‘....
Félix Hernández El futuro de la humanidad, según Michio Kaku Cuando soñamos con el futuro de la humanidad lo hacemos con la imaginación de Julio Verne, de H.G Wells, de Sagan, de Asimov, de Arthur C. Clarke, con la...
Crea tu modelo Machine Learning con Teachable MachineEnrique Blanco 27 enero, 2020 Hace unos pocos meses, Google liberó Teachable Machine, una herramienta y un recurso sorprendentes para Machine Learning dirigida al público general. Esta herramienta nos permite abstraernos de la definición del modelo, algoritmo y tratamiento de datos y centrarnos sólo en el despliegue del modelo que generemos. Funciona en el navegador, con una webcam o con archivos que tengamos alojados en local o en Google Drive, y en pocos minutos puede comprender rápidamente cómo un modelo «aprende» a través de una simple demostración de clasificación. Figura 1. Teachable Machine webpage. En marzo del año pasado realizamos una serie de artículos donde mostramos cómo aplicar un algoritmo de clasificación muy sencillo haciendo uso de Random Forest a través de los estimadores de Scikit-Learn. Podéis consultar la serie aquí o en este otro enlace. Para diferenciarnos un poco de la extensa literatura soportada en datasets muy conocidos y usados, decidimos clasificar los datos del Sloan Digital Sky Survey (SDSS) DR14, relacionado con el mundo de la astrofísica, donde se recogen datos fotométricos de estrellas, galaxias y quasars. Podéis encontrar el dataset en el siguiente enlace. Para abrir boca, vamos a usar datos no tan usuales en la demostración del excelente desempeño de este servicio. Recurriremos al Galaxy Zoo classification dataset. Obtener y entender los datos Por poner en antecedentes, Galaxy Zoo es un proyecto de crowdsourcing, donde se pide a los usuarios que describan la morfología de las galaxias en base a imágenes. Se les hacen preguntas como «¿Cómo de redonda es la galaxia?» y «¿Tiene una protuberancia central?«. Las respuestas de los usuarios determinan qué pregunta se hará a continuación. Las preguntas forman un árbol de decisión que se muestra en la figura a continuación, tomada de Willett et al. 2013. Figura 2. Árbol de decisión de clasificación de galaxias (Willett et al. 2013) Cuando muchos usuarios han clasificado la misma imagen, sus respuestas se pueden agregar en un conjunto de probabilidades para cada respuesta. A menudo, no todos los usuarios estarán de acuerdo con todas sus respuestas, por lo que es útil cuantificar esta incertidumbre. Determinar la morfología de un objeto es una tarea muy subjetiva. El objetivo del desafío Galaxy Zoo es predecir estas probabilidades a partir de las imágenes de galaxias que se muestran a los usuarios. En otras palabras, construya un modelo de cómo «la multitud» percibe y clasifica estas imágenes. El dataset, consistente en más de 60,000 imágenes, se puedes descargar en el siguiente enlace. Esto significa que estaríamos ante un problema de regresión, no un problema de clasificación: no tenemos que determinar a qué clases pertenecen las galaxias, sino la fracción de personas que las clasificaría como tal. Sin embargo, dada la funcionalidad de Teachable Machine, nos vamos a tomar una licencia y vamos a procesar las imágenes que tenemos para poder separarlas en varias clases morfológicas que se intenten adaptar lo más posible a la secuencia del Hubble. Esta secuencia es un esquema de clasificación morfológica para galaxias. Figura 3. Hubble Tunning Fork. Grosso modo, en su definición más simple, las galaxias: elípticas tienen distribuciones de luz suaves y sin características y aparecen como elipses en las imágenes.espirales consisten en un disco aplanado, con estrellas formando una estructura (generalmente de dos brazos) y una concentración central de estrellas conocida como el bulbo galáctico, que es similar en apariencia a una galaxia elíptica. lenticulares también consiste en un brillante bulbo central rodeado por una estructura extendida, similar a un disco pero, a diferencia de galaxias espirales, sin estructura espiral visible. Ordenando las imágenes Como comentamos con anterioridad, hay alrededor de 60,000 imágenes en el conjunto de entrenamiento, en formato JPEG en color con dimensiones 424×424. Figura 4. Ejemplos de imágenes de galaxias en el Galaxy Zoo dataset. Con esas fotografías también se nos facilita un fichero CSV con el resultado de las clasificaciones realizadas por los usuarios. Hemos usado ese CSV para ordenar las imágenes en base a la clase con voto mayoritario. Haciendo uso del siguiente script de Python, todas las imágenes de la carpeta ‘data/‘ quedarán convenientemente ordenadas. import os import numpy as np import csv import shutil dir_path = os.path.dirname(os.path.realpath(__file__)) path = os.path.join(dir_path, 'data') files = os.listdir(path) def get_all_solutions(): ### Import solutions file and load into all_solutions all_solutions = {} with open('training_solutions_rev1.csv', 'r') as f: reader = csv.reader(f, delimiter=",") labels = next(reader)[1:-1] for i, line in enumerate(reader): all_solutions[line[0]] = labels[np.argmax([float(x) for x in line[1:]])] return all_solutions, labels def move_pics(): """ Classify images by its label from training_solutions_rev1.csv """ mapping, labels = get_all_solutions() for type in labels: if not os.path.exists(os.path.join(path, type)): try: os.mkdir(os.path.join(path, type)) except OSError: print("Creation of the directory %s failed" % path) else: print("Successfully created the directory %s " % path) for file in files: shutil.move(os.path.join(path, file), os.path.join(path, mapping[file.split('.')[0]], file)) if __name__=="__main__": move_pics() Lo que nos hemos encontrado es que el 85% de las galaxias han acabado mayoritariamente agrupadas en 3 directorios. La discriminación de cada grupo es clara: elípticas, espirales o irregulares. Entrenando el modelo Para comenzar a entrenar el modelo de clasificación, primero tenemos que crear diferentes categorías o clases para enseñarla. Figura 5. Vista del comienzo de un proyecto de clasificación de imágenes. Vamos a hacer una prueba rápida creando sólo dos clases: una para galaxias elípticas (Class 1.1) y otra para galaxias con forma espiral (Class 1.2), fácilmente reconocibles a simple vista. Figura 6. Una vez subidas las imágenes, podemos prepararnos para comenzar el entrenamiento (definición de los hiperparámetros más básicos) Con las clases o etiquetas definidas, subimos desde local las muestras de cada clase para que pueda comenzar el entrenamiento. Elegimos 200 imágenes con resolución 424×424 por clase. Ahora que tenemos las clases listas, procedemos a entrenar. Vídeo 1. Entrenamiento de modelo de clasificación. Como se puede observar, el modelo tarda en entrenar sólo un minuto. No sólo la rapidez en el entrenamiento es excelente (quizás me quede corto con este adjetivo), sino que te ofrecen métricas dinámicas valiosas como la precisión y pérdida del training y test dataset y la precisión por clase observada. Nuestro modelo se estanca en el aprendizaje alrededor de la decimoquinta época, amagando con sufrir de overfitting. Pero el resultado es bastante bueno considerando que es una prueba muy rápida con los hiperparámetros por defecto. Las precisiones para la clasificación de las clases son del 87% para Class 1.1 y del 100% para Class 1.2. Esto se puede interpretar con el hecho de que algunas galaxias elípticas pueden tener una forma con excentricidad algo más elevada de lo normal y se confundan con las espirales. Estas últimas son las que mejor reconoce el modelo, pues como ya vimos en la Figura 4 (medio) son las más fácilmente reconocibles. Testeando el modelo Esta tarea es también muy sencilla de realizar. Vídeo 2. Testeo de modelo de clasificación. Como se puede ver en el Video 2, cogiendo dos imágenes al azar entre aquellas que no se han usado para el entrenamiento, nuestro modelo es capaz de clasificarlas correctamente. Tenemos la opción de cargar recursos para testeo tanto desde local o Google Drive como desde nuestra webcam. Obteniendo el modelo para despliegue Si fuera poco, se puede exportar su modelo como modelo Tensorflow.js y alojarlo en Teachable Machine de forma gratuita, para que pueda llamarlo a cualquier sitio web o aplicación. También puede convertirlo a Tensorflow y Tensorflow Lite y descargarlo para uso local. Las posibilidades son innumerables con gracias a esta funcionalidad. Video 3. Posibilidades de exportación de modelos de clasificación en Teaching Machine Conclusión Por supuesto, en nuestra prueba no hemos llegado a las precisiones que lograron los vencedores del challenge (cuya aproximación mediante redes neuronales convolucionales se explica en este link), pero sí que nos ha permitido mostrar cómo de simple es usar esta herramienta y el poco tiempo que hemos invertido en entrenar el modelo. Hay que destacar que sólo en entrenar un modelo convolucional, hay que esperar bastante más tiempo que los dos minutos que hemos invertido en obtener nuestro resultado, sin hablar del preprocesado, organización en batches, etc. Si os pica la curiosidad, os invitamos a probarlo. Puedes intentar hacer tu propio modelo de clasificación en unos pocos minutos. También puedes entrenar y desplegar un modelo basado en sonido o en la pose de un individuo. Han prometido incorporar más funcionalidades en un futuro. Para mantenerte al día con LUCA visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn y YouTube. Video Post #15: 5 formas de cargar datos en Python5 consejos sobre Inteligencia Artificial aplicada a la empresa
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
Olivia Brookhouse ¿Puede la Inteligencia Artificial entender las emociones? Cuando John McCarthy y Marvin Minsky iniciaron la Inteligencia Artificial en 1956, se sorprendieron de cómo una máquina podía resolver rompecabezas increíblemente difíciles en menos tiempo que los humanos. Sin...
Javier Martínez Borreguero Automatización, Conectividad e Inteligencia Aumentada al servicio de una reindustrialización competitiva, disruptiva y sostenible Por segundo año consecutivo vuelvo a participar en el Advanced Factories (AF 2023), la mayor exposición y congreso profesional dedicado a la Industria 4.0 del sur de Europa. Un...
Nacho Palou Medidas para reducir la brecha digital de género sin esperar 32 años El informe Sociedad Digital en España 2023, de Fundación Telefónica, dedica un apartado específico para analizar la brecha de género en el ámbito del talento digital. Destaca que, si bien...
Nacho Palou Raspberry Pi para Edge AI: Inteligencia Artificial en el borde para todos Raspberry Pi es un popular ordenador muy utilizado entre desarrolladores, estudiantes y aficionados a la informática, a la robótica y a ‘cacharrear’. Entre sus virtudes están su bajo coste...
Carlos Lorenzo Ya no eres solo una empresa de productos o servicios, eres una empresa de datos Todas las empresas que operan en la actualidad son en realidad empresas de datos. Y lo son porque día a día almacenan y utilizan una gran cantidad de información:...