¿En qué se diferencia el aprendizaje profundo del perceptrón multicapa?

Voy a tratar de mantener esta respuesta simple, espero no dejar de lado demasiados detalles al hacerlo. Para mí, la respuesta tiene que ver con el proceso de inicialización y capacitación, y este fue quizás el primer gran avance en el aprendizaje profundo. Como otros han dicho, MLP no es realmente diferente al aprendizaje profundo, pero podría decirse que solo es un tipo de aprendizaje profundo.

La retropropagación (que ha existido durante décadas) teóricamente te permite entrenar una red con muchas capas. Pero antes del advenimiento del aprendizaje profundo, los investigadores no tuvieron un éxito generalizado al entrenar redes neuronales con más de 2 capas.

Esto se debió principalmente a la desaparición y / o explosión de gradientes. Antes del aprendizaje profundo, las MLP generalmente se inicializaban con números aleatorios. Al igual que hoy, los MLP utilizaron el gradiente de los parámetros de la red wrt al error de la red para ajustar los parámetros a mejores valores en cada iteración de entrenamiento. En la propagación hacia atrás, evaluar este gradiente implica la regla de la cadena y debe multiplicar los parámetros y gradientes de cada capa en todas las capas. Esto es mucha multiplicación, especialmente para redes con más de 2 capas. Si la mayoría de los pesos en muchas capas son inferiores a 1 y se multiplican muchas veces, entonces el gradiente simplemente desaparece en una máquina cero y el entrenamiento se detiene. Si la mayoría de los parámetros en muchas capas son mayores que 1 y se multiplican muchas veces, finalmente el gradiente explota en un gran número y el proceso de capacitación se vuelve intratable.

El aprendizaje profundo propuso una nueva estrategia de inicialización: use una serie de redes de una sola capa, que no sufren de gradientes de desaparición / explosión, para encontrar los parámetros iniciales para un MLP profundo. Las imágenes a continuación intentan ilustrar este proceso:

1.) Se utiliza una red de autoencoder de una sola capa para encontrar parámetros iniciales para la primera capa de un MLP profundo.

2.) Se utiliza una red de codificador automático de una sola capa para encontrar los parámetros iniciales para la segunda capa de un MLP profundo.

3.) Se utiliza una red de codificador automático de una sola capa para encontrar los parámetros iniciales para la tercera capa de un MLP profundo.

4.) Se utiliza un clasificador softmax (regresión logística) para encontrar los parámetros iniciales para la capa de salida de un MLP profundo.

Ahora que todas las capas se han inicializado a través de este proceso de preentrenamiento a valores más adecuados para los datos, generalmente puede entrenar el MLP profundo utilizando técnicas de descenso de gradiente sin el problema de desvanecimiento / explosión de gradientes.

Por supuesto, el campo del aprendizaje profundo ha avanzado desde este avance inicial, y muchos investigadores ahora argumentan que la capacitación previa no es necesaria. Pero incluso sin pre-entrenamiento, el entrenamiento confiable de un MLP profundo requiere cierta sofisticación adicional, ya sea en el proceso de inicialización o de entrenamiento más allá de los enfoques de entrenamiento MLP más antiguos de inicialización aleatoria seguida de un descenso de gradiente estándar.

ACTUALIZACIÓN: Tenga en cuenta que el aprendizaje profundo ha evolucionado bastante desde que originalmente respondí esta pregunta hace unos años. Los métodos descritos aquí son representativos de algunos de los primeros trabajos importantes en el aprendizaje profundo, pero no son realmente representativos del campo actual.

Una excelente referencia más reciente es: http://www.nature.com/nature/jou…

Como mencionó Anupam, un perceptrón multicapa es Una variante de aprendizaje profundo. Es importante reconocer que el término perceptrón es una designación que describe específicamente una red de una capa de neuronas de umbral binario.

Famoso, los perceptrones exhiben la incapacidad de aprender las funciones XOR, un resultado vergonzoso que desacreditó al perceptrón, contribuyó a la muerte del conexionismo y ayudó a precipitar el primer “invierno de IA”.

Cuando Marvin Minsky y Seymour Papert publicaron esta observación condenatoria, muchos malinterpretaron la discapacidad como si se extendiera a perceptrones con 2 o más capas, este no fue el caso en absoluto. De hecho, el término perceptrón multicapa es un nombre poco apropiado ( 1) si considera la definición formal proporcionada en el primer párrafo.

Los perceptrones multicapa son simplemente redes neuronales de umbral binario con más de 2 capas. Esto encaja bien dentro de la definición de un algoritmo moderno de Deep Learning.

