Redes neuronales y bebés: Deep learning para ayudarnos en la crianza
redes neuronales y bebés

Redes neuronales y bebés: Deep learning para ayudarnos en la crianza

Conocimos a Ana Laguna en “Data Beers Madrid”, y su proyecto titulado “Baby Crying Translator” sobre Redes neuronales y bebés (traductor de llantos de bebé) nos encantó. Y es que ella ha sido capaz de conseguir un combo perfecto: aunar su pasión por la inteligencia artificial y la necesidad de resolver un problema real.

Ana se encontró ante el gran reto de ser madre por primera vez. Todos nos sentimos identificados con sus palabras: “Los bebés no vienen con instrucciones, como los gadgets de tecnología. Necesito un máster en esto”. Entonces se puso manos a la obra.

Lo primero que necesitaba aprender era por qué lloraba su bebé. Pero esto, incluso para los padres más experimentados, no es nada sencillo. Por tanto,  se propuso buscar una aplicación para poder interpretarlo. Para su sorpresa no fue capaz de encontrar ninguna que colmase sus expectativas. Entonces decidió que sería ella misma quien desarrollase un algoritmo capaz de interpretar el llanto de su bebé. Para ello, se embarcó en un auténtico proyecto de Deep Learning. Pero vayamos paso a paso. Lo primero es explicar brevemente qué significa esta palabra de moda. Definir con exactitud qué es deep learning no es una tarea sencilla, ya que cada autor propone una definición diferente. Lo que sí se puede afirmar es que lo conforman una serie de algoritmos que pretenden generar aprendizaje en las máquinas a partir de un proceso de inducción del conocimiento. El objetivo final es la obtención de un modelo matemático que realice predicciones o generalizaciones lo más precisas posibles sobre una tarea específica. Entre todas las tareas que este tipo de algoritmos pueden realizar, encontramos la de Ana Laguna: enseñar a una máquina a clasificar los llantos de bebés de forma automática. Y como gran profesional, siguió las pautas necesarias para conseguirlo:

Redes neuronales y bebés: ¿Por dónde empezar? Recopilación de datos

El primer paso en el desarrollo de cualquier sistema basado en deep learning es contar con un volumen suficiente de datos, y cuantos más mejor. A veces, para algunos temas más generales como la detección de personas o vehículos, es sencillo encontrar en internet conjuntos de datos correctamente etiquetados. Sin embargo, el desarrollo de una aplicación innovadora como ésta requería la recopilación manual de datos. Pero Ana tenía lo necesario para producir un conjunto de datos: su bebé. Ella consiguió grabar hasta 70 audios diferentes en los cuatro primeros meses de vida.

Identificación y concreción del problema

Ana sabía que quería traducir los llantos de su bebé, pero, ¿cuáles eran las posibles razones por las que el bebé podía llorar? Uno de los aspectos maś a importantes a tener en cuenta al enfrentarse a problemas de tratamiento de datos es identificar claramente el objetivo del algoritmo. En este caso había que definir exactamente con qué clases se entrenaría el sistema de deep learning. Las clases definidas finalmente fueron sueño, hambre, gases, pañal sucio, enfado, dolor y necesidad de mimos.

Baby translator, el proyecto Ana Laguna en Data Beers

Etiquetado de datos

Este es uno de los problemas a los que cualquier persona que trabaje en inteligencia artificial se tiene que enfrentar. No basta con recopilar datos. También es necesario etiquetarlos. Ana puedo empezar a etiquetar datos desde el primer mes de vida. A partir de entonces podía diferenciar con claridad por qué lloraba su bebé. ¿Cómo lograba interpretar lo que el bebé quería decir con su llanto?  Sus palabras fueron: “Cuando eres madre sabes etiquetar”. Ana se basó en el contexto para etiquetar los distintos audios del llanto de su bebé.

En el proceso de etiquetado se dio cuenta de otro problema: la versatilidad de los datos. Y es que la mayor parte de las veces que su bebé lloraba lo hacía porque tenía hambre. Esto suponía un problema a la hora de clasificar entre las siete clases anteriormente detectadas. Así que se vio obligada a reorientar su problema y a pasar de la idea de clasificación múltiple inicial a una clasificación binaria que distinguiese entre lloro por hambre o por otro motivo

Análisis

¿Pero el sistema interpretaba directamente el sonido de su bebé? Lo que Ana hizo fue transformar ese archivo de audio en un patrón reconocible para poder entrenar un sistema de deep learning. Este patrón está formado por características de la señal (audio en este caso) representadas en forma de coeficientes o vector. Ana utilizó el patrón más común para audio, que se conoce como MFCC (Mel Frequency Cepstral Coefficients o Coeficientes Cepstrales en las Frecuencias de Mel), junto con otras características del espectograma.

