Aprendizaje de Redes Neuronales

Rubén Rodríguez Abril

La capacidad de aprendizaje de las redes neuronales es sin duda su rasgo distintivo. A diferencia de otros métodos de cómputo, la virtud de la rede neuronal no reside  en recoger y archivar datos en la memoria, sino generalizar la información que extraen durante el entrenamiento a una amplia variedad de casos novedosos. Veremos en este artículo los dos principales paradigmas de aprendizaje, supervisado y no supervisado.

Aprendizaje de redes neuronales

A diferencia de lo que sucede en el caso de la computación serial ordinaria, el comportamiento de las redes neuronales sólo es determinado parcialmente por el programador. Éste se limita a construir un grafo, en cuyos nodos se sitúan las neuronas artificiales y cuyas aristas representan las conexiones sinápticas de las mismas. El programador determina la estructura básica que debe tener la red, las funciones de activación de las neuronas, así como los modos de interconexión de las mismas. Pero los pesos de las conexiones sinápticas entre las neuronas, claves en el comportamiento de la red, son determinados con posterioridad mediante procesos de entrenamiento y aprendizaje.

El aprendizaje de redes neuronales puede definirse como la modificación del comportamiento de la red resultante de la aplicación sucesiva de estímulos. Esta modificación puede tener lugar de dos maneras: mediante la modificación de los pesos sinápticos de las neuronas, o mediante la creación de bucles dentro de la red neuronal, que permitan el almacenamiento de información a lo largo del tiempo, constituyendo una suerte de memoria. En el presente artículo, haremos referencia tan sólo al primero de ellos.

Actualización de pesos sinápticos

Tal y como expusimos en anteriores artículos de esta serie, la transmisión de impulsos de una neurona a otra se regula por dos variables diferentes:

 – La intensidad del pulso de la neurona aferente d_{i} (de entrada), equivalente al valor de su función de activación.

 – El peso sináptico w_{i} de la conexión, cuya alteración en función de la aplicación de estímulos exteriores constituye una forma de entrenamiento o aprendizaje.

Aprendizaje de redes neuronales por modificación de los pesos sinápticos.

Esta ilustración muestra los estados de configuración de una neurona con dos entradas binarias (que o bien reciben excitación –1– o bien no la reciben –0-). Las configuraciones situadas en la zona blanca activan la neurona, las situadas en la zona gris, no lo hacen. Los pesos sinápticos son los coeficientes de la ecuación lineal de la recta discriminante, que es la que divide ambas zonas. La alteración del segundo peso (que pasa a tener un valor de -8) modifica la recta y provoca que la neurona cambie su respuesta ante la configuración sináptica 1,1 (en la que las dos entradas reciben excitación). La neurona ha cambiado de comportamiento, y por tanto ha aprendido.

Los sistemas de aprendizaje por actualización de pesos sinápticos pueden ser de dos tipos: supervisados, cuando requieren la presencia de un operador que entrene a la red y no supervisados, en caso contrario.

Aprendizaje de redes neuronales No Supervisado

El Modelo Hebbiano

Los modelos de aprendizaje no supervisados hunden sus raíces en las ideas del neurofisiólogo canadiense Donald O. Hebb, que en su libro The Organization of Behaviour (1949), lanzó la hipótesis que la activación simultánea de dos neuronas conectadas entre sí, reforzaba la sinapsis entre ambas. De este modo, parafraseando el ejemplo de Pavlov, determinados circuitos neuronales (circuitos A) de un perro se activan cuando oye el sonido de un timbre, mientras que otros (circuitos B) lo hacen cuando huele a comida. La estimulación simultánea de ambos provoca que las conexiones sinápticas entre los circuitos A y B se refuercen. Y que con ello se incremente la posibilidad de que el perro salive cada vez que oiga sonar un timbre.

Matemáticamente, la regla de Hebb implica que la sinapsis entre una neurona y otra célula aferente se refuerza cada vez que la primera se dispara inmediatamente después de la segunda, siguiendo la siguiente ecuación:

Δw_{ij} = a(d_{i}d_{j})

Donde Δw_{ij} es el incremento del peso sináptico, a es la constante de aprendizaje, d_{i} es la intensidad de la excitación de la neurona emisora (aferente) en el instante anterior t  –  1 y d_{j} la excitación de la neurona receptora en el instante siguiente t.

Aprendizaje del Perceptrón