Hoy en día, el aprendizaje profundo se ha convertido en sinónimo de lo que se conoce desde hace muchos años como redes neuronales, incluidas aplicaciones como Word2Vec, que en realidad es solo una red de 3 capas, lo mínimo para hacer algo más allá de lo que se puede calcular con la arquitectura original de Perceptron y no realmente “profundo” en absoluto. Además de Word2Vec, la mayoría de las redes que han recibido mucha atención recientemente son de hecho profundas, ya que tienen muchas más capas de las que hubieran sido prácticas hasta los últimos años. En su mayor parte, estas son sus redes neuronales convolucionales centrales (CNN), una arquitectura basada en el Neocognitron, descrita por Fukushima en 1980. Una característica clave de las CNN es que las unidades comparten pesos, lo que reduce en gran medida la cantidad de cómputo requerido para el entrenamiento .

Además de la gran cantidad de cómputo requerido para entrenar una red grande, como menciona Patrick Hall, las redes con muchas capas que utilizan funciones de activación sigmoidea sufren el problema de gradiente de desaparición / explosión. Además de las estrategias que menciona, las unidades lineales rectificadas (ReLU) no presentan el problema, aunque se requieren otras estrategias para compensar el hecho de que la activación de ReLU no es completamente diferenciable debido a la singularidad en cero, por lo que la retropropagación estándar El algoritmo, que es básicamente una aplicación de la regla de la cadena de cálculo, no se aplica de la manera obvia (ver aquí para una discusión).

Las redes actuales también tienden a tener arquitecturas heterogéneas, combinando aspectos de redes de avance, convolucionales y recurrentes, por lo que en realidad son complejas en más formas que solo el número de capas.

El aprendizaje profundo es una especie de perceptrón multicapa. El perceptrón multicapa es sinónimo de red neuronal, que tiene múltiples unidades en cada capa unidas como red. Creo que el aprendizaje profundo es una forma de perceptrón multicapa con más capas, red más profunda.

El perceptrón multicapa se introdujo por primera vez en el 50, para emular computacionalmente el cerebro humano. Hizo la primera tendencia de la IA, aunque no duró mucho, ya que solo podía aplicarse a un problema linealmente separable esa vez. Al pasar por la segunda tendencia de IA en los años 80, con la introducción de la propagación hacia atrás, el aprendizaje profundo se hizo famoso en ImageNet en 2012 como una red neuronal convolucional profunda. Mirando a través de la historia, se puede decir que el perceptrón multicapa es el origen del aprendizaje profundo.

Creo que la diferencia se reduce a la introducción de memoria en redes profundas de una manera que funciona. Un perceptrón multicapa es, por naturaleza, una red acíclica dirigida hacia adelante. La introducción de más capas entre la entrada y la salida causa inestabilidad numérica en máquinas de precisión finita debido a gradientes de desvanecimiento (explosión). Hemos resuelto el problema del gradiente de desaparición (explosión) al entrenar cada capa de forma aislada para motivar los pesos iniciales de la red. Dado esto, ahora podemos agregar más capas ocultas y construir una “memoria” en cada nodo (nn recurrente) de manera manejable. El peso de cada nodo puede depender del último nodo usando el estado oculto del último nodo y una matriz de transición de estado de Markovian. También podemos agregar ciclos a nuestra red para inculcar memoria a más largo plazo que se extienda condicionalmente más allá del último nodo (LSTM NN). Este último nos permite construir las redes profundas más interesantes y complejas que aprenden en cada nodo la memoria necesaria para minimizar su contribución al error.

Mi interpretación de DL es la composición de funciones en forma de gráfico acíclico, con la función de activación arbitrariamente diferenciable R-> R y para la cual se alimenta la combinación de entrada de peso. Abrí wiki sobre la percepción multicapa. Parece que la percepción multicapa es lo mismo.

La última tendencia es que en DL las personas usan la idea del gráfico de computación e incluyen varias cosas: un tipo especial de disminución de resolución, algo que imita la convolución, etc.

ps Pero la verdad es que incluso la composición es lo suficientemente sofisticada: las herramientas matemáticas avanzadas como la Transformada de Fourier y el Análisis convexo no permiten comprender esta operación en general.

Mi consejo no es pensar en los nombres: los nombres no dan conocimiento, además, hay una gran libertad en la optimización no convexa.

Un perceptrón multicapa es una forma que puede adoptar el aprendizaje profundo. El aprendizaje profundo incluye una variedad de algoritmos, y si un algoritmo tiene más de una capa oculta, entonces es profundo.

Bengio y col. mencionan en su próximo libro que MLP es una instancia de Deep Learning.

Ver Figura 1.2 aquí: http://www.iro.umontreal.ca/~ben