Del curso: Fundamentos de Inteligencia artificial: Redes neuronales

Ajusta la red neuronal

Supongamos que retrocedes por la red neuronal y ajustas los niveles de activación para la respuesta correcta. La retropropagación analiza hacia atrás cada paso de la red y sintoniza los diales más sensibles. Así consigue mejorar los niveles de activación y reducir la función de costo. Obtener la respuesta correcta es la máxima prioridad, pero no es la única. También sirve ajustar las ponderaciones para disminuir el nivel de activación de las respuestas incorrectas. El algoritmo de retropropagación también analiza y ajusta hacia abajo la más probable de las respuestas incorrectas. Ten en cuenta que no hacemos esto para la imagen del perro beagle. Lo hacemos para cada imagen de los datos de entrenamiento. Los datos de entrenamiento son un subconjunto más pequeño de los datos de prueba que usas en la red neuronal. Si lo hicieras una sola vez con el conjunto de entrenamiento, acabarías con una red neuronal que solo clasifica la imagen con precisión como beagle. En ese caso estaríamos usando la retropropagación para ayudar a la red neuronal a aprender una única imagen. Tienes que encontrar una forma de mejorar la precisión de los niveles de activación de todas las razas de perros para la capa de salida. Dicho esto, lo primero es analizar millones de imágenes de los datos de entrenamiento. Luego, promedias los ajustes de las ponderaciones y los sesgos que obtienes a través de la retropropagación. Puedes hacer que la red sea un poco menos precisa en la búsqueda de beagles, para que mejore en la búsqueda de otras razas de perros. Estás tratando de encontrar las ponderaciones y sesgos óptimos como forma de minimizar la función de costo general de la red. Puede que no sea lo mejor para un perro en particular, pero será la ponderación y los sesgos óptimos para todas las razas de perros de la capa de salida. En las redes neuronales esto se llama crear el gradiente negativo de la función de costo. Como en el juego del carnaval, hace falta que las canicas rueden por la red para encontrar los descensos más empinados y los valles más profundos. Cada vez que tiras una canica te acercas al punto más bajo de la función de costo. Como puedes imaginar, se necesita mucha capacidad de procesamiento para usar la retropropagación en todas las imágenes del conjunto de entrenamiento y ajustar las ponderaciones y el sesgo. Después debes promediar esas ponderaciones y sesgos para obtener el gradiente negativo de la función de costo. Por eso, la mayoría de los equipos de ciencia de datos usan un descenso de gradiente estocástico. Es una forma mucho más turbulenta de encontrar los valles más profundos, pero es más fácil que analizar todas las imágenes de los datos de entrenamiento. Para un descenso de gradiente estocástico, primero debes mezclar todas las imágenes de perros en el conjunto de entrenamiento. Luego creas varios lotes más pequeños a partir de este conjunto de entrenamiento, así que en lugar de millones de imágenes de perros, tienes unos cuantos lotes de unos pocos miles de imágenes. Es hora de entrenar la red neuronal con cada uno de estos lotes. Significa que tendrás una red neuronal que es precisa para cada uno de estos lotes. El problema es que cuando cambias de lote, pierdes mucha precisión. Eso se debe a que la retropropagación se usó para optimizar la red neuronal de un lote y luego se cambió a otro. Si nos remontamos al juego de carnaval, el entrenamiento tradicional es como lanzar 1000 canicas al tablero, una por una, y registrar los valles más profundos. El descenso de gradiente estocástico equivale a lanzar lotes de 100 canicas y registrar el resultado de cada uno de estos 10 lotes. Estás renunciando a cierta precisión para conseguir un resultado más rápido. La clave es no confiar demasiado en los resultados de cada uno de estos lotes. Puedes obtener resultados precisos con bastante rapidez con un lote de los datos de entrenamiento, pero debes revisar todos los datos de entrenamiento para asegurarte de que obtendrás los mismos resultados con los datos de prueba.

Contenido