Revolución IA

La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica

Inicio Sobre Revolucionia Temas Para saber más Contacto

Back-Propagation: inicialización de pesos

Fernando P.    31/01/2018

Temas:  Fundamentos

Cuando hablábamos del rendimiento del algoritmo Back-Propagation, poníamos en contexto este algoritmo desde el punto de la optimización clásica y veíamos que el problema de entrenar un perceptrón multicapa podía ser considerado como el problema de minimizar la función de error asociada a la red respecto de los pesos de la red, que actúan como variables en el contexto de la optimización clásica.

El algoritmo Back-Propagation es una implementación del concepto de descenso del gradiente, como muchos otros algoritmos en optimización clásica. Esta forma de funcionar exige la elección inicial de unos valores para las variables de la función de optimizar (los pesos de la red en este caso), valores que se harán evolucionar en cada iteración del algoritmo hasta localizar un mínimo local de la función objetivo (la función de error en nuestro caso).

Elegir los valores iniciales de los pesos de la red puede ser muy sencillo, pero una elección acertada puede significar que el algoritmo converja mucho más deprisa que con una elección poco acertada. Es una cuestión que ya se mencionó cuando hablábamos de las posibles estrategias para mejorar el algoritmo y que ahora vamos a desarrollar.

Caminos hacia la solución
Ya hemos mencionado que la estrategia fundamental de los algoritmos que usan el concepto de descenso del gradiente consiste en empezar con unos valores más o menos arbitrarios de las variables en la función a optimizar, calcular el gradiente de la función para localizar una dirección de descenso de la misma y moverse una cierta distancia sobre esa dirección para llegar a unos valores de las variables que proporcionan un valor menor de la función objetivo.

De esta forma, iteración a iteración, el valor de la función objetivo se reduce hasta llegar a un mínimo local de la misma, que consideraremos solución del problema.

Si nuestra función objetivo tiene la forma  f : ℜn→ℜ  podemos considerar que un algoritmo para buscar un mínimo de  f  usando descenso del gradiente va a empezar a partir de cierto punto  x0 ∈ ℜn  y que en cada iteración se irán calculando sucesivos puntos  x1, x2, x3 … ∈ ℜn  hasta llegar a un mínimo local  xz  de la función  f.

Es decir, el algoritmo usará el descenso del gradiente para trazar una especie de camino desde  x0  hasta  xz.

Naturalmente, cuanto más cerca (en la distancia euclídea de  n) esté  x0  de  xz  menos trabajo tendrá que realizar el algoritmo. Así que la elección de  x0  es importante desde el punto de vista del rendimiento del algoritmo, buenas elecciones harán que cualquier algoritmo mejore mucho en número de iteraciones a realizar para llegar a un mínimo local.

Caminos hacia la solución y Back-Propagation Back-propagation: inicialización de pesos
Lo visto en el punto anterior es igualmente aplicable a nuestro problema de entrenar un perceptrón multicapa usando el algoritmo Back-Propagation.

En este caso, tenemos una red con  n  pesos y  f  es la función de error asociada a la red.

El algoritmo Back-Propagation funciona partiendo de una colección de pesos  w0 ∈ ℜn  que será mejorada progresivamente en cada iteración hasta consegir un conjunto de pesos  wz  que hagan mínima la función de error de la red.

Es decir, el algoritmo Back-Propagation va a construir un camino desde  w0  hasta  wz  lo más directo posible. Si hay mucha distancia, el algoritmo necesitará muchas iteraciones dado que, en cada iteración, el algoritmo se moverá en una distancia media proporcional a la velocidad de aprendizaje establecida para la Regla Delta Generalizada.

En redes grandes y/o con conjuntos de entrenamiento grandes, cada iteración del algoritmo Back-Propagation implica muchas operaciones, así que reducir el número de iteraciones es una buena forma de mejorar su rendimiento y nada mejor que poder empezar desde unos pesos iniciales  w0  que estén cerca de un buen mínimo de la función de error.