El lógico estadounidense Frank J. Rosenblatt fue el primero en emplear los esquemas de Hebb dentro de su Perceptrón. Tal y como expusimos en otro artículo de esta misma serie, la activación repetida de una sinapsis entre una célula A y una célula R conducía al reforzamiento de la misma. Posteriores estudios y ensayos demostraron que este sistema permitía que, a lo largo del tiempo, el Perceptrón fuese capaz de reconocer con cada vez mayor eficiencia figuras geométricas simples como cuadrados, círculos o triángulos, sin necesidad de un entrenamiento previo.

Aprendizaje no supervisado hoy

El aprendizaje no supervisado sigue aún hoy en uso en algunos tipos de redes neuronales recurrentes, como las redes de Hopfield o las máquinas de Boltzmann. Con todo, ha sido relativamente desplazado a lo largo de las últimas décadas en favor de sistemas de entrenamientos de redes con supervisión.

Aprendizaje de redes neuronales Supervisado

Grosso modo, puede decirse que el aprendizaje supervisado, es aquél en que un operador externo señala a la red si ha acertado o no. En caso de error, las conexiones sinápticas que han contribuido al resultado son penalizadas, mientras que en caso de acierto sucede lo contrario. Como veremos en este artículo, la función de pérdida es la que parametriza este error y sus derivadas son utilizadas para actualizar los pesos sinápticos.

Función de pérdida

La función de pérdida, también llamada función de costo o de error, es esencial en el aprendizaje supervisado, puesto que es la que contrasta el resultado de la red con el objetivo que marca el entrenador (denominado verdad subyacente o ground truth). En otras palabras, parametriza cuánto se ha equivocado la red. La función de pérdida se calcula siempre a partir de la función de activación de las neuronas de la capa de salida y es general a todas ellas y al resto de neuronas de la red.

Tipos de funciones de pérdida

Entre las funciones de error más usadas dentro del aprendizaje de redes neuronales, podemos citar las siguientes:

L1

Es equivalente al valor absoluto de la diferencia entre el valor de activación de una neurona y el esperado por el entrenador. Algebraicamente se expresa así:

E = ∑ \left | v_{i} – p_{i} \right |

Donde v_{i} es la verdad subyacente y p_{i} el valor de activación efectivo de la neurona. La suma tiene lugar a través de todas las neuronas de la capa de salida, que es donde siempre se calcula la función de pérdida.

L2

Su valor equivale al cuadrado de la diferencia entre el valor de activación de la neurona y el valor de activación esperado por el entrenador:

E = ∑ (v_{i} – p_{i})^{2}

Donde p_{i} es el valor de activación de la neurona y v_{i} el valor esperado por el entrenador. Dado que la suma tiene lugar a través de todas las neuronas de salida, esta función es equivalente al cuadrado de la distancia euclídea entre dos puntos de un espacio n-dimensional (donde hay tantas dimensiones como neuronas de salida). La gráfica de la función tiene una forma parabólica, y por lo tanto, convexa.

Clasificación de objetos

La entropía cruzada es un tipo de función de error utilizada en el ámbito de las redes neuronales clasificadoras de objetos. Las neuronas de la capa de salida de estas redes tienen una función de activación softmax y miden la probabilidad sobre 1 de que una imagen pertenezca a una etiqueta determinada. Por ejemplo, en redes identificadoras de plantas, la imagen puede ser el detalle de una hoja y la etiqueta el nombre científico de una especie. A cada neurona de salida le corresponde una etiqueta. Para calcular la función de pérdida se forman dos distribuciones discretas. La primera de ellas es creada por la propia red y contiene todos los valores de activación de las neuronas de salida para una muestra determinada. Representaría la estimación probabilística de a qué especie concreta puede pertenecer la planta. La segunda distribución es la verdad subyacente, el objetivo a lograr por la red. Si el entrenador conoce con certeza la especie, todos los valores de la verdad subyacente son iguales a 0 salvo el correspondiente a la neurona/especie correcta, al que se asigna el valor 1.
Distribución softmax dada por una red neuronal y distribución dada por el entrenador (verdad subyacente)
Ejemplo de una red especializada en el reconocimiento de flores. Tiene cuatro neuronas de salida, que representan la posibilidad de que la imagen de entrada sea un crisantemo, un clavel, una amapola y una rosa. La distribución de la izquierda se genera por la red y sus probabilidades p son las que resultan de aplicar la función softmax a las neuronas de salida. La distribución de la derecha viene dada por el entrenador, que conoce la respuesta correcta (amapola), a la que asigna una probabilidad p=1.0.

