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

Funciones de coste en perceptrones multicapa

Fernando P.    15/11/2017

Temas:  Fundamentos

En artículos anteriores hemos estudiado la estructura de los perceptrones multicapa desde el punto de vista de su uso como funciones para construir clasificadores que serán entrenados mediante aprendizaje supervisado.

El aprendizaje supervisado es una idea muy útil pero muy genérica, es necesario afinar ciertos detalles cuando se trata de aplicarlo en situaciones concretas. En el caso de los perceptrones multicapa, vamos a introducir el concepto de función de coste para facilitar su entrenamiento.

Los perceptrones son funciones
Un perceptrón  P  (simple o multicapa) no es más que una función real de variable real definida de la siguiente forma:

fθ : nm

Siendo  n  la dimensión del espacio de casos de entrada y  m  la dimensión del espacio de clases

El parámetro  θ  denota el conjunto de pesos en las conexiones de todas las neuronas de  P

Sean  x1xs  casos de entrada que se usarán para el entrenamiento

Sean  y1ys  las clases que corresponden a una correcta clasificación de  x1xs

En estas condiciones, nuestro objetivo es calcular  θ  de forma que  fθ(xi) = yi  i=1,…s

Es decir, el problema de entrenar nuestro perceptrón  P  se reduce a encontrar  θ  que consiga que el perceptrón (o la función  fθ  que este define) clasifique bien los casos del conjunto de entrenamiento.

Naturalmente, θ  es un conjunto de valores (los pesos en las conexiones entre neuronas) que puede llegar llegar a ser muy grande si el perceptrón tiene muchas capas y/o neuronas en cada capa.

El entrenamiento como problema de optimización
Convergencia del error en función de coste La forma más sencilla de plantear el problema de localizar los valores de  θ  que nos interesan para que el perceptrón clasifique bien consiste en plantear un problema de optimización.

Es decir, vamos a construir una nueva función que tenga como variable a  θ  y vamos a plantear el problema de localizar  θ  tal que nuestra función alcance un valor óptimo, que será un valor mínimo en nuestro caso.

La nueva función que vamos a definir es la función de coste o error asociada al entrenamiento del perceptrón y el objetivo del proceso de entrenamiento del perceptrón va a ser efectuar pequeños cambios sucesivos sobre la forma de  fθ, reduciendo el coste o error en cada iteración, de forma que termine por adaptarse bien a los datos de entrenamiento.

Función de coste asociada al entrenamiento del perceptrón

Sea  Θ  el espacio de todos los posibles valores de  θ

Si  P  tiene, en total,  r  pesos en conexiones entre neuronas, se verifica que  Θ ⊂ r

Dado  θ ∈ Θ,  sea  Eθ = ∑i |yi - fθ(xi)|2, siendo  |⋅|  la norma euclídea en  m

En estas condiciones,  Eθ  es la función que vamos a optimizar sobre  θ. Se trata del clásico criterio de mínimos cuadrados. La función  Eθ  es positiva si hay diferencias entre los valores que proporciona el perceptrón y los que debería proporcionar. Además, el valor de  Eθ  aumenta mucho si las diferencias son grandes (debido al cuadrado).

Decimos que  Eθ  es la función de coste o de error que vamos a usar para el entrenamiento del perceptrón. En una situación ideal, deberíamos poder obtener  θ  tal que  Eθ = 0

Forma de optimizar la función de coste
La idea de usar mínimos cuadrados para construir la función de coste también se introducía en la formulación genérica del algoritmo para aprendizaje supervisado, pero en este caso optimizábamos sobre cada caso de entrada individual, para luego iterar sobre todos los casos de entrada.

Esta idea de ir optimizando de forma parcial sobre cada caso de entrada no garantiza que podamos localizar el óptimo, pero es muy sencilla de implementar y sí que funciona en situaciones sencillas como puede ser el caso de perceptrones simples. El ejemplo de clasificador que hicimos en su día operaba de esta forma.

Matemáticamente, la forma correcta de optimizar la función de coste consiste en optimizar simultáneamente sobre todos los casos de entrada, pero es fácil ver que la forma de la función de coste es extraordinariamente compleja a nada que la red tenga cierto tamaño y el conjunto de entrenamiento sea relativamente grande.

Desde el punto de vista práctico, podemos optar por optimizar la función de coste parcialmente teniendo en cuenta que esa simplificación puede crearnos problemas en cuanto que no vamos a tener garantizado la obtención del óptimo.

Todo lo dicho aquí es aplicable a perceptrones simples, pero es el entrenamiento de los perceptrones multicapa el que exige de un planteamiento más elaborado, en forma de problema de optimización, debido a la complejidad que supone el introducir capas de neuronas adicionales respecto a un perceptrón simple.

Descenso de gradiente
Tal y como hemos planteado el entrenamiento del nuestro perceptrón en forma de problema de optimización resulta en una clase de problemas ampliamente estudiada en Investigación Operativa y para la que existen muchos algoritmos.

Buena parte de esos algoritmos funcionan usando el concepto de descenso de gradiente. Que consiste en ejecutar múltiples iteraciones, modificando en cada una de ellas el valor de la variable de búsqueda (θ en nuestro caso) en dirección opuesta al gradiente de la función de coste (coordenada a coordenada), con la idea de localizar un valor de la variable de búsqueda que resulte en gradiente nulo.

Hay algoritmos específicos que se usan para entrenar perceptrones, pero todos vienen a ser variaciones de la idea básica del descenso de gradiente sobre la función de coste, adaptada a la situación específica que supone tener un número tan elevado de variables (pesos en las conexiones entre neuronas) sobre las que optimizar.



Con las definiciones adecuadas, el problema de entrenar un perceptrón multicapa se convierte fácilmente en un problema clásico de optimización por mínimos cuadrados. La peculiaridad de este caso es la enorme complejidad de la función objetivo.



Para saber más:

Libro de Russell Reed y Robert J Marks dedicado a redes neuronales artificiales orientadas hacia adelante. El capítulo 5 trata el algoritmo Back-Propagation y al comienzo del mismo hay una discusión detallada sobre la idea de función de coste para perceptrones.



 

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