Usuario:Deavidsedice/Perceptrón Multicapa

De Wikipedia, la enciclopedia libre

Este artículo es una traducción actualizada sobre el Perceptrón multicapa

Un perceptrón multicapa (MLP por sus siglas en inglés) es un modelo de red neuronal artificial de alimentación directa que transforma las entradas a las salidas apropiadas. Un MLP consiste en múltiples capas de nodos en un grafo dirigido, donde cada capa se conecta completamente a la siguiente. Excepto para los nodos de entrada, cada nodo es una neurona (o elemento de procesamiento) con una función de activación no lineal. El MLP utiliza una técnica de aprendizaje supervisado llamada propagación hacia atrás para entrenar a la red.[1][2]​ El MLP es una modificación del perceptrón estándar lineal y puede distinguir datos que no son linearmente separables. (Es decir, aquellos que no pueden ser separados con un hiperplano de N dimensiones).[3]

El perceptrón multicapa puede ser totalmente o localmente conectado. En el primer caso cada salida de una neurona de la capa "i" es entrada de todas las neuronas de la capa "i+1", mientras que en el segundo cada neurona de la capa "i" es entrada de una serie de neuronas (región) de la capa "i+1".

Red Neuronal Multicapa

Tipos[editar]

Las capas pueden clasificarse en tres tipos:

  • Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento.
  • Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y cuyas salidas pasan a neuronas de capas posteriores.
  • Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red.