Entropía cruzada

La entropía cruzada mide, a grandes rasgos, la diferencia de información en bits entre ambas distribuciones o, desde un punto de vista técnico, la cantidad de información necesaria para identificar a una evento de la primera distribución a partir del código usado para generar la segunda distribución. En el caso del aprendizaje profundo, cuanto más se asemejen la distribución generada por la red y la señalada por el entrenador, menor será la entropía cruzada de ambas. La entropía cruzada S debe ser, pues minimizada. Se calcula a partir de la siguiente fórmula

S = -∑ v_{i}log  p_{i}

Donde S representa la entropía, p_{i} representa el valor softmax de la neurona i, y v_{i} el valor verdad señalado por el entrenador. La suma se realiza a través de los valores de activación softmax de todas y cada una de las neuronas de salida.

Softmax y entropía cruzada

En el caso de que el entrenador conozca con absoluta certeza la etiqueta correcta (como en el caso del ejemplo anterior), los valores señalados por el entrenador v_{i} valen todos 0, excepto en el caso de la neurona correcta, que vale 1. Como consecuencia de ello, el sumatorio se convierte en 

S = -log  p_{z}

siendo p_{z} la probabilidad dada por la neurona de salida correcta.

El lector recordará, si ha leído el artículo sobre la teoría de la información de Shannon, que la sorpresa (también llamada, probabilidad logarítmica o entropía de Shannon) de un evento es igual al negativo (o el inverso) del logaritmo de su probabilidad (“probabilidad logarítmica”). Un suceso muy poco probable tiene por ello una entropía de Shannon bastante grande. La entropía cruzada entre dos distribuciones probabilísticas V y P se obtiene combinando las probabilidades de los sucesos en la primera distribución con la entropía de Shannon de los mismos en la segunda.

Entrenamiento de la red

Para que la red neuronal sea funcional, debe ser entrenada previamente por medio de datos. Si tomamos como ejemplo una red especializada en el reconocimiento de especies vegetales estos datos serían imágenes de hojas o flores, y sus respectivas etiquetas. El conjunto de datos de entrenamiento que el entrenador proporciona a la red se divide en lotes iguales de n elementos. La modificación del peso sináptico de cada conexión («iteración») tiene lugar al finalizar cada lote. Cuando la red acaba de terminar el análisis de todos los lotes se dice que ha concluido una época. Por lo general, el entrenamiento comprende centenares de épocas, en las que la red vuelve a pasar una y otra vez todos los datos. Al finalizar cada época, estos datos son barajados y se forman con ellos nuevos lotes con los que es alimentada una vez más la red.
comportamiento de la función de pérdida durante el aprendizaje de redes neuronales

Evolución de la función de pérdida a medida que la red procesa una época tras otra.

Fases de entrenamiento

Antes de comenzar el proceso de entrenamiento, los datos proporcionados por el entrenador deben dividirse en tres grupos: -Entrenamiento (training). La gran mayoría de los datos (por lo general, más del 80%) corresponde a esta categoría. Son aquellos utilizados para calcular los gradientes de la función de pérdida y la actualización de los pesos sinápticos. -Validación (validation). Cada vez que concluye el análisis de un lote y se actualizan los pesos sinápticos, se calcula el valor de la función de pérdida para comprobar cómo está evolucionando la eficiencia de la red. Ello se hace a partir de datos que la red no ha visto durante su entrenamiento. Son los datos de validación. El empleo de los mismos ayuda a detectar el sobreajuste (overfitting) de la red, que tiene lugar cuando ésta simplemente memoriza los datos que se le han presentado durante el entrenamiento, y como consecuencia de ello no es capaz de generalizar y clasificar correctamente datos que no le han sido presentados con anterioridad. -Comprobación (test). Una vez que ha concluido todo el proceso de entrenamiento, los datos de comprobación se utilizan para comprobar cuál es la eficiencia definitiva de la red y su grado de acierto.

Conclusión

En las secciones precedentes hemos expuesto cómo los valores absolutos de la función de pérdida se usan para medir la eficiencia de una red. En el próximo artículo, veremos que sus derivadas parciales también revisten de una gran importancia, dado que modulan la modificación de los pesos sinápticos. El método utilizado, conocido ya por los matemáticos del siglo XIX es el del descenso del gradiente.

Lecturas Recomendadas

 – Schmidhuber, J. (2014). Deep Learning in Neural Networks: An Overview.