Disipando mitos sobre el aprendizaje profundo: ¿cómo aprenden las redes neuronales?

En vísperas del inicio del curso “Deep Learning. Basic ” preparó una traducción de material interesante para usted.








El aprendizaje profundo ha contribuido enormemente al progreso y al aumento de la inteligencia artificial que vemos hoy en todo el mundo. Las tareas que la inteligencia artificial está realizando ahora, como la clasificación de texto e imágenes, la segmentación de instancias, responder preguntas basadas en datos de texto, comprensión de lectura y más, eran ciencia ficción en el pasado, pero ahora se están volviendo más útiles y cada vez más imitadas. humanos mediante el uso de redes neuronales profundas.



¿Cómo afrontan las redes neuronales estas complejas tareas? ¿Qué sucede debajo de las interminables capas de bits de operaciones matemáticas que llenan estas redes?





Una red neuronal simple Profundicemos



un poco más y comprendamos conceptualmente los conceptos básicos de las redes neuronales profundas.



Primero, hablemos del algoritmo utilizado por la mayoría (si no todas) las redes neuronales para aprender de los datos de entrenamiento. Los datos de entrenamiento no son más que datos humanos anotados, es decir, imágenes etiquetadas en el caso de la clasificación de imágenes, o sentimientos etiquetados en el análisis de sentimientos.



Y se llama algoritmo de retropropagación de errores.

A continuación se muestra una breve descripción general de la estructura de las redes neuronales:



Las redes neuronales transforman los datos de entrada en salida de cierta manera. Los datos de entrada pueden ser imágenes, fragmentos de texto, etc. Los datos de entrada se convierten a su representación numérica: por ejemplo, en las imágenes, cada píxel se codifica con un valor numérico en función de su posición, y en el texto, cada palabra es un vector de números, que es una representación vectorial de una palabra (en tal vector, cada número es una estimación de una característica específica de una palabra) o un vector unidimensional (un vector n- dimensional que consta de n-1 ceros y uno uno, donde la posición de uno apuntará a la palabra seleccionada).



Esta entrada numérica luego se pasa a través de una red neuronal (usando una técnica conocida como retropropagación de un error), que bajo el capó tiene varios pasos de multiplicar por pesos de red, agregar compensaciones y pasar por una función de activación no lineal. Este paso de propagación hacia adelante se realiza para cada entrada en los datos de entrenamiento etiquetados, y la precisión de la red se calcula usando una función conocida como función de pérdida o función de costo. El objetivo de la red es minimizar la función de pérdida, es decir, maximizar su precisión. Inicialmente, la red comienza a trabajar con un valor aleatorio de los parámetros (pesos y sesgos), y luego aumenta gradualmente su precisión y minimiza las pérdidas, continuando mejorando estos parámetros en cada iteración mediante la propagación directa de los datos de entrenamiento.La actualización de pesos y sesgos (magnitud y dirección positiva o negativa) se determina mediante el algoritmo de retropropagación. Veamos el algoritmo de retropropagación y comprendamos cómo ayuda a las redes neuronales a "aprender" y minimizar la pérdida de datos de entrenamiento.





Propagación hacia adelante en una red neuronal profunda



La esencia de la propagación hacia atrás del error es averiguar cómo debe cambiar cada parámetro para adaptarse mejor a los datos de entrenamiento (es decir, minimizar las pérdidas y maximizar la precisión de la predicción). El método para determinar estos valores es bastante simple:





En la imagen de arriba, el eje Y es una función de pérdida y el eje X es algún parámetro (peso) en la red. El valor inicial del peso debe reducirse para alcanzar el mínimo local. Pero, ¿cómo entiende la red que es necesario reducir el peso para hacer esto? La red se basará en la pendiente de la función en el punto de partida.



¿Cómo se obtiene la pendiente? Si ha estudiado matemáticas, sabe que la pendiente de una función en un punto viene dada por su derivada. ¡Voila! Ahora podemos calcular la pendiente y, por tanto, la dirección de cambio (positiva o negativa) del peso. El valor del peso se actualiza iterativamente y terminamos con el mínimo.



La dificultad surge cuando los pesos no están directamente relacionados con la función de pérdida, como es el caso de las redes neuronales profundas. Aquí es donde entra en juego la conocida regla de la cadena.





Por ejemplo, en la figura de arriba muestra que el resultado Y no depende directamente del valor de entrada X , pero X pasa a través de F , y luego a través de G antes para dar un valor de salida Y . Usando la regla de la cadena, puede escribir la derivada de G con respecto a X , indicando la dependencia de G de F , donde F depende de X... Esta regla se puede aplicar para redes de cualquier longitud con la derivada resultante y, por lo tanto, la pendiente de cualquier valor de salida con respecto a la entrada, obtenida como el producto de las derivadas de todos los pasos por los que pasa el valor de entrada. Esta es la esencia de la retropropagación del error, donde la derivada / pendiente del valor de salida con respecto a cada parámetro se obtiene multiplicando las derivadas durante el paso hacia atrás a través de la red hasta encontrar la derivada directa del parámetro, razón por la cual el método se llama retropropagación.



Eso es todo. Para obtener más información sobre el curso, lo invitamos a inscribirse para la jornada de puertas abiertas en el siguiente enlace:






All Articles