Cómo realizar el aprendizaje de refuerzo en una red neuronal de alimentación oculta de capas múltiples

Existen muchos métodos diferentes para el aprendizaje por refuerzo en las redes neuronales. Según la forma de su pregunta, probablemente estará más interesado en los Gradientes de políticas. Vea este artículo de 1992 sobre el algoritmo REINFORCE de Ronald Williams:

http://www-anw.cs.umass.edu/~bar…

Sergey Levine ha realizado un trabajo más reciente utilizando redes de retroalimentación convolucionales. Particularmente ha estado trabajando con métodos de gradiente de políticas para el control robótico.

La idea clave para los Gradientes de políticas es que está tratando de maximizar la suma de recompensas con descuento. Su red genera una distribución de probabilidad sobre las acciones, y la diferenciación de las recompensas esperadas puede propagarse a través de la red de la manera estándar (disparar desde la cadera aquí, podría estar desglosado en detalles en las matemáticas),

[matemáticas] \ frac {\ partial} {\ partial w} \ mathbb {E} \ left [R \ right] \ approx \ frac {1} {N} \ sum_i R_i \ frac {\ partial} {\ partial w} \ log \ mathbb {P} (a_i \ mid s_i). [/ math]

La desventaja de los gradientes de la política es que también necesita una política de exploración, porque las recompensas de propagación inversa solo enseñarán a la red a obtener las altas recompensas que ha visto antes. Si desea que la red encuentre nuevas oportunidades de recompensa, debe explorar muchas opciones. Entonces, necesita un controlador para provocar la exploración: la idea de Schmidhüber de la curiosidad artificial es un enfoque para resolver ese problema.

Los gradientes de políticas resuelven el aprendizaje de refuerzo directamente, pero también es posible resolver problemas auxiliares e integrarlos en un controlador. Muchos métodos aprenden una función de valor que estima la bondad o maldad de cualquier estado en el entorno. Con una función de valor, puede superponer un algoritmo de planificación para elegir una secuencia de acciones con los valores más altos. Como debería ser obvio, una función de valor puede ser modelada por una red neuronal de retroalimentación. La red Deep Q (DQN) es la última versión popular de esto. Los valores se pueden descubrir operando en el entorno, y esto crea un conjunto de datos supervisados ​​que se pueden aprender usando backprop.

Alpha Go combinó aspectos de cada uno, con una red neuronal para generar una lista de acciones potenciales y redes críticas complementarias que fueron capacitadas para evaluar la bondad o maldad de cada decisión en la lista corta.

Si está abierto a considerar marcos alternativos, debería echar un vistazo al trabajo de Ken Stanley en redes generadoras de patrones. Él y sus estudiantes tienen mucho trabajo en problemas de control utilizando la neuroevolución, y el enfoque de generación de patrones utiliza una pequeña red entrenada con métodos evolutivos para generar redes regulares y de buen comportamiento que pueden ser muy grandes. La mayor parte de su trabajo involucra a RNN, pero la misma técnica se puede utilizar para las redes de retroalimentación. Otros enfoques de neuroevolución de Jeff Clune, Risto Miikkulainen (mi asesor) y Jan Koutnik (en el laboratorio de Schmidhüber) también pueden ser de su interés.

En resumen, hay muchos, muchos enfoques para aprender una red neuronal que opera en el entorno, y si lee algunos de los trabajos mencionados anteriormente y luego busca (a) documentos altamente citados que los citan y (b) documentos que ellos cite, comenzará a hacerse una idea del estado del campo.

Por otro lado, es posible que también desee ver OpenAI Gym: un juego de herramientas para desarrollar y comparar algoritmos de aprendizaje de refuerzo. Ilya Sutskever y otros en OpenAI están haciendo una gran cantidad de investigación de vanguardia sobre el aprendizaje de refuerzo con redes neuronales allí.

Cualquier algoritmo RL estándar (aprendizaje Q, Sarsa, actor crítico, gradiente de políticas, planificación basada en modelos) involucra algunas funciones básicas de RL, estas son la política, el valor, el valor de acción estatal (función Q) o el modelo.

Para cualquiera de estas funciones RL básicas, puede usar un MLP para representarlas. O un NN convolucional, o NN recurrente como lstm.

Hay algunos trucos adicionales con redes profundas para mejorar su convergencia en una cierta clase de algoritmos (métodos TD como Q learning). Estos fueron introducidos por primera vez por Deepmind en su documento DQN. Estos son la repetición de la experiencia, el objetivo suave, el recorte de recompensas, etc.

¿Cómo se realiza el aprendizaje de refuerzo cuando el modelo no es una red neuronal profunda (el modelo lineal o los estados son muy pocos que se pueden almacenar en una tabla)?

Nada ha cambiado, su red neuronal representa una política (mapeo de estado a acción) y esta política debe actualizarse con experiencia. La experiencia le proporciona recompensas que pueden ser negativas y positivas. Vuelva a preparar estas recompensas en su red neuronal, que actualizará sus pesos para encontrar la política adecuada de acuerdo con las recompensas que está recibiendo.

More Interesting

¿Cuál es la diferencia entre el curso de aprendizaje automático de Andrew Ng en Coursera y el curso AZ ML en Python y R en Udemy?

¿Quiénes son los profesores que trabajan en biología computacional utilizando el aprendizaje automático inspirado en bio como las redes neuronales?

¿Debo aprender primero el aprendizaje profundo o de refuerzo? ¿Hay un orden natural? ¿Debería hacerse al mismo tiempo?

¿Cuál es la diferencia entre las redes de Markov y las redes bayesianas?

¿Es c # una buena opción para el aprendizaje automático de producción?

¿Podemos combinar HOG y PCA en la clasificación de imágenes?

Cómo medir el rendimiento de aprendizaje en Q-Learning

¿Hay proveedores de reconocimiento de voz que aún brinden soluciones de servidor en las instalaciones (no en la nube) en 2017?

Cómo construir un proyecto de aprendizaje profundo en dos meses

¿Cuál es el impacto de la limitación de la velocidad de la luz en el aprendizaje automático?

En el modelado de datos, ¿podría ser una buena idea crear algorítmicamente una característica grande para activar las meta características actuales antes del modelado?

¿Cuáles son las restricciones de ordenamiento de la base herbrand en el aprendizaje metainterpretativo?

En el aprendizaje automático, ¿son siempre más datos mejores que mejores algoritmos?

¿Qué necesitas para hacer aprendizaje automático?

Andrew Ng: ¿Por qué ya no es necesario entrenar capas a través de codificadores automáticos para Deep Learning?