La propagación hacia atrás (también conocido como retropropagación del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrón multicapa también es conocido como red de retropropagación (no confundir con la red de contrapropagación).

Características[editar]

  • Las funciones de transferencia de los elementos de procesado (neuronas) han de ser derivables.

Limitaciones[editar]

  • El Perceptrón Multicapa no extrapola bien, es decir, si la red se entrena mal o de manera insuficiente, las salidas pueden ser imprecisas.
  • La existencia de mínimos locales en la función de error dificulta considerablemente el entrenamiento, pues una vez alcanzado un mínimo el entrenamiento se detiene aunque no se haya alcanzado la tasa de convergencia fijada.

Cuando caemos en un mínimo local sin satisfacer el porcentaje de error permitido se puede considerar: cambiar la topología de la red (número de capas y número de neuronas), comenzar el entrenamiento con unos pesos iniciales diferentes, modificar los parámetros de aprendizaje, modificar el conjunto de entrenamiento o presentar los patrones en otro orden.


Teoría[editar]

Función de activación[editar]

Si un perceptrón multicapa tiene una función de activación lineal en todas las neuronas, es decir, una función lineal que mapea las entradas a la salida de de cada neurona, entonces es fácilmente demostrable con álgebra lineal que cualquier número de capas pueden ser reducidas al modelo estándar de dos capas entrada-salida (vea perceptrón).

Lo que hace un perceptrón multicapa diferente es que cada neurona usa una activación no lineal que ha sido desarrollada para modelar la frecuencia de los potenciales de actuación, o el activado de las neuronasbiológicas en el cerebro. Ésta función se modela de diferentes formas.

Las dos funciones de activación usadas en las aplicaciones actuales son las dos sigmoides y son descritas por

,

en la cual, la primera función es una tangente hiperbólica que va de -1 a 1, y la última, la función logística, es similar en forma pero va de 0 a 1. Aquí es la salida del nodo (neurona) nº y es la suma ponderada de las sinapsis de las entradas. Otras funciones de activación alternativas han sido propuestas, incluyendo la función de rectificador. Más funciones de activación especializadas incluyen la función de base radial que es usada en otros modelos de redes neuronales.

Capas[editar]

El perceptrón multicapa consiste de tres o más capas (una de entrada y una capa de salida con una o más capas ocultas) de nodos que se activan de forma no lineal y por tanto se considera una red neuronal profunda. Cada nodo en una capa conecta con cierto peso a cada nodo en la siguiente capa. Algunas personas no incluyen la capa de entrada cuando cuentan el número de capas y existe desacuerdo sobre si debe ser interpretado como el peso de i a j o al revés.

Aprendiendo a través de la retropropagación[editar]

El aprendizaje ocurre en el perceptrón cambiando los pesos de las conexiones después de cada elemento se procese, basado en la cantidad del error en la salida comparada con el resultado esperado. Esto es un ejemplo de aprendizaje supervisado y se lleva a cabo a través de la retropropagación, una generalización del algoritmo LMS (menor media cuadrática) en el perceptrón lineal.

Representamos el error en el nodo en el punto de datos como , donde es el valor objetivo y es el valor producido por el perceptrón. Cuando hacemos las correcciones a los pesos de los nodos basados en estas correciones las cuales minimizan el error en toda la salida, dado por

.

Usando un descenso de gradiente, encontramos que nuestro cambio en cada peso es

Donde es la salida de la neurona anterior y es el ritmo de aprendizaje, que se selecciona cuidadosamente para que los pesos converjan a una respuesta lo suficientemente rápido, sin producir oscilaciones. En la programación de aplicaciones este parámetro generalmente va de 0.2 a 0.8

La derivada a ser calculada depende del campo local inducido , el cual varía por sí mismo. Es fácil provar que para un nodo de salida esta derivada puede ser simplificada a

Donde es la derivada de la función de activación descrita más arriba, la cual no varía. El analisis es más complicada para el cambio en pesos en un nodo oculto, pero puede mostrarse que la derivada relevante es

.

Esto depende en el cambio en los pesos de los nodos , que representan la capa de salida. Entonces para cambiar los pesos de la capa oculta, debemos primero cambiar los pesos de la capa de salida de froma acorde a la derivada de la función de activación, y entonces este algoritmo representa una retropropagación de la función de activación. [4]

Método de pares fronterizos[editar]

Es un método original para el aprendizaje del MLP. [5]

Los pesos de la conexión son computados a la vez sin iteración. Además, prácticamente hay una mínima configuración. Sólo los patrones representativos para el aprendizaje son usados para esto. Este método nunca se extravía en un mínimo local.

Terminología[editar]

El término "perceptrón multicapa" a menudo causa confusión. Se discute que el modelo no es un único perceptrón que tenga múltiples capas. En su lugar, contiene varios perceptrones que se organizan en capas, lo que lleva a algunos a creer que un término que encajaría mejor sería "red multicapa de perceptrones". Más aún, estos "perceptrones" no son realmente perceptrones en su sentido más estricto, ya que los perceptrones son un caso especial de las neuronas artificales que usan una función de activación de umbral, y las neuronas artificiales en un perceptrón multicapa pueden tomar cualquier función de activación. Consecuentemente, donde un perceptrón de verdad realiza clasificación binaria, una neurona en un perceptrón multicapa podría tanto realizar clasificación como regresión, dependiendo de su función de activación.

Los dos puntos comentados arriba pueden ser reconciliados con el nombre "perceptrón multicapa" si "perceptrón" se interpreta como clasificador binario, independientemente de la implementación específica de un perceptrón clásico. En este caso, toda la red puede ser considerada como un clasificador binario con múltiples capas. Más allá, el término "perceptrón multicapa" ahora no especifica la naturaleza de las capas; las capas podrían ser compuestas de nueronas artificiales estándar, y no perceptrones específicamente. Esta interpretación del término "perceptrón multicapa" evita el desgastar la definición de "perceptrón" para significar una neurona artificial en general.

Historia[editar]

En 1969, Minsky y Papert, demuestran que el perceptrón simple y ADALINE no puede resolver problemas no lineales (por ejemplo, XOR). La combinación de varios perceptrones simples podría resolver ciertos problemas no lineales pero no existía un mecanismo automático para adaptar los pesos de la capa oculta. Rumelhart y otros autores, en 1986, presentan la "Regla Delta Generalizada" para adaptar los pesos propagando los errores hacia atrás, es decir, propagar los errores hacia las capas ocultas inferiores. De esta forma se consigue trabajar con múltiples capas y con funciones de activación no lineales. Se demuestra que el perceptrón multicapa es un aproximador universal. Un perceptrón multicapa puede aproximar relaciones no lineales entre los datos de entrada y salida. Esta red se ha convertido en una de las arquitecturas más utilizadas en el momento.[6]

Aplicaciones[editar]

El perceptrón multicapa se utiliza para resolver problemas de asociación de patrones, segmentación de imágenes, compresión de datos, etc.

Son además el algoritmo estándar para cualquier proceso de aprendizaje supervisado en reconocimiento de patrones y es el sujeto de la investigación actual en la neurociencia computacional y proceso distribuido en paralelo. Son útiles en la investigación en términos de su habilidad para resolver problemas estocásticamente, lo cual a menduo permite aproximar soluciones para problemas extremadamente complejos.

Los MLP fueron una solución de ML popular en los 80, encontrando aplicaciones en divesos campos como el reconocimiento de voz, reconocimiento de imágenes y el software de traducción automática, [7]

Pero desde los 90 han tenido mucha competencia de las Máquinas de vectores de soporte que son mucho más sencillas (y relacionadas con éstas[8]​). Más recientemente ha habido algo de interés renovado en las redes de retropropagación debido al éxito del aprendizaje profundo.

Compresión de datos[editar]

Considerese un MLP de 3 capas, una de entrada, una oculta y la de salida. La capa de entrada está formada por N neuronas, la capa oculta por M (M < N) neuronas y la capa de salida posee N neuronas al igual que la capa de entrada. Se entrena dicho MLP para que cuando se le dé como entrada un vector de datos (x1, x2,..., xN) devuelva ese mismo vector con M datos como salida, con ello estamos enseñando al MLP a transformar un vector de N componentes en uno de M componentes (recordemos que M < N) y a recuperar el vector original a partir del vector "comprimido".

Una vez que el MLP esté entrenado se procede de la siguiente forma:

  • Compresión: Para comprimir los datos utilizamos un MLP de dos capas, la de entrada con N neuronas y la de salida con M, los pesos de estas dos capas son los de la capa de entrada y oculta respectivamente, del MLP que entrenamos anteriormente.
  • Descompresión: Para descomprimir los datos utilizamos un MLP de dos capas, la de entrada con M neuronas y la de salida con N, los pesos de estas dos capas son los de la capa oculta y la de salida respectivamente, del MLP que entrenamos anteriormente.

El MLP no conseguirá (al menos normalmente) un error nulo durante el entrenamiento, por lo que se trata de un sistema de compresión con pérdidas. Obviamente cuanto mayor queramos que sea el factor de compresión, más error se cometerá.


Referencias[editar]

  1. Rosenblatt, Frank. x. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1961
  2. Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams. “Learning Internal Representations by Error Propagation”. David E. Rumelhart, James L. McClelland, and the PDP research group. (editors), Parallel distributed processing: Explorations in the microstructure of cognition, Volume 1: Foundations. MIT Press, 1986.
  3. Cybenko, G. 1989. Approximation by superpositions of a sigmoidal function Mathematics of Control, Signals, and Systems, 2(4), 303–314.
  4. Haykin, Simon (1998). Neural Networks: A Comprehensive Foundation (2 edición). Prentice Hall. ISBN 0-13-273350-1. 
  5. Bouchachia, Abdelhamid (2011). Adaptiv and Intelligent Systems. Klagenfurt: Springer. pp. 297-307. ISBN 978-3-642-23856-7. 
  6. Perceptrón multicapa, Redes de Neuronas Artificiales, UC3M, RAI 2012.
  7. Neural networks. II. What are they and why is everybody so interested in them now?; Wasserman, P.D.; Schwartz, T.; Page(s): 10-15; IEEE Expert, 1988, Volume 3, Issue 1
  8. R. Collobert and S. Bengio (2004). Links between Perceptrons, MLPs and SVMs. Proc. Int'l Conf. on Machine Learning (ICML).

Links externos[editar]