Entrenar redes neuronales profundas desde cero no es una tarea f谩cil.
Se necesitan muchos datos y tiempo para aprender, pero algunos trucos pueden ayudar a acelerar el proceso, del que hablar茅 m谩s adelante.
Demostraci贸n del paso de un laberinto simple utilizando trucos. Duraci贸n del entrenamiento de red: 1 hora 06 minutos. Grabaci贸n acelerada 8 veces.
Para cada tarea, debe desarrollar su propio conjunto de trucos para acelerar el aprendizaje en red. Compartir茅 algunos trucos que me ayudaron a entrenar la red mucho m谩s r谩pido.
Para conocimientos te贸ricos, recomiendo cambiar al canal
sim0nsays .
Y contar茅 sobre mis modestos 茅xitos en el entrenamiento de redes neuronales.
Declaraci贸n del problema.
Aproximar la funci贸n de convergencia minimizando la funci贸n de p茅rdida cuadr谩tica mediante la propagaci贸n hacia atr谩s del error por redes neuronales profundas.Ten铆a una opci贸n de estrategia sobre c贸mo entrenar una red neuronal.
Fomente la finalizaci贸n exitosa de la tarea o aliente a medida que se acerca a la finalizaci贸n de la tarea.
Eleg铆 el segundo m茅todo, por dos razones:
- La probabilidad de que la red llegue a la l铆nea de meta por s铆 sola es muy peque帽a, por lo que estar谩 condenada a recibir mucho refuerzo negativo. Esto restablecer谩 los pesos de todas las neuronas y la red no ser谩 capaz de seguir entrenando.
- Las redes neuronales profundas son poderosas. No excluyo que el primer m茅todo hubiera sido exitoso si tuviera una gran potencia inform谩tica y mucho tiempo para la capacitaci贸n. Tom茅 el camino de menor costo desarrollando trucos.
Arquitectura de red neuronal
La arquitectura se est谩 desarrollando experimentalmente, basada en la experiencia del arquitecto y la buena suerte.
Arquitectura para resolver el problema:
- 3 neuronas de entrada: las coordenadas del agente y el valor de la c茅lula pasada (normalizamos en el rango de 0 a 1).
- 2 capas ocultas de 256 y 128 neuronas (reducimos la dimensi贸n de las capas hacia la salida de la red).
- 1 capa de ca铆da de neuronas aleatorias para la red de aprendizaje de sostenibilidad.
- 4 neuronas de salida: la probabilidad de decidir qu茅 lado elegir para el siguiente paso.
- Funci贸n de activaci贸n neuronal: sigmoidea. Optimizador: Adam.
sigmoid da 4 probabilidades en la salida en el rango de 0 a 1, eligiendo el m谩ximo, obtenemos el lado para el siguiente paso: [jumpTop, jumpRight, jumpBottom, jumpLeft].
Desarrollo de la arquitectura
La reentrenamiento ocurre cuando se usan modelos demasiado complejos.
Esto es cuando la red record贸 los datos de entrenamiento y para los nuevos datos que la red a煤n no ha visto, funcionar谩 mal porque la red no necesitaba buscar generalizaciones, ya que ten铆a suficiente memoria para memorizar.
Falta de educaci贸n - con modelos insuficientemente complejos. Esto es cuando la red ten铆a pocos datos de entrenamiento para encontrar generalizaciones.
Conclusi贸n: cuantas m谩s capas y neuronas contengan, m谩s datos se necesitan para el entrenamiento.
Campo de juego