Estrategias para la inicialización de pesos
Siendo evidente que la elección inicial de pesos para aplicar el algoritmo Back-Propagation puede resultar en grandes beneficios respecto al rendimiento del mismo, conviene tratar de ver cómo podemos elegir los pesos de la forma más acertada posible.

Existen tres tipos de estrategias a la hora de elegir una configuración inicial de pesos con la que comenzar a aplicar el algoritmo Back-Propagation

Cada tipo de estrategia tiene varios métodos distintos para elegir los pesos iniciales. Aquí, de momento, sólo vamos a introducir las ideas básicas sobre estos tipos de estrategias, que se irán detallando en artículos sucesivos.

Elección aleatoria
En la descripción original del algoritmo Back-Propagation ya se propuso una inicialización aleatoria de los valores de los pesos.

Pero hay muchas formas de elegir estos valores de forma aleatoria. Podemos usar una distribución uniforme sobre determinado intervalo o alguna otra distribución de probabilidad, como puede ser una distribución Normal.

Es importante ver que, por ejemplo, valores muy grandes de los pesos tenderán a proporcionar salidas igualmente grandes en las neuronas afectadas que, al aplicarse a la función de activación tenderán a saturar la misma y podemos encontrarnos con problemas del tipo de parálisis de red comentados cuando hablábamos de posibles estrategias para mejorar el algoritmo.

Por otro lado, valores de los pesos próximos a cero harán que el algoritmo progrese despacio porque el origen suele ser un punto de silla (gradiente cero) para la función de error asociada a la red.

En un próximo artículo veremos cómo elegir pesos iniciales aleatoriamente de forma que podamos evitar problemas como los mencionados, que complican la evolución del algoritmo.

Elección usando soluciones parciales
A veces merece la pena usar el algoritmo Back-Propagation u otro algoritmo de optimización sobre un conjunto de entrenamiento limitado y con velocidades de entrenamiento altas para tratar de obtener rápidamente una solución aproximada al valor de los pesos. Una solución parcial que esté bien encaminada hacia un buen mínimo local de la verdadera función de error asociada a la red.

Con esta solución parcial podemos usar el algoritmo Back-Propagation con el conjunto de entrenamiento al completo para mejorar esa solución parcial y llegar rápidamente a una buena solución real, que nos porporcione una red bien entrenada.

En otro artículo próximo veremos cómo obtener fácilmente soluciones parciales que sean un buen comienzo para el algoritmo Back-Propagation real a aplicar a nuestro problema.

Elección usando información adicional
También es posible introducir modificaciones en la red que puedan codificar información extra que tengamos sobre la estructura del problema. Por ejemplo, igual queremos que algunas neuronas hagan un trabajo muy específico y podemos introducir restricciones sobre el valor de los pesos hacia las conexiones de estas neuronas.

Codificar información adicional no es nada fácil, pero puede ser factible en algunas situaciones y puede ayudarnos a refinar la elección de los pesos, en combinación con las otras dos estrategias.

Y en el último artículo que dedicaremos a este tema veremos alguna idea sobre cómo se puede implementar la cuestión de incorporar información adicional y, de esta forma, poder deducir restricciones sobre los pesos.



La tarea inicial de elegir un conjunto de pesos para la red sobre el que poner a funcionar el algoritmo Back-Propagation puede llegar a tener mucha influencia sobre el rendimiento de este y existen métodos para hacer una buena elección.



Para saber más:

Libro de Russell Reed y Robert J Marks dedicado a redes neuronales artificiales orientadas hacia adelante. El capítulo 5 introduce el algoritmo Back-Propagation y el capítulo 7 discute diversas técnicas para inicialización de los pesos de la red.



 

Inicio Powered by NetBSD
 
HTML5
 
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales.

No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo.

Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos.

2017,2018 Revolucionia.net
Sobre Revolucionia
Temas
Para saber más
Contacto