El perceptrón multicapa es una red neuronal artificial (RNA) formada por múltiples capas, esto le permite resolver problemas que no son linealmente separables, lo cual es la principal limitación del perceptron (también llamado perceptrón simple). 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".
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.
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).
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).
Estructura
La estructura del perceptrón multicapa Figura (3), posee muchas neuronas de entrada y salida:
Características
· Las funciones de transferencia de los elementos de procesado (neuronas) han de ser derivables.
Limitaciones
· 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 iníciales diferentes, modificar los parámetros de aprendizaje, modificar el conjunto de entrenamiento o presentar los patrones en otro orden.
Aplicaciones
El perceptrón multicapa (de aquí en adelante MLP, MultiLayer Perceptron) se utiliza para resolver problemas de asociación de patrones, segmentación de imágenes, compresión de datos, etc.
Compresión de datos
Considérese 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á.
EL PERCEPTRON MULTICAPA (MLP)
Primero cabe mencionar, como es obvio, que para tener varias entradas y salidas, se pueden conectar Perceptrones simples como vemos en la figura 1.
Pero con esto no se amplía el tipo de funciones que puede aprender la red. Así es como nace la idea (proveniente también de copiar los sistemas biológicos), de hacer redes que tengan más de una capa de neuronas, ver figura 2.
A partir de ahora, a cada neurona de la red, algunas veces la llamaremos nodo.
Así, por ejemplo, a una red multicapa con dos neuronas de entrada, dos ocultas y dos de salida, la podemos graficar como sigue (figura 3).
El entrenamiento de esta red neuronal consistirá, al igual que en el perceptrón simple, en presentar las entradas, junto con las salidas deseadas para cada una de ellas, y modificar los pesos de acuerdo al error (diferencia entre la salida deseada y la obtenida).
La principal dificultad en el entrenamiento de redes de varias capas es encontrar los errores asociados con las capas ocultas; es decir, en las capas que no son la de salida (sólo se tiene salida deseada en las capas de salida).
Esto es debido a que los errores son necesarios para el aprendizaje, para saber cómo modificar los pesos de las neuronas en las capas ocultas. Así se da origen a algoritmos muy ingeniosos, el precursor y más conocido por su simplicidad, es el que recibió el nombre de retropropagación del error (backpropagation).
Así el funcionamiento de un PMC es básicamente: se aplica una entrada cuya salida se conoce, luego se calcula primero la salida de las neuronas de entrada, estas salidas son las entradas de las neuronas de la capa oculta, con estas entradas se calcula la salida de las neuronas ocultas, y con éstas como entrada para las neuronas de salida, se calculan las salidas finales.
Esta es la fase hacia delante, por así decirlo, en la red.
Luego se obtiene el error con respecto a la señal deseada y finalmente este error se retro propaga (de atrás hacia delante) modificando los pesos.
No trataremos la parte matemática de cómo se hace esto, pero mencionaremos que las neuronas de la capa oculta usan como regla de propagación, la suma ponderada de las entradas con los pesos sinápticos wij y sobre esa suma ponderada se aplica una función de transferencia de tipo sigmoide (figura 4).
(recordemos que en el PS, era simplemente un umbral), que es acotada en respuesta. Similarmente en la retropropagación, el error en los nodos de las capas ocultas es proporcional a la sumatoria de los gradientes de los nodos de la capa siguiente pesados por los pesos de conexión.
La aparición de una función de activación del tipo sigmoide es debido a restricciones analíticas en los algoritmos de entrenamiento. Una función de activación de este tipo es:
Donde x es la sumatoria de las entradas al nodo pesadas por los pesos de conexión y y(p) la salida del nodo correspondiente (o sea si recordamos del artículo anterior):
Observe la figura 4.
De todo esto, luego de algún trabajo matemático, surge el algoritmo que se usa en el entrenamiento de la red.








No hay comentarios.:
Publicar un comentario