6 TIA Deep Learning.pdf
Document Details
Uploaded by Itan
Universidad Internacional de La Rioja
Tags
Full Transcript
Tema 6 Técnicas de Inteligencia Artificial Deep learning Índice Esquema 3...
Tema 6 Técnicas de Inteligencia Artificial Deep learning Índice Esquema 3 Ideas clave 4 6.1. ¿Cómo estudiar este tema? 4 6.2. El papel del deep learning dentro del machine learning 5 6.3. Redes neuronales y deep learning 10 6.4. Redes prealimentadas profundas 13 6.5. Redes neuronales recurrentes profundas 20 6.6. Autoencoders 22 6.7. Redes neuronales convolucionales 25 6.8. Redes generativas antagónicas 28 © Universidad Internacional de La Rioja (UNIR) 6.9. Aprendizaje por refuerzo 29 6.10. Aprendizaje por refuerzo profundo 36 6.11. Ejemplos de implementación 45 6.12. Referencias bibliográficas 60 A fondo 69 Test 74 Esquema © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 3 Tema 6. Esquema Ideas clave 6.1. ¿Cómo estudiar este tema? Para estudiar este tema deberás leer las Ideas clave que se presentan a continuación. Puedes completar el estudio con el material adicional que se facilita al final de este tema. Existe una frecuente confusión en los medios mainstream e incluso en la publicitación de servicios y software sobre los términos inteligencia artificial, machine learning (aprendizaje automático o aprendizaje automatizado) y deep learning (aprendizaje profundo o aprendizaje automático profundo). en este sentido, antes de hablar sobre el deep learning es un buen momento para que nos paremos a poner a cada uno de estos términos en su lugar. Como ya hemos visto desde el Tema 1 de esta asignatura, la Inteligencia Artificial tiene como objetivo desarrollar y utilizar sistemas informáticos que intentan reproducir los procesos de la inteligencia humana. Estos procesos de inteligencia humana son necesarios para el aprendizaje, la comprensión, la resolución de problemas o la toma de decisiones (Panesar, 2019). La inteligencia artificial es, por tanto, una amplia disciplina que reúne varios campos como el procesamiento del lenguaje natural o Natural Language Processing (Lima, de Castro y Corchado, 2015), los sistemas expertos (Faia et al., 2018), los sistemas multiagente (Alonso et al., 2013), los sistemas recomendadores (García et al., 2017), el análisis de voz y la conversión a texto (habla a texto y texto a habla) (Partila et al., 2018), la visión por computador, visión artificial o computer vision (Seo et al., 2015), los sistemas de © Universidad Internacional de La Rioja (UNIR) planificación, la computación evolutiva (Pal y Wang, 2017), la robótica y, en el caso de los anteriores temas y el que nos ocupa, el aprendizaje automático o machine learning. Técnicas de Inteligencia Artificial 4 Tema 6. Ideas clave Por supuesto, estas ramas no son del todo estancas entre sí, existiendo, a modo de ejemplo, algoritmos de planificación aplicados mediante sistemas multiagente, técnicas de procesamiento del lenguaje natural basadas en deep learning (Young et al., 2018), o redes neuronales convolucionales aplicadas a la visión artificial (Rivas et al., 2018), por citar solo algunos ejemplos. 6.2. El papel del deep learning dentro del machine learning Es importante comprender además el papel que desempeña el aprendizaje automático dentro de las técnicas de inteligencia artificial. En este sentido, existen varias definiciones de inteligencia artificial que según Russell y Norvig (2002) pueden dividirse en cuatro grupos: pensar racionalmente (relacionado con «capas de pensamiento»), pensar humanamente (relacionado con los sistemas cognitivos), actuar racionalmente (relacionado con los agentes racionales) y actuar humanamente, lo cual está relacionado con el conocido test de Turing (Turing, 1950), en el que un sistema se denomina inteligente si es capaz de responder a una serie de preguntas escritas y un humano no sería capaz de diferenciar si las respuestas han sido dadas por un humano o por un ordenador. La definición «pensar humanamente» incluye conceptos y técnicas como el procesamiento del lenguaje natural, la comunicación con el ser humano, la representación del conocimiento, el almacenamiento de lo que un ser humano necesita para escuchar, el razonamiento automático, para sacar conclusiones sobre la información almacenada y, en nuestro estudio, el aprendizaje automático, para © Universidad Internacional de La Rioja (UNIR) adaptarse a nuevas circunstancias para detectar y extrapolar patrones. Además, se incluiría la visión por ordenador y la robótica para percibir y manipular objetos en el mundo real. Técnicas de Inteligencia Artificial 5 Tema 6. Ideas clave Así, el aprendizaje automático es una rama de la inteligencia artificial que se refiere a la construcción de programas informáticos que mejoran automáticamente su rendimiento en una tarea determinada con la experiencia, como ya vimos en el Tema 1. En el aprendizaje automático, los algoritmos se utilizan para analizar y aprender de los datos. Después de eso, los algoritmos realizan predicciones y toman decisiones sobre eventos en el mundo real. Es decir, estos algoritmos toman una gran cantidad de datos de entrenamiento (una lista de instancias) para entrenar al modelo sobre la realidad y aprender. Más tarde, este modelo puede aplicarse para hacer predicciones o tomar decisiones sobre las nuevas instancias que se encuentren. Ya hemos visto en anteriores temas cómo realizar esta tarea mediante técnicas de machine learning clásico como los árboles de decisión y las reglas o incluso con técnicas consideradas actualmente fuera del machine learning clásico, como son las técnicas ensemble (como el random forest) o las redes neuronales. Los primeros algoritmos de aprendizaje de máquinas se remontan en realidad a los años 50, cuando Samuel (1959) demostró en 1956 la capacidad de los programas informáticos para aprender jugando a las damas que funcionaban en un IBM 701, un ordenador del tamaño de una cama de matrimonio. En 2016, gracias a los avances en el aprendizaje profundo, las computadoras son capaces de vencer a otras computadoras el 99,8 % de las veces y ganar a campeones humanos en el juego de Go (Silver et al., 2016). Esto es particularmente impresionante si tenemos en cuenta que se estima que el número de posibles partidas en este juego oriental excede con creces al número de átomos existente en el universo observable. ¿Cómo entrenar a una máquina para esto, si no podemos ni quiera crear datasets de tamaño comparable? Veremos más adelante cómo esto es posible. Los algoritmos de aprendizaje automático pueden subdividirse en seis categorías © Universidad Internacional de La Rioja (UNIR) principales, tal y como puede observarse en la Figura 1: Técnicas de Inteligencia Artificial 6 Tema 6. Ideas clave Aprendizaje automático clásico (classic machine learning), que engloba: Aprendizaje supervisado (supervised learning). Aprendizaje no supervisado (unsupervised learning). Aprendizaje semisupervisado (semisupervised learning). Aprendizaje emsemble o aprendizaje integrado (ensemble learning). Aprendizaje profundo (deep learning). Aprendizaje por refuerzo (reinforcement learning). Por supuesto, no es la única forma de clasificar los algoritmos de aprendizaje automático, y esta clasificación varía a lo largo del tiempo en función de la importancia de cada uno de los grupos. En el aprendizaje supervisado, los datos de entrenamiento utilizados por el algoritmo para construir el modelo incluyen casos en que la clase o el resultado previsto es numérico o ha sido etiquetado previamente (generalmente por un humano), como sucede, por ejemplo, en los problemas de regresión o clasificación, respectivamente. Ejemplo de esto son los árboles de decisión, las reglas de clasificación o las SVM (Support Vector Machines), ya vistos en temas anteriores. En el aprendizaje no supervisado, los datos de entrenamiento no están etiquetados y se desconoce su resultado esperado. Los algoritmos de aprendizaje no supervisado nacieron más tarde que los supervisados, alrededor de los años 90, y son útiles para descubrir la estructura del conjunto de datos, para agrupar los elementos del conjunto de datos por los elementos más representativos de cada uno o para comprimir los datos existentes. De hecho, este tipo de algoritmos se utilizan a menudo para preprocesar los datos antes de utilizarlos para alimentar un algoritmo supervisado o una red neuronal profunda. Ejemplos de algoritmos de aprendizaje no © Universidad Internacional de La Rioja (UNIR) supervisado son la agrupación (clustering, que veremos en el Tema 7), la reducción de la dimensionalidad y el aprendizaje de las reglas de asociación (ya visto en el Tema 3). Técnicas de Inteligencia Artificial 7 Tema 6. Ideas clave Figura 1. Principales ramas y algoritmos del machine learning. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 8 Tema 6. Ideas clave En el aprendizaje semisupervisado, algunos de los datos de capacitación de entrada están etiquetados y otros no. La principal desventaja de los algoritmos de aprendizaje supervisado es que es necesario que el conjunto de datos de formación sea etiquetado por un humano, un científico de datos, un ingeniero de aprendizaje de máquinas o tal vez un grupo externo de trabajadores que utilicen plataformas de crowdsourcing (como, por ejemplo, Amazon Mechanical Turk) lo que, en cualquier caso, es un proceso costoso, especialmente para grandes volúmenes de datos. Por otra parte, el problema de los algoritmos no supervisados es que, al menos en la actualidad, el alcance de sus aplicaciones es limitado. El aprendizaje semisupervisado trata de resolver estos inconvenientes combinando datos de formación etiquetados (normalmente una pequeña porción del total) y datos de formación no etiquetados (normalmente la mayoría de los datos de formación). El procedimiento habitual consiste en aplicar un algoritmo no supervisado, como la agrupación, para agrupar los datos y utilizar los datos etiquetados para etiquetar el resto de los datos no etiquetados (Van Engelen y Hoos, 2020). En realidad, el machine learning clásico, que nació en el decenio de 1950 a partir de métodos estadísticos, se sigue utilizando ampliamente hoy en día y es útil para resolver muchos de los problemas que se plantean. Sin embargo, con el tiempo han surgido nuevos paradigmas como el aprendizaje ensemble, cuando la calidad es un problema real; las redes neuronales y el aprendizaje profundo o deep learning, cuando tenemos datos complejos con características poco claras o cuando queremos alcanzar niveles más altos de precisión que el aprendizaje automático clásico; o el aprendizaje por refuerzo o reinforcement learning, cuando no hay datos de entrada, pero hay un entorno con el que se puede interactuar, y veremos al final de este tema tras ver las diferentes técnicas deep learning, para comprender mejor conceptos como el aprendizaje por refuerzo profundo o deep reinforcement learning. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 9 Tema 6. Ideas clave 6.3. Redes neuronales y deep learning Las redes neuronales son, sin duda, una de las técnicas de aprendizaje de máquinas por excelencia y con mayor potencial en la actualidad. Aunque las primeras propuestas de redes neuronales o modelos conexionistas se remontan al decenio de 1950, cuando el perceptrón (la neurona artificial básica más conocida) fue inventado por Rosenblatt (1958), a finales del decenio de 1960 se abandonó el conexionismo en favor del razonamiento simbólico, en parte y según la literatura (Yasnitsky, 2019) debido a la publicación de las obras de Marvin y Seymour (1969). No fue hasta finales de los años 70 que terminó el primer invierno de la inteligencia artificial, con la invención del método de retropropagación y la aparición de sistemas expertos durante los años 80. Al segundo invierno de la inteligencia artificial de finales del decenio de 1980 y principios del decenio de 1990 siguió la aparición de agentes inteligentes y el aprendizaje automático basado en métodos estadísticos, incluidas las primeras menciones al aprendizaje profundo de Dechter (1986). Es necesario considerar que si las redes neuronales artificiales no tuvieron éxito hace décadas y ahora sí es porque, en primer lugar, tenemos una gran capacidad de computación utilizando CPU y GPU, que permiten un alto paralelismo de computación, e incluso TPU, unidades especializadas en computación tensorial (Jouppi et al., 2018). En segundo lugar, ahora contamos con una gran capacidad y técnicas de almacenamiento que antes no estaban disponibles, lo que nos permite entrenar las redes neuronales obteniendo una gran precisión en las clasificaciones y predicciones. Estas dos cuestiones clave han apoyado la gran evolución de las redes neuronales artificiales y las técnicas de aprendizaje profundo en los últimos años. © Universidad Internacional de La Rioja (UNIR) Se puede definir el aprendizaje profundo o deep learning como una clase de algoritmos de aprendizaje automático que utiliza múltiples capas para extraer progresivamente características de nivel superior de la entrada bruta. Esto incluye, por tanto, una cascada de capas conectadas entre sí con unidades de Técnicas de Inteligencia Artificial 10 Tema 6. Ideas clave procesamiento no lineal en cada una de las capas. De este modo, las primeras capas (inferiores) se corresponden con niveles de abstracción menor, mientras que las últimas capas (superiores) se basan en las anteriores para formar una representación jerárquica de conceptos. Por ejemplo, en el procesamiento de imágenes empleando redes convolucionales, como veremos más adelante, las primeras capas (también llamadas inferiores) pueden identificar los bordes, mientras que las capas finales (también llamadas superiores) pueden identificar los conceptos relevantes para un humano, como los dígitos o las letras o las caras. Sin embargo, en la realidad, apenas existe una clara diferencia entre las redes neuronales artificiales consideradas clásicas y las de aprendizaje profundo o las redes neuronales consideradas profundas (LeCun, Bengio y Hinton, 2015). Las herramientas y bibliotecas utilizadas para su formación y producción final son las mismas (por ejemplo, TensorFlow, Keras, Torch / PyTorch, Caffee, etc.) y ya suelen considerarse como una rama única dentro del aprendizaje automático. Mediante las redes neuronales artificiales es posible aplicar técnicas de aprendizaje supervisado, aprendizaje no supervisado, aprendizaje semisupervisado e incluso técnicas de aprendizaje por refuerzo como veremos más adelante. De esta manera, las redes neuronales pueden utilizarse como sustitutos de los métodos supervisados, no supervisados y semisupervisados, algunos vistos en temas anteriores y algunos que se verán a continuación, obteniendo una precisión mucho mayor (obviamente, a cambio de un mayor coste de computación tanto en la etapa © Universidad Internacional de La Rioja (UNIR) de entrenamiento como en la etapa de testing o producción). Además de para resolver cualquier problema que ya podíamos mediante los métodos de machine learning clásico, también se utilizan, entre otras posibles aplicaciones, para la identificación de objetos en imágenes y vídeos (Shah, Bennamoun y Boussaid, 2016), el reconocimiento de voz (Zhang et al. 2018), la síntesis de voz (Arik, et al. 2017), Técnicas de Inteligencia Artificial 11 Tema 6. Ideas clave análisis de sentimientos y reconocimiento de emociones del habla (Fayek, Lech y Cavedon, 2017), procesamiento de imágenes (Razzak, Naz y Zaib, 2018), transferencia de estilos (por ejemplo, aplicación del estilo de pintura de Van Gogh a cualquier fotografía) (Luan et al., 2017), procesamiento del lenguaje natural (Natural Language Processing) (Costa-jussà et al., 2017), traducción automática (Deng y Liu, 2018), etc. Existe una amplia y creciente variedad de redes neuronales artificiales clasificadas según su arquitectura (Liu et al., 2017). Entre las más relevantes se encuentran: Redes prealimentadas (Feedforward networks) y redes prealimentadas profundas (Deep Feedforward Networks). Redes Neuronales Recurrentes (RNN – Recurrent Neural Networks) y Redes Recurrentes Profundas (Deep Recurrent Networks). Autoencoders (AE). Redes Neuronales Convolucionales (CNN – Convolutional Neural Networks). Redes Generativas Antagónicas (GAN – Generative Adversarial Networks). Además de estas grandes tendencias, hay muchos otros tipos que deben ser mencionados. Las redes de creencias profundas o Deep Belief Networks (DBN) (Bengio, et al., 2007) son arquitecturas apiladas de mayormente RBMs (Restricted Boltzmann Machines o máquinas Boltzmann restringidas) o de autocodificadores variacionales (VAE), que veremos más adelante. En realidad, ya hemos hablado de las redes de creencias en el Tema 4, cuando mencionamos los clasificadores Naïve Bayes, pues son uno de los casos más simples de red de creencias o redes bayesianas. Esta simplificación viene de considerar que todas las características son fuertemente independientes entre sí. Las máquinas Boltzmann restringidas son arquitecturas que © Universidad Internacional de La Rioja (UNIR) no son realmente redes neuronales, así como las cadenas de Markov (MC) o las cadenas discretas de Markov (DTMC) o las máquinas Boltzmann (BM), en las que se basan las RBM. Técnicas de Inteligencia Artificial 12 Tema 6. Ideas clave 6.4. Redes prealimentadas profundas Ya vimos en el Tema 5 algunas redes prealimentadas (Feedforward Networks), como los perceptrones multicapa (MLP – Multilayer Perceptron). En una red prealimentada, todas las neuronas de una capa están conectadas con todas las neuronas de la capa siguiente, no existe conexiones entre neuronas de la misma capa y no existe retroalimentación. Capa de Capa de entrada salida Como ya se ha mencionado, el perceptrón fue creado en los años 50 por Rosenblatt (1958). En un perceptrón, mostrado en la Figura 2, hay varias señales de entrada xi, que son las señales de entrada a toda la red neural artificial o provienen de otros perceptrones. Estas entradas son ponderadas por un conjunto de pesos wi. La salida Y del perceptrón es única, y su valor vendrá determinado por la función de activación elegida, por ejemplo, la función signo. Si la suma ponderada de las entradas supera un umbral w0, entonces la salida del perceptrón tendrá un valor de +1, de lo contrario © Universidad Internacional de La Rioja (UNIR) tendrá un valor de -1. Es decir: Técnicas de Inteligencia Artificial 13 Tema 6. Ideas clave Considerando u la suma ponderada de los pesos: Usando en el ejemplo la función signo como función de activación: Aunque existen otras posibles funciones de activación, como la función escalón de Heaviside: Una función sigmoide, como la función logística: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 14 Tema 6. Ideas clave O, una combinación lineal de las entradas, entre otras muchas posibilidades: Una de las formas de entrenar una neurona básica o perceptrón es la regla de aprendizaje del perceptrón descrita por Rosenblatt (1960). Si la entrada al perceptrón es: Usando en el ejemplo la función signo como función de activación: © Universidad Internacional de La Rioja (UNIR) Dados los datos de entrenamiento (entradas a la red y correspondientes salidas conocidas), el entrenamiento consiste en averiguar los pesos del perceptrón que mejor se ajustan a esas entradas y salidas, mediante una serie de iteraciones que ajustan los valores de los pesos. Inicialmente los pesos se eligen al azar. En cada Técnicas de Inteligencia Artificial 15 Tema 6. Ideas clave iteración, para cada entrada del entrenamiento, obtendremos una salida que será generalmente diferente de la conocida o esperada: Donde e(t) es la diferencia entre la salida esperada y la salida real en la entrada procesada en la iteración t. Por su parte, α es la tasa de aprendizaje (un valor entre 0 y 1). En cada iteración se procesa uno de los datos de aprendizaje disponibles. El perceptrón se activa aplicando las entradas xk(t) y la salida deseada yd(t). La salida real en la iteración se calcula utilizando la función de activación escogida, por ejemplo, la función signo de la Ecuación 8. A partir de la salida real obtenida, se actualizan los pesos utilizando la Ecuación 9 y se continúa con la siguiente iteración hasta alcanzar la convergencia. De hecho, los propios perceptrones se conocen como perceptrones monocapa para diferenciarlos de los perceptrones multicapa, y cuando se utilizan con las funciones de activación de tipo escalonado de Heaviside actúan como clasificadores lineales binarios. Es decir, sirven para trazar una línea recta (si existe) que separa un conjunto de datos de entrenamiento en dos clases (Rodríguez et al., 2008). El Perceptrón Multicapa (MLP), ya introducido en el Tema 5, es, por tanto, una de las redes neuronales prealimentadas (FFN – Feedforward Networks) formadas por varias capas de neuronas (al menos una capa intermedia), cada una de las cuales es un perceptrón (De Paz, et al., 2013). Son la arquitectura de red neuronal más sencilla (mostrada en la Figura 3), nacida en el decenio de 1980, y pueden utilizarse como © Universidad Internacional de La Rioja (UNIR) clasificadores, así como en el reconocimiento del habla, el reconocimiento de imágenes y la traducción automática, entre muchos otros (Naraei, Abhari y Sadeghian, 2016). Sin embargo, en su momento fueron sustituidos en varias aplicaciones por los SVM debido a su mayor simplicidad. Técnicas de Inteligencia Artificial 16 Tema 6. Ideas clave Figura 3. Redes prealimentadas (feedforward networks). En los MLP, las funciones de activación más utilizadas son las sigmoidales, como la función logística o la tangente hiperbólica, y el entrenamiento se realiza mediante el método de aprendizaje supervisado conocido como método de retropropagación (Rumelhart y McClelland, 1986), ya explicado en el Tema 5, y válido en redes en las que todas las neuronas de cada capa se conectan con todas las neuronas de las capas anterior y posterior. Así, una vez definida la arquitectura (número de capas, neuronas por capa y función de activación), se utiliza el método del gradiente de error para ajustar los pesos durante el entrenamiento: © Universidad Internacional de La Rioja (UNIR) Donde Xk(t) es la entrada ponderada de la neurona k según la Ecuación (7), yk(t) la salida real de la neurona k en la iteración t utilizando una función de activación logística, yd(k) la salida esperada en la neurona k y, finalmente, ek(t) es el error en la salida en la iteración t. Técnicas de Inteligencia Artificial 17 Tema 6. Ideas clave Para ajustar los pesos wjk sobre los enlaces entre la neurona j y la neurona k en la capa de salida se utiliza la expresión: En el caso de una capa oculta, la expresión usada sería: Así, empezamos con pequeños valores aleatorios para los pesos. Para cada dato de entrada xk(t) se calculan los datos de salida en la red. Se calcula el gradiente de error para las neuronas de la capa de salida y se reinician sus pesos. El gradiente de error para las neuronas en la capa oculta se calcula y sus pesos se restablecen. El ciclo de iteraciones continúa así hasta que se cumple un criterio de parada específico. En la práctica, especialmente cuando trabajamos cuando con redes profundas con varias capas ocultas, como la mostrada (conceptualmente) en la Figura 4 se utilizan algoritmos de retropropagación modificados, debido a la elevada carga de cálculo del mecanismo original (Ramchoun et al., 2016). © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 18 Tema 6. Ideas clave Capa de Capa Capa Capa de entrada oculta oculta salida Figura 4. Deep feedforward networks (como perceptrones multicapa o las funciones de base radial). Las redes de funciones de base radial (RBF) son otro tipo de FFNN (feed forward neural networks) (Broomhead y Lowe, 1988) que también permite su entrenamiento a través del método de retropropagación, cuya peculiaridad radica únicamente en el hecho de que las funciones de activación son funciones radiales. Es decir, una función real cuyo valor depende solo de la distancia al origen o a un centro alternativo, como la función distancia: © Universidad Internacional de La Rioja (UNIR) O, la función gaussiana: Técnicas de Inteligencia Artificial 19 Tema 6. Ideas clave 6.5. Redes neuronales recurrentes profundas Si bien las redes neuronales convolucionales son actualmente las más utilizadas en aplicaciones de imagen y vídeo, las redes neuronales recurrentes (Rivas et al., 2019) son las más utilizadas en el campo de los problemas relacionados con el lenguaje, incluyendo la voz y la música. Estos tipos de redes son ideales para procesar datos secuenciales, y se utilizan ampliamente en la traducción automática, en genómica o en proteómica (Cao et al., 2017), el reconocimiento de voz y la síntesis de voz en asistentes inteligentes, así como en la autocompletado de textos (Park y Chiba, 2017). En problemas como la síntesis de voz a partir de un texto, por ejemplo, la pronunciación de cada sonido depende de los sonidos anteriores. En los sintetizadores antiguos cada sonido se pronunciaba individualmente, y esta era una de las razones por las que sonaban artificiales. Sin embargo, los sintetizadores de hoy en día suenan completamente naturales tanto en la pronunciación como en el acento. Para ello, las redes neuronales recurrentes tienen neuronas específicas que incluyen una memoria en la que almacenan las entradas correspondientes a ciclos anteriores. De esta manera, son capaces de producir una salida dependiente de la entrada actual © Universidad Internacional de La Rioja (UNIR) y de las entradas anteriores. Técnicas de Inteligencia Artificial 20 Tema 6. Ideas clave Figura 2. Redes Neuronales Recurrentes (RNN). Con el tiempo, las Memorias de Largo y Corto Plazo (LSTM – Long and Short-Term Memories) (Kim et al., 2016) surgieron para mejorar este concepto. En este tipo de red hay celdas especiales en las que un valor puede ser almacenado, leído o restablecido, por medio de puertas de entrada, salida y olvido. © Universidad Internacional de La Rioja (UNIR) Figura 6. Long and Short-Term Memories (LSTM). También existe una variación de las LSM conocida como Gated recurrent units (GRU) (Chung et al., 2014), donde las células de memoria solo tienen una puerta de actualización y una puerta de reajuste. Estos tipos de redes tienen un mejor Técnicas de Inteligencia Artificial 21 Tema 6. Ideas clave rendimiento computacional que los LSTM, pero son ligeramente menos expresivos, por lo que requieren redes más grandes para lograr la misma expresividad que los LSTM, lo que puede reducir el efecto de mejora del rendimiento. Figura 7. Gated Recurrent Units (GRU). Las redes neuronales bidireccionales recurrentes, las redes bidireccionales de memoria a largo y corto plazo y las unidades bidireccionales de puerta recurrente (BiRNN, BiLSTM y BiGRU, respectivamente) no están conectadas al pasado, sino también al futuro. Es decir, tienen células de entrada y salida de correspondencia en lugar de células de salida y pueden ser entrenadas no solo para completar los datos al final de una secuencia (el final de una palabra o imagen), sino para completar los datos en medio de dichas secuencias (un hueco en medio de una palabra o imagen) (Mesnil et al., 2014). 6.6. Autoencoders © Universidad Internacional de La Rioja (UNIR) Los autocodificadores o autoencoders (AE) son redes neuronales simétricas en forma de reloj de arena en las que las capas ocultas son más pequeñas que las capas de entrada y de salida (que son células de entrada y de salida que coinciden). Los Técnicas de Inteligencia Artificial 22 Tema 6. Ideas clave autocodificadores son simétricos alrededor de la(s) capa(s) media(s) (que puede(n) ser una o dos dependiendo de si el número de capas es impar o par), que se denominan el código. De la entrada al código, el autocodificador actúa como un codificador (comprimiendo la información), y del código a la salida el autocodificador actúa como un decodificador. Entre las aplicaciones de los autocodificadores se encuentran la compresión de imágenes (Tan y Eswaran, 2011), la reducción de la dimensionalidad, la generación de imágenes o su uso en sistemas de recomendación. © Universidad Internacional de La Rioja (UNIR) Figura 8. Autoencoders (AE). Técnicas de Inteligencia Artificial 23 Tema 6. Ideas clave Los autocodificadores de supresión de ruido (DAE – Denoising Autoencoders) se utilizan para eliminar el ruido de la imagen (utilizando el ruido como entrada en lugar de los datos) (Alex et al., 2017), mientras que para la extracción de características se utilizan los autocodificadores de dispersión (SAE – Sparse Autoencoders) (para lo cual se basan en una estructura en la que las capas medias son mayores que las capas de entrada y salida, a diferencia del resto de los autocodificadores) (Zabalza et al., 2016). Figura 9. Denoising Autoencoders (DAE). Los autocodificadores variacionales (VAE – Variational Autoencoders) tienen una estructura similar a la de los autocodificadores, pero están relacionados con las máquinas de Boltzmann (BM) y las máquinas de Boltzmann restringidas (RBM), y se © Universidad Internacional de La Rioja (UNIR) basan en las matemáticas bayesianas para modelar la distribución de probabilidad aproximada de las muestras de entrada. Entre sus aplicaciones tenemos el aprendizaje de representaciones latentes, la generación de imágenes y textos (Semeniuta, Severyn y Barth, 2017), lograr resultados de última generación en el aprendizaje semisupervisado, así como interpolar textos perdidos entre frases. Técnicas de Inteligencia Artificial 24 Tema 6. Ideas clave Figura 10. Variational Autoencoders (VAE). 6.7. Redes neuronales convolucionales Los modelos lineales no funcionan bien para el reconocimiento de imágenes. Imaginemos, por ejemplo, que queremos reconocer animales u objetos en imágenes y tomar una imagen o plantilla promedio de cada clase (por ejemplo, una para perros, otra para gatos, etc.) para usarla en los datos de entrenamiento y luego usar, por ejemplo, un algoritmo clasificador como el k-NN (u otro) en la fase de prueba para medir la distancia a los valores de píxeles de cada imagen no clasificada. La imagen modelo resultante de promediar todos los perros, por ejemplo, sería una imagen borrosa con una cabeza a cada lado. Esto no funcionaría. Lo que necesitamos es © Universidad Internacional de La Rioja (UNIR) aprovechar las características de las redes neuronales profundas para la clasificación de las imágenes utilizando capas de abstracción. A través de este caos oculto las redes pueden aprender características cada vez más abstractas (Karpathy et al., 2016). Técnicas de Inteligencia Artificial 25 Tema 6. Ideas clave En este sentido, son especialmente útiles las redes neuronales convolucionales (CNN – Convolutional Neural Networks) y las redes neuronales convolucionales profundas (DCNN – Deep Convolutional Neural Networks) (Shin et al., 2016), utilizadas para el reconocimiento de imágenes, reconocimiento de patrones o el análisis del sentimiento en los textos, entre otras aplicaciones. Figura 11. Redes Convolucionales Profundas (DCNN). Son las más utilizadas en las aplicaciones de búsqueda de objetos en imágenes y vídeos, reconocimiento facial, transferencia de estilos (Gatys, Ecker y Bethge, 2016) o mejora de la calidad de las imágenes. Imaginemos una fotografía representada por los píxeles en escala de grises de la imagen. Primero dividimos toda la imagen en bloques de 8 × 8 píxeles y asignamos a cada uno un tipo de línea dominante © Universidad Internacional de La Rioja (UNIR) (horizontal, vertical, las dos diagonales, un bloque completamente opaco o completamente vacío, etc.). El resultado es una matriz de líneas que representan los bordes de la imagen. En la siguiente capa tomamos de nuevo un bloque de 8 × 8 bloques obtenidos en la etapa anterior y extraemos una nueva salida con nuevas Técnicas de Inteligencia Artificial 26 Tema 6. Ideas clave características cada vez más abstractas, repitiendo la operación una y otra vez. Esta operación se llama convolución y puede ser representada por una capa de la red neuronal, ya que cada neurona puede actuar como cualquier función. En las primeras etapas, las neuronas se activan representando la línea dominante en cada célula de 8 × 8 píxeles. En las etapas intermedias las neuronas representan rasgos como la pata o la cabeza. En las etapas posteriores las neuronas se activan representando conceptos como el gato o el perro. La salida de la última etapa de convolución se conecta a un MLP que actúa como clasificador basado en las características más abstractas, determinando la probabilidad de pertenecer a una clase final (perro o gato, por ejemplo). Las redes deconvolucionales (DN o DNN), también conocidas como Redes Gráficas Inversas, son CNN invertidas en las que se pueden alimentar valores como «perro» o «gato» y obtener una imagen de uno de los animales como resultado, así como detectar cambios en las imágenes, por ejemplo, (Alcantarilla et al., 2018). © Universidad Internacional de La Rioja (UNIR) Figura 12. Redes deconvolucionales (DN oDNN). Técnicas de Inteligencia Artificial 27 Tema 6. Ideas clave Las redes gráficas inversas convolucionales profundas (DCIGN) son en realidad VAE en las que el codificador es una CNN y el decodificador es una DNN. Estas redes tratan de modelar características como probabilidades, y pueden ser utilizadas para unir dos objetos en una sola imagen, eliminar un objeto de una imagen, rotar un objeto en una imagen 3D, modificar la luz, etc. (Kulkarni et al., 2015). 6.8. Redes generativas antagónicas Por último, las Redes Generativas Antagónicas (GAN – Generative Adversarial Networks) están formadas por dos redes neuronales que trabajan juntas, normalmente una combinación de una FFNN y una CNN. Una de ellas se encarga de generar contenido (es decir, red generativa), mientras que la otra se encarga de juzgar o discriminar el contenido (es decir, red discriminativa) generado por la primera. También es habitual combinar una Red Deconvolucional (usada como generativa) con una Red Neuronal Convolucional (usada como discriminativa), generando y juzgando imágenes con el fin de sintetizar imágenes artificiales, por ejemplo, para convertir vídeos de caballos en cebras o viceversa, o incorporar caras de personas conocidas como políticos a vídeos de series famosas (lo que se conoce como técnicas Deepfake). La red discriminativa recibe como entrada los datos de formación o el contenido generado por la red generadora. Esto forma un sistema de competición en el que la red discriminativa es cada vez mejor para distinguir los datos reales de los datos generados por la red generadora y, al mismo tiempo, la red generadora es cada vez mejor para generar datos que la red discriminativa es incapaz de distinguir © Universidad Internacional de La Rioja (UNIR) (Goodfellow et al., 2014). Entre las aplicaciones de las redes generativas antagónicas se incluyen la generación de ejemplos de conjuntos de datos de imágenes, la generación de fotografías de rostros humanos y las poses (Ma et al., 2017), la generación de fotografías realistas Técnicas de Inteligencia Artificial 28 Tema 6. Ideas clave o de dibujos animados, traducción de imagen a imagen, traducción de texto a imagen, envejecimiento facial, edición de fotografías, transformación de la ropa en una imagen o predicción de vídeo, entre muchos otros. 6.9. Aprendizaje por refuerzo El aprendizaje de refuerzo (y el aprendizaje de refuerzo profundo) es una de las tendencias más prometedoras de los últimos años en el campo del aprendizaje de máquinas (Leike et al., 2018). Entre sus aplicaciones se encuentran los vehículos autónomos (Sallab et al., 2017), los robots aspiradores, el comercio automatizado, la gestión de recursos empresariales (incluidos los recursos de red) o los videojuegos. En este sentido, hemos comentado anteriormente cómo en 2016 los ordenadores consiguieron vencer a otros ordenadores el 99,8 % del tiempo y, por primera vez, los jugadores humanos son campeones en el juego de Go. Para entender el logro que esto representa, debemos tener en cuenta que el número de posibles estados en los que se encuentra un tablero de Go durante una partida es mayor que el número de átomos que existen en el universo. De hecho, esto se logró a través de técnicas de aprendizaje de refuerzo profundo. Específicamente una búsqueda en el árbol de Monte Carlo, guiada por una «red de valores» y una «red de políticas» (hablaremos de esto más adelante), ambas implementadas por la tecnología de redes neuronales profundas, en lo que se conoce como el algoritmo AlphaGo, desarrollado por investigadores de la compañía DeepMind, adquirida en 2014 por Google (Silver et al., 2016). © Universidad Internacional de La Rioja (UNIR) AlphaGo se entrenó inicialmente utilizando una base de datos de unos 30 millones de movimientos tomados de juegos de jugadores humanos expertos. Después de alcanzar un cierto nivel, el algoritmo fue entrenado usando técnicas de aprendizaje de refuerzo profundo para mejorar su juego compitiendo contra sí mismo. El primer lanzamiento en 2015, AlphaGo Fan, se ejecutó en 176 GPU distribuidas. Técnicas de Inteligencia Artificial 29 Tema 6. Ideas clave La segunda versión en 2016, AlphaGo Lee, se ejecutó en 48 TPU distribuidas. AlphaGo fue superado por AlphaGo Master en 2017, que funcionaba en una sola máquina con 4 TPU. Luego vino AlphaGo Zero a finales de 2017, un algoritmo que no fue entrenado por los datos de partidas de competidores humanos. AlphaGo Zero solo podía detectar posiciones en el tablero, en lugar de tener datos de entrenamiento anteriores. AlphaGo Zero también se ejecutó en una sola máquina con 4 TPU y venció a AlphaGo Lee en tres días por 100 juegos a 0 y alcanzó el nivel de AlphaGo Master en 21 días. La red neuronal de AlphaGo Zero fue previamente entrenada usando TensorFlow con 64 procesos de GPU y 19 CPU servidoras de parámetros (Silver et al., 2017). Después de eso, en 2018 AlphaZero fue capaz de jugar al ajedrez, al shogi y al go, utilizando un enfoque similar al de AlphaGo Zero, es decir, sin ningún dato previo de los jugadores humanos. En ocho horas fue superior al AlphaGo Zero jugando al Go. También utilizó una sola máquina de 4 TPU para la inferencia, y fue entrenado por 5 000 TPU de primera generación que solo competían contra él, sin datos externos (Schrittwieser et al., 2019). Algoritmos genéticos En primer lugar, cabe mencionar, dentro de la informática evolutiva, los algoritmos genéticos, ya que también se consideran parte del aprendizaje de refuerzo y se han utilizado durante años para estos fines. Aunque no han dado tan buenos resultados como los algoritmos basados en Q-Learning, Deep Q-Learning o A3C, que veremos más adelante, se siguen investigando con nuevas propuestas (Bora, Mariani y dos Santos Coelho, 2019). © Universidad Internacional de La Rioja (UNIR) El funcionamiento de los algoritmos genéticos se basa en el modelo de selección natural. Se basa en una población inicial de individuos (o cromosomas) que representan posibles soluciones a un problema, generalmente generados al azar o siguiendo ciertas pautas. Se define una función de aptitud que mide la bondad o la Técnicas de Inteligencia Artificial 30 Tema 6. Ideas clave aptitud de cada individuo o solución. También define la probabilidad de que los individuos se crucen (por lo general, los individuos más aptos son más probables) o tengan una mutación (por lo general, esta probabilidad es baja, pero no debería ser cero para no converger rápidamente en los mínimos locales). Así pues, en cada iteración o fase se evalúa la aptitud de los individuos, se seleccionan los mejores individuos (selección), se cruzan los individuos entre sí (cruce) y se producen las diferentes mutaciones posibles (mutación). Para ello se definen operadores específicos de selección, cruce y mutación, con diferentes. Enfoques basados en modelos (model-based) y sin modelos (model-free) Una vez que hemos visto de qué son capaces los algoritmos de aprendizaje de refuerzo sin entrenamiento supervisado previo (sin datos de entrenamiento etiquetados), profundizaremos un poco más en los conceptos que hay detrás de este tipo de algoritmos. En los algoritmos reinforcement learning, el problema no está relacionado con los datos disponibles, sino con un entorno en el que un agente tiene que interactuar. Por ejemplo, un robot aspirador en una casa, un coche autónomo en la carretera, un jugador en un videojuego o un agente en un mercado de valores. Aunque existen enfoques basados en modelos, es inviable que un coche autónomo memorice todo el planeta y todas las posibilidades que puede encontrar. Un automóvil autónomo no puede prever todas las infinitas posibilidades de movimientos e incidentes que pueden existir en todas las carreteras del mundo, por lo que el objetivo no debe ser predecir todos los movimientos, sino minimizar el error de conducción. En resumen, © Universidad Internacional de La Rioja (UNIR) se trata de minimizar un error o maximizar una recompensa. En esto se basan los enfoques sin modelos, y son los que vamos a ver a continuación. Técnicas de Inteligencia Artificial 31 Tema 6. Ideas clave Balance o compromiso entre exploración y explotación (exploration- exploitation trade-off) Es importante entender lo que significa el balance o compromiso exploración/explotación. Imaginemos a un agente fingiendo ser un personaje dentro de un videojuego de tipo laberinto. En el laberinto puede haber un importante tesoro que le permite obtener una recompensa de +500 puntos. Además, dentro del laberinto puede encontrar trampas que penalizan con -50 puntos y pequeños tesoros o monedas que proporcionan una recompensa de +5 puntos cada una. El agente, dependiendo de su habilidad para observar el entorno, puede decidir realizar ciertas acciones (avanzar, retroceder, girar, etc., dependiendo de la interfaz permitida). Es importante tener en cuenta que la recompensa no siempre es inmediata. Es decir, encontrar un pequeño tesoro puede venir después de una serie de decisiones encadenadas o una decisión tomada previamente en el tiempo. Si el agente, después de pasar un cierto tiempo explorando, encuentra una habitación con una cierta cantidad de monedas, puede pasar su tiempo explotando esa situación (recogiendo todas las monedas de la habitación), perdiéndose la mayor recompensa (el tesoro final). Esto se conoce como el compromiso exploración/explotación (de Sledge y Príncipe, 2017). Una posible estrategia simple podría ser que el agente pase el 90 % de su tiempo realizando la acción que le está dando los mejores resultados y el 10 % del tiempo explorando nuevas posibilidades aleatorias incluso lejos de los pequeños tesoros conocidos. Esta estrategia se conoce como estrategia ε-greedy (epsilon-codiciosa) (Hu, Shi y Liu, 2017), donde ε es el porcentaje (fracción) de tiempo que el agente dedica a la exploración en lugar de a la explotación. Esto puede reducirse © Universidad Internacional de La Rioja (UNIR) progresivamente en función de los conocimientos adquiridos por el agente. Técnicas de Inteligencia Artificial 32 Tema 6. Ideas clave Procesos de decisión de Markov (MDP – Markov Decision Processes) Los movimientos del agente a lo largo del videojuego de tipo laberinto descrito anteriormente pueden formalizarse como un Proceso de Decisión de Markov (MDP) (Liu, Cheng y Hsueh, 2017). Un MDP es un proceso que se mueve a través de diferentes estados y en el que existe una probabilidad específica de transitar entre un estado i y un estado j. Por lo tanto, hay un conjunto de estados finitos en los que el agente se puede encontrar en el laberinto. Asimismo, hay un conjunto de acciones (avance, retroceso, giro, etc.) que el agente puede realizar en cada uno de los estados. También hay una recompensa (positiva o negativa) asociada a cada transición. Por otro lado, se considera que existe un factor de descuento γ, un valor entre 0 y 1 que cuantifica la importancia entre las recompensas inmediatas y las recompensas futuras. Por ejemplo, γ = 0.95 implica que una recompensa de +10 que se obtiene después de 5 pasos tendrá un valor actual como recompensa de 0.955 · 10 = 0.95 · 0.95 · 0.95 · 0.95 · 0.95 · 10 = 7.74. Por último, en el MDP existe lo que se denomina memorylessness o falta de memoria, es decir, el agente no necesita conocer los estados anteriores al actual, considera que el futuro solo depende del presente. Por lo tanto, el objetivo del agente es maximizar la suma de las recompensas a largo plazo desde el momento presente hasta el tiempo futuro: © Universidad Internacional de La Rioja (UNIR) Donde r(s,a) es una función de recompensa que depende del estado s y la acción a. Técnicas de Inteligencia Artificial 33 Tema 6. Ideas clave Figura 13. Agente en un escenario Reinforcement Learning libre de modelo. El algoritmo de aprendizaje Q-learning El algoritmo de aprendizaje Q-learning (Watkins y Dayan, 1992) es una de las técnicas sin modelo (model-free) más conocidas en el aprendizaje de refuerzo, y tiene numerosas evoluciones y variantes del mismo (Arulkumaran et al., 2017). Para cualquier proceso de decisión finito de Markov (FMDP – Finite Markov Decision Process), el Q-learning (Q viene de Quality o calidad) encuentra una política que es óptima en el sentido de que maximiza el valor esperado de la recompensa total en todos y cada uno de los pasos sucesivos, a partir del estado actual. Así, tenemos una función de valor Q(s, a) que toma como entrada el estado actual s y la acción actual a y devuelve la recompensa esperada por esa acción y todas las acciones sucesivas. Inicialmente, Q devuelve el mismo valor arbitrario. A medida que el agente explora el entorno, Q devuelve una aproximación cada vez mejor del valor © Universidad Internacional de La Rioja (UNIR) de una acción, dado un estado s. Técnicas de Inteligencia Artificial 34 Tema 6. Ideas clave Es decir, la función Q se actualiza progresivamente. Así, el nuevo valor Qnew(st, at) se actualiza en cada iteración a partir del antiguo valor Q(st, at) con una tasa de aprendizaje α, ya que el valor aprendido se conoce, donde rt es la recompensa, γ es el factor de descuento y es la estimación del valor óptimo futuro: De esta manera, el agente tiene un valor estimado para cada par de estados-acción, y cuyo conocimiento aumenta con el tiempo. Con esta información, el agente puede seleccionar qué acción llevar a cabo en cada momento de acuerdo con su estrategia de selección de acciones, que puede tener en cuenta una estrategia ε-greedy, por ejemplo, para aumentar su conocimiento del medio ambiente. Aprendizaje de políticas (policy learning) y SARSA © Universidad Internacional de La Rioja (UNIR) En el algoritmo de Q-learning hay una función de valor Q que estima el valor de cada par estado-acción (la recompensa esperada por esa acción y todas las acciones subsiguientes). En el caso del aprendizaje de políticas (Nachum et al., 2017) se trata de aprender una función de política π(s) que nos proporciona directamente la mejor acción (es decir, a) a realizar por el agente, dado el estado observado s: Técnicas de Inteligencia Artificial 35 Tema 6. Ideas clave En este tipo de algoritmos se basan trabajos en los que un agente aprende a jugar al juego de Atari, conocido como Pong, tomando como entrada los píxeles de la pantalla (estado) y obteniendo como salida la probabilidad de mover la paleta hacia arriba o hacia abajo (acción) (Phon-Amnuaisuk, 2017). Un ejemplo de un algoritmo de aprendizaje por políticas es SARSA (State-Action- Reward-State-Action o Estado-acción-recompensa-estado-acción) que se ha aplicado, entre otras áreas, a la creación de jugadores virtuales (Phon-Amnuaisuk, 2011). Mientras que el Q-learning aprende los valores Q asociados a la toma de la política óptima considerando el compromiso de exploración/explotación, el SARSA aprende los valores Q asociados a la toma de la política que ella misma sigue: 6.10. Aprendizaje por refuerzo profundo © Universidad Internacional de La Rioja (UNIR) El aprendizaje profundo ha acelerado el progreso en el aprendizaje de refuerzo, con el uso de algoritmos de aprendizaje profundo dentro del reinforcement learning que definen el campo del aprendizaje de refuerzo profundo (Arulkumaran et al., 2017). Técnicas de Inteligencia Artificial 36 Tema 6. Ideas clave El aprendizaje profundo permite que el aprendizaje de refuerzo se amplíe a problemas de toma de decisiones que antes eran intratables, es decir, entornos con estados dimensionales y espacios de acción elevados, dando lugar al Aprendizaje por Refuerzo Profundo. Entre los trabajos recientes en el ámbito del aprendizaje profundo de refuerzo, se han registrado dos casos de éxito destacados. La primera, que marcó el comienzo de la revolución en el aprendizaje por refuerzo profundo, fue el desarrollo en 2015 de un algoritmo que permitió aprender a jugar una serie de videojuegos Atari 2600 a un nivel sobrehumano, directamente desde los píxeles de la imagen. De hecho, este trabajo también fue desarrollado por DeepMind y se utilizan Deep Q-Networks para ello. Las DQN son un enfoque que se aproxima a las funciones Q usando redes neuronales profundas (Mnih et al., 2015). El segundo es el ya comentado en la anterior sección, que se refiere a los desarrollos del algoritmo AlphaGo por el equipo de DeepMind, utilizando redes neuronales que se entrenaron mediante aprendizaje supervisado y aprendizaje de refuerzo, en combinación con un algoritmo de búsqueda heurística tradicional (Silver et al., 2016), así como los posteriores AlphaGo Cero y AlphaZero, en los que se eliminó el aprendizaje supervisado inicial (Schrittwieser et al., 2019). Existen varios algoritmos de Aprendizaje de Refuerzo Profundo (Deep Reinforcement Learning) (Arulkumaran et al., 2017), incluyendo las variantes de Aprendizaje Profundo de Q-Learning (DQN – Deep Q-Networks), como el Double DQN, el dueling DQN, las Redes Profundas Recurrentes de Q-Learning (DQRN – Deep Q Recurrent © Universidad Internacional de La Rioja (UNIR) Networks) y el multi-step DQN, entre otros, y los basados en el gradiente de política, como REINFORCE, Advantage Actor-Critic (A2C), Gradiente de Política Natural (NPG – Natual Policy Gradient), entre muchos otros. Técnicas de Inteligencia Artificial 37 Tema 6. Ideas clave Las redes Q profundas y recurrentes (DRQN – Deep Recurrent Q-Networks) se basan en el hecho de que un agente, al igual que un humano cuando trata de resolver un problema, debe ser capaz de tener alguna memoria sobre el tiempo pasado, y no solo basarse en la información que puede ver en ese momento. Con este fin, los DRQN se basan en la idea de utilizar las Redes Neuronales Recurrentes (RNN) para aumentar las capacidades de los DQN. De esta manera, si el agente es un personaje que juega en un laberinto en 3D, basará sus acciones no solo en lo que está viendo en un momento dado, sino también en lo que vio durante los segundos anteriores (por ejemplo, un enemigo o un tesoro que desaparece detrás de un muro a medida que el personaje se mueve), como puede suceder en un juego de FPS (First-Person Shooter) como el conocido Doom (Lample y Chaplot, 2017). Finalmente, y de nuevo del equipo de DeepMind en 2016, surgió el algoritmo Actor- Crítico de Ventaja Asíncrona (A3C – Asynchronous Advantage Actor-Critic), que superó a los algoritmos anteriores que competían en la plataforma de juego de Atari (Mnih et al., 2016). El algoritmo A3C combina una red de políticas que decide cómo actuar (es decir, la actuadora) y una red Q que decide cuán valiosas son las cosas (es decir, la crítica). Esto se ha utilizado para enseñar a los jugadores de 3D cómo caminar