Las capas pueden clasificarse en tres tipos: 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).
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.
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.
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.
Cuando hacemos las correcciones a los pesos de los nodos basados en estas correcciones 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 fácil probar que para un nodo de salida esta derivada puede ser simplificada a Donde
El análisis 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
Una vez que el MLP esté entrenado se procede de la siguiente forma: 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á.
Es posible entrenar un perceptrón multicapa para que reconozca un número presente en una imagen de entrada gracias a la librería sklearn en Python.
Para ello se puede utilizar la clase MLPClassifier y el dataset MNIST.