A menudo se dice que el diseño de una red neuronal usando el algoritmo back- propagation es más un arte que una ciencia en el sentido en que el ajuste de muchos de los factores involucrados en el diseño es el resultado de la experiencia personal. Si bien hay algo de verdad en esto, existen métodos que mejoran significativamente la perfor- mance del algoritmo back-propagation como se describe aquí.
a) Actualización secuencial versus batch: Como se mencionó anteriormente, el modo secuencial del algoritmo back-propagation (que involucra actualización patrón por pa- trón) es más rápido computacionalmente que el modo batch. Esto es especialmente cierto cuando el set de entrenamiento es grande y altamente redundante (los datos altamente redundantes imponen problemas computacionales para la estimación del Jacobiano, re- querido en la actualización batch).
b) Maximizar el contenido de información: Como regla general, cada ejemplo de en- trenamiento presentado al algoritmo back-propagation debería elegirse basándose en que su contenido de información sea lo más grande posible para la tarea dada [LeCun, 1993].
Dos modos de lograr este objetivo son:
• El uso de un ejemplo que resulte en el mayor error de entrenamiento.
• El uso de un ejemplo que es radicalmente diferente de aquellos previamente usa- dos.
Estas dos heurísticas están motivadas por el deseo de buscar en mayor profundidad el espacio de pesos.
En las tareas de clasificación de patrones usando el aprendizaje back-propagation secuen- cial, una técnica sencilla que se utiliza comúnmente es randomizar (barajar) el orden en el cual se presentan los ejemplos al Perceptrón multicapa de un epoch al siguiente. Ideal- mente, la randomización asegura que los ejemplos sucesivos en un epoch presentado a la red raramente pertenecen a la misma clase.
c) La función de activación: Un Perceptrón multicapa entrenado con el algoritmo back- propagation puede, en general, aprender más rápido (en términos del número de iteracio- nes de entrenamiento requerido) cuando la función de activación sigmoidal construída dentro del modelo de neurona es antisimétrica, comparado a cuando ésta es no-simétrica [Haikin, 1999]. Decimos que una función de activación ϕ(v) es antisimétrica (función impar de su argumento) si:
ϕ(-v) = -ϕ(v)
como se muestra en la figura 3.7a. Esta condición no se satisface en la función logística estándar mostrada en la figura 3.7b.
Un ejemplo de función de activación antisimétrica es la no-linealidad sigmoidal en la forma de una tangente hiperbólica, definida por:
ϕ(v) = a tanh (bv)
donde a y b son constantes. Valores adecuados para las constantes a y b son [Le Cun, 1989, 1993]:
a = 1,7159 b = 2/3
La tangente hiperbólica así definida tiene las siguientes propiedades:
• ϕ(1) = 1 y ϕ(-1) = -1
• En el origen la pendiente (ganancia efectiva) de la función de activación está próxima a la unidad, como se muestra en:
Abel Fiszelew Entrenamiento de la red neuronal 41
ϕ’(0) = ab
= 1,7159 x 2/3
= 1,1424
La segunda derivada de ϕ(v) alcanza su máximo valor en v = 1.
d) Valores objetivo: Es importante que los valores objetivo (las respuestas deseadas) sean elegidos dentro del rango de la función de activación sigmoidal. Más específicamen- te, la respuesta deseada dj para la neurona j en la capa de salida del Perceptrón multicapa
debería ser desplazada mediante un offset de valor ε, alejándola del valor limitante de la función de activación sigmoidal, dependiendo de si este valor limitante es positivo o ne- gativo. De lo contrario el algoritmo back-propagation tiende a llevar a infinito a los pa- rámetros libres de la red, y por lo tanto el proceso de aprendizaje se hace más lento al ser dirigido por neuronas ocultas en saturación. Para ser específicos, consideremos la función de activación antisimétrica de la figura 3.7a. Para el valor limitante +a, se setea:
dj = a - ε
y para el valor limitante –a, se setea:
dj = -a + ε
donde ε es una constante positiva apropiada. Para la elección de a = 1,7159 referida ante- riormente, se puede setear ε = 0,7159 en cuyo caso el valor objetivo (respuesta deseada)
dj puede elegirse convenientemente como ±1 como se indica en la figura 3.7a.
e) Normalizar las entradas: Cada variable de entrada debería ser preprocesada de ma- nera tal que su valor medio, promediado sobre el set de entrenamiento completo, esté cercano a cero [LeCun, 1993]. Para apreciar el significado práctico de esta regla, conside- remos el caso extremo donde las variables de entrada son consistentemente positivas. En esta situación, los pesos de una neurona en la primer capa oculta solo pueden incremen- tarse juntos o decrementarse juntos. En consecuencia, si el vector de pesos de esas neuro- nas tiene que cambiar de dirección, solo puede hacerlo al zigzaguear su camino a través de la superficie de error, proceso que es normalmente lento y debería ser evitado.
f) Inicialización: Una buena elección para los valores iniciales de los pesos y los um- brales puede ser de gran ayuda en el diseño exitoso de la red. La pregunta clave es: ¿Cuál es una buena elección?
Cuando a los pesos se les asignan valores iniciales grandes, es altamente probable que las neuronas de la red entren en saturación. Si esto ocurre, los gradientes locales en el algo- ritmo back-propagation asumen valores pequeños, lo cual a su vez causará que el proceso de aprendizaje sea más lento. Sin embargo, si a los pesos se les asignan valores iniciales chicos, el algoritmo back-propagation puede operar en un área muy aplanada alrededor del origen de la superficie de error; esto es particularmente cierto en el caso de las fun-
Abel Fiszelew Entrenamiento de la red neuronal 43
ciones de activación antisimétricas como la función tangente hiperbólica. Desafortuna- damente el origen es un punto de ensilladura, el cual se refiere a un punto estacionario donde la curvatura de la superficie de error a lo ancho de la ensilladura es negativa y la curvatura a lo largo de la ensilladura es positiva. Por estos motivos, debe evitarse el uso de valores tanto grandes como pequeños para la inicialización de los pesos. La elección apropiada para la inicialización cae en algún lugar en medio de estos dos casos extremos.
Describiremos entonces una buena estrategia para inicializar los pesos de forma tal que la desviación estándar del campo local inducido de una neurona caiga en el área de transi- ción entre la parte lineal y la parte saturada de su función de activación sigmoidal. Por ejemplo, para el caso de la función tangente hiperbólica con sus parámetros a y b especi- ficados previamente, conviene utilizar una distribución uniforme, de donde se elegirán los pesos, con una media de cero y una varianza σw igual a:
σw = m-1/2
donde m es el número de pesos de la neurona [LeCun, 1993].
g) Aprender desde pistas: Al aprender a partir de un set de entrenamiento se trabaja con una función f(⋅) de mapeo entrada-salida desconocida. En efecto, el proceso de aprendi- zaje explota la información contenida en los ejemplos acerca de la función f(⋅) para infe- rir una implementación aproximada de ella. El proceso de aprendizaje desde ejemplos puede ser generalizado para incluir aprendizaje desde pistas, que puede lograrse al permi- tir la inclusión de información a priori que podemos tener de la función f(⋅) en el proceso de aprendizaje [Abu-Mostafa, 1995]. Tal información puede incluir propiedades de la varianza, simetrías, o cualquier otro conocimiento acerca de la función f(⋅) que puede emplearse para acelerar la búsqueda de su implementación aproximada, y aún más impor- tante, mejorar la calidad de la estimación final. El uso de la ecuación de varianza en el punto anterior es un ejemplo de ello.
h) Tasa de aprendizaje: Todas las neuronas en un Perceptrón multicapa idealmente aprenderían a la misma velocidad. Las últimas capas usualmente tienen gradientes locales mayores que las capas en la parte frontal de la red. Por lo tanto, se debería asignarle a la tasa de aprendizaje η un valor más pequeño en las últimas capas que en las primeras. Las neuronas con muchas entradas deberían tener una tasa de aprendizaje menor que las neu- ronas con pocas entradas de manera de mantener un tiempo de aprendizaje similar para todas las neuronas de la red. En [LeCun, 1993] se sugiere que para una neurona dada, la tasa de aprendizaje debería ser inversamente proporcional a la raíz cuadrada de los pesos conectados a esa neurona.