Uno de los resultados del proyecto DIA4RA, que estamos actualmente desarrollando en datahack y cuyo objetivo es dotar a un robot humanoide “Pepper”, de una serie de capacidades cognitivas que le permitan asistir a personas con Alzhéimer, ha sido la creación de un modelo de speech to text, es decir, un software que convierte la voz humana a texto, gracias al uso de técnicas de deep learning.
Dentro del proyecto DIA4RA, este modelo es el encargado de transcribir la voz humana a texto, de modo que otros modelos y sistemas implementados en el robot puedan interpretar lo que dicen los humanos que se dirigen a él. Así, este modelo es fundamental para la operativa de la máquina de estados, encargada de definir los diferentes estados que puede adoptar el robot y de la orquestación de todos los modelos y sistemas implicados en el funcionamiento del robot.
A priori, uno puede pensar que para hacer esto se podría recurrir a alguno de los servicios cognitivos disponibles en la red, y no tener que embarcarse en el desarrollo de un modelo de deep learning, con todas las implicaciones que ello conlleva. Sin embargo, en datahack se decidió optar por la creación de un modelo Speech to Text propio, por la siguientes razones:
El Speech to Text es un caso de uso donde se trabaja con información secuencial, es decir, una serie o sucesión de cosas que siguen un orden y/o guardan entre sí una determinada relación.
Tradicionalmente este tipo de información se ha tratado con redes neuronales recurrentes (Recurrent Neural Networks o RNN), redes neuronales con memoria que se usan para trabajar con información secuencial.
En este tipo redes la neuronas se disponen de forma secuencial, una a continuación de la otra. Cada una de ellas representa un momento temporal y tienen la capacidad de pasar la información recopilada a la siguiente. Así, a la hora de hacer las predicciones (O), se tendrá en cuenta tanto el vector de entrada (X) como un vector de estado (h). Así, teniendo en cuenta el siguiente gráfico, para predecir Ot se tendrá en cuenta Xt y ht-1, vector de estado resultante de la etapa anterior. Además de predecir el valor de Ot , se generaría un nuevo vector de estado ht que sería usado en la siguiente etapa (h+1). Esto se iría repitiendo de forma sucesiva.
Figura 1 - Disposición de las neuronas y flujo de información en una capa de RNN
Uno de los problemas de las Redes Neuronales Recurrentes (RNN) es que sufren lo que se conoce como el short-term memory, es decir, funcionan muy bien cuando la información útil está próxima al estado actual, pero su rendimiento va empeorando conforme esta se va alejando, es decir, no capturan bien las long-term dependencies, dependencias de larga distancia. Esto se debe a que con secuencias muy largas (más de 100 elementos), sufren lo que se conoce como vanishing gradient y tienden a “olvidar” el principio de las mismas. Así, teniendo en cuenta el siguiente ejemplo:
El gato, que ya había comido mucho pollo con verduras, estaba lleno.
Podría ocurrir que al llegar al verbo “estaba”, la RNN puede haber olvidado el principio de la frase y no sea capaz de ver que esta relacionado con la palabra “gato”.
Para minimizar este problema se usan: las GRU (Gated Recurrent Unit) y las LSTM (Long-Short Term Memory), dos tipos especiales de neuronas que cuentan con una célula de memoria, que les permite capturar mucho mejor las long-term dependencies. Y las BRNN (Bidirectional Recurrent Neural Networks), que tienen en cuenta tanto la información anterior como posterior a la hora de hacer una predicción en el momento actual.
Todo esto se puede combinar y crear BRNN con GRU o LSTM, con un aumento considerable de la capacidad de computación requerida durante el entrenamiento de la red neuronal.
En el caso del Speech To Text, donde la entrada es una secuencia y la salida también, se pueden reducir los costes de computación, haciendo uso de la arquitectura seq2seq. Está se caracteriza por tener una estructura encoder-decoder compuesta por dos Redes Neuronales Recurrentes, que usan LSTM o GRU (normalmente más la primera) y trabajan de forma que la primera red (encoder) memoriza el audio, codificándolo en un vector de contexto o sentence embedding, y la segunda red (decoder) y la segunda genera el texto correspondiente, a partir del vector de contexto que ha creado la primera.
Figura 2 - Estructura encoder(verde) - decoder(morado)
Aunque esta estructura mejora los costes de computación, tiene el problema de que cuando la secuencia de audio entrante es muy larga, la red neuronal encoder tiende a olvidar la primera parte de la mismas, tras concluir su procesamiento. Para resolver esto, surgieron los mecanismos de atención.
De los mecanismos de atención y de más cosas hablaremos en el próximo post.
Muchas gracias por vuestra atención, ¡valga la redundancia! 🙂
Javier Moralo, Data & AI Creative de datahack
El proyecto empresarial de DATAHACK CONSULTING SL., denominado “DESARROLLO DE INTELIGENCIA ARTIFICIAL EN ROBOTS APLICADOS AL TRATAMIENTO DEL ALZHEIMER Y LA DEMENCIA” y número de expediente 00104725 / SNEO-20171211 ha sido subvencionado por el CENTRO PARA EL DESARROLLO TECNOLÓGICO INDUSTRIAL (CDTI)
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.
Recibe nuestra programación mensual de eventos online y la apertura de nuevas convocatorias de cursos
En Datahack Consulting SL trataremos los datos que nos facilites con la finalidad de enviarte información relacionada con tu solicitud sobre nuestros servicios, así como enviarte comunicaciones informativas sobre nuestra actividad. Podrás ejercer los derechos de acceso, rectificación, limitación, oposición, portabilidad, o retirar el consentimiento enviando un email a administracion@datahack.es. También puedes solicitar la tutela de derechos ante la Autoridad de Control (AEPD). Puedes consultar información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.
Llámanos, escríbenos al email o por WhatsApp o inicia un chat en la web y hablamos