ana laguna en data beers redes neuronales y bebés

Ana Lagura en Data Beers Madrid, en Google Campus

Redes neuronales y bebés: Elección de la red neuronal

El último paso para la obtención de un sistema de reconocimiento automático es la elección de la arquitectura de la red neuronal. Existen diversas posibilidades para este fin. Estas son algunas de las que Ana probó:

    • MLP (Multilayer Perceptron): La primera red neuronal que Ana probó fue el Perceptrón Multicapa. Estas redes están formadas por una capa de entrada que recibe la señal, una capa de salida con las posibles clases y capas ocultas intermedias formadas por neuronas conectadas a las capas anteriores y posteriores. Estas redes destacan por ser un aproximador universal de funciones, y es la arquitectura más clásica, ya que se utiliza desde mucho antes que existiese el término deep learning.
    • RNN (Recurrent Neural Network): Es una de las redes neuronales más utilizadas en reconocimiento de voz y audio, gracias a su capacidad para procesar secuencias de datos. Las redes neuronales clásicas asumen que todas las entradas son independientes unas de otras. Sin embargo, para tareas como el reconocimiento de voz esto no es válido, ya que reconocer una palabra puede influir en las probabilidades de que otra diferentes venga detrás. Por ello, las RNN cuenta con unidades de “memoria” entre sus capas, haciendo el procesamiento dependiente de las entradas anteriores. La unidad más utilizada es la conocida como LSTM (Long Short-Term Memory), que mejoran el aprendizaje a largo plazo.
    • CNN (Convolutional Neural Networks): Son una de las redes más utilizadas hoy en día gracias a su aplicación masiva en problemas de detección de objetos y  clasificación de imágenes. Están formadas por capas convolucionales que aplican una operación de convolución a la señal de entrada, en una dimensión en el caso de audio o dos dimensiones en el caso de una imagen.
      Redes neuronales y bebés. Algoritmo deep learning Ana Laguna

      Fragmento de la presentación de Ana Laguna en Data Beers

Análisis de resultados

A pesar de la poca cantidad de datos con los que Ana contaba, el resultado obtenido fue aceptable, situándose entre el 75% y el 86% de acierto según el modelo. Las RNN demostraron su capacidad para la clasificación de audio devolviendo la mejor precisión entre todos los modelos probados. Sin embargo, como destacó Ana, ella únicamente quería divertirse uniendo redes neuronales y bebés. Por tanto, para llevar los resultados a una aplicación real, será necesario contar con más datos con el fin de mejorar el modelo y validarlo sobre diversas grabaciones de llantos.

Muy importante destacar que estas precisiones son resultados preliminares que cuentan con problemas muy comunes cuando tratamos con este tipo de algoritmos de Deep Learning:

El primero de ellos el sesgo (bias), debido a que usó llantos de un sólo bebé, el algoritmo quizás no sería capar de generalizar y ser aplicado a otros recién nacidos.

El segundo sería el sobreajuste (overfitting), una red neuronal destaca entre otras cosas por necesitar gran cantidad de datos, y aunque las señales de audio tanto a nivel visual como para el algoritmo en forma de espectograma ya parecen transmitirnos diferencias entre llantos, necesitamos muchos más datos para evitar ese sobreajuste de nuestro modelo. El sobreajuste significaría que el modelo está funcionando muy bien prediciendo los datos que ha visto, pero al ser tan poquitos cuando se tiene que enfrentar a un conjunto de datos nuevo, no es capaz de reconocerlo. Por tanto las precisiones con estos pocos datos son sospechosamente buenas, pero serían muy malas en otro conjunto de datos (esto nos reconoce la misma Ana Laguna, que quiere conseguir una base de datos con suficiente volumen como para conseguir sacar su APP)

¿Ayudas a Ana a seguir avanzando?

Este proyecto se engloba dentro lo que se considera DATA FOR SOCIAL GOOD y puede ser útil para: Padres primerizos (principalmente en el primer mes de vida), abuelos que cuidan a sus nietos, padres con discapacidad auditiva y para detección temprana de autismo.

Dónanos el llanto de tu bebé. ¿Cómo? en la ONG que ha creado recientemente Ana, Sogoodata, puedes enviar los llantos de tu bebé y así ayudarás a otros padres y madres en su crianza.

 

Podéis consultar el código fuente de todas las pruebas que hizo Ana de Redes neuronales y bebés en su github 

Jesús Barroso

Jesús Barroso

Apasionado del mundo real y de la inteligencia artificial. Geek y ecologista. Vivo convirtiendo imágenes en información. Por circunstancias de la vida, ahora solo pienso en tecnología para bebés.
Jesús Barroso
No Comments
Post a Comment