Reglas del juego
0: al ingresar a esta celda, el agente se destruye.
1..44 - Celdas cuyos valores aumentan con cada paso.
Cuanto m谩s lejos vaya el agente, m谩s recompensa recibir谩.
45 - Acabado. Al mismo tiempo, el entrenamiento no ocurre, solo cuando todos los agentes son destruidos, y el final es una excepci贸n que simplemente usa la red ya entrenada para el pr贸ximo pron贸stico desde el comienzo del laberinto.
Descripci贸n de los par谩metros.
El agente tiene una "antena" en cuatro direcciones: desempe帽a el papel de inteligencia ambiental y es una descripci贸n de las coordenadas del agente y el valor de la celda en la que se encuentra.
La descripci贸n juega el papel de predecir la siguiente direcci贸n para el movimiento del agente. Es decir, el agente escanea de antemano lo que sigue y, en consecuencia, con el tiempo, la red aprende a moverse en la direcci贸n de aumentar el valor de la celda y no ir m谩s all谩 de los l铆mites del movimiento permisible.
El prop贸sito de la red neuronal: obtener m谩s recompensas.
Prop贸sito de aprendizaje: para alentar las acciones correctas, cuanto m谩s cerca est茅 el agente de resolver la tarea, mayor ser谩 la recompensa para la red neuronal.
Trucos
Los primeros intentos de aprender sin trucos tomaron varias horas de entrenamiento y el resultado estuvo lejos de ser completo. Aplicando ciertas t茅cnicas, 隆el resultado se logr贸 en solo una hora y seis minutos!
Agente en bucle
Durante el entrenamiento, la red comenz贸 a tomar decisiones, hacer movimientos de ida y vuelta, el problema del "uso". Ambos movimientos dan a la red una recompensa positiva, que detuvo el proceso de exploraci贸n del laberinto y no permiti贸 salir del m铆nimo local.
El primer intento de soluci贸n fue limitar el n煤mero de movimientos del agente, pero esto no fue 贸ptimo, ya que el agente pas贸 mucho tiempo en un ciclo antes de la autodestrucci贸n. La mejor soluci贸n era destruir al agente si iba a la celda con un valor m谩s bajo que el que estaba parado: la prohibici贸n de ir en la direcci贸n opuesta.
Investigar o usar
Se us贸 un truco simple para explorar los caminos alrededor de la posici贸n actual del agente: en cada paso, 5 agentes ser谩n investigadores "voluntarios". El curso de estos agentes se elegir谩 al azar, y no por el pron贸stico de la red neuronal.
Por lo tanto, tenemos una mayor probabilidad de que uno de los cinco agentes avance m谩s que los dem谩s y ayude a capacitar a la red con mejores resultados.
Algoritmo gen茅tico
Cada era, 500 agentes participan en el campo de juego. Las predicciones para todos los agentes se realizan en modo as铆ncrono para todos los agentes a la vez, adem谩s, los c谩lculos se delegan a gpu. Por lo tanto, obtenemos un uso m谩s eficiente de la potencia inform谩tica de la computadora, lo que conduce a una reducci贸n en el tiempo para predecir una red neuronal para 500 agentes al mismo tiempo.
La predicci贸n funciona m谩s r谩pido que el entrenamiento, por lo que la red tiene m谩s posibilidades de avanzar por el laberinto con la menor cantidad de tiempo y el mejor resultado.
Aprendiendo lo mejor de la generaci贸n
A lo largo de la era, para 500 agentes, se conservan los resultados de su avance a trav茅s del laberinto. Cuando se destruye el 煤ltimo agente, se seleccionan los 5 mejores agentes de cada 500, que llegaron m谩s lejos al laberinto.
Con base en los mejores resultados de la era, se capacitar谩 una red neuronal.
Por lo tanto, reduciremos la cantidad de memoria utilizada al no guardar y no capacitar a la red en agentes que no avanzan la red.
Finalizaci贸n
Al no ser un especialista en este campo, logr茅 cierto 茅xito en el entrenamiento de la red neuronal, y usted tendr谩 茅xito, 隆adelante!
Esforzarse por aprender m谩s r谩pido que las computadoras, mientras lo hacemos mejor.
Materiales
Repositorio con c贸digoIniciar la capacitaci贸n del navegadorLa documentaci贸n de tensorflow.js , donde tambi茅n puede encontrar recursos adicionales para el aprendizaje.
Libros
- Aprendizaje profundo Inmersi贸n en el mundo de las redes neuronales.
S. Nikolenko, A. Kadurin, E. Arkhangelskaya
- Aprendizaje autom谩tico y TensorFlow
N. Shakla
- Sistemas de autoaprendizaje
S. I. Nikolenko, A. L. Tulupyev
- Entrenamiento de refuerzo
R.S. Sutton, E.G. Barto
- Tarjetas autoorganizadas
T. Kohonen
Gracias por su atencion!