Perceptrón multicapa vs red neuronal profunda


16

Esta es una cuestión de terminología. A veces veo que las personas se refieren a las redes neuronales profundas como "perceptrones de varias capas", ¿por qué es esto? Un perceptrón, me enseñaron, es un clasificador (o regresor) de una sola capa con una salida de umbral binario que usa una forma específica de entrenar los pesos (no el respaldo). Si la salida del perceptrón no coincide con la salida del objetivo, sumamos o restamos el vector de entrada a los pesos (dependiendo de si el perceptrón dio un falso positivo o un falso negativo). Es un algoritmo de aprendizaje automático bastante primitivo. El procedimiento de entrenamiento no parece generalizarse a un caso de múltiples capas (al menos no sin modificación). Una red neuronal profunda se entrena a través de backprop que utiliza la regla de la cadena para propagar los gradientes de la función de costo a través de todos los pesos de la red.

Entonces, la pregunta es. ¿Es un "perceptrón multicapa" lo mismo que una "red neuronal profunda"? Si es así, ¿por qué se utiliza esta terminología? Parece ser innecesariamente confuso. Además, suponiendo que la terminología es algo intercambiable, solo he visto la terminología "perceptrón multicapa" cuando me refiero a una red de alimentación compuesta por capas completamente conectadas (sin capas convolucionales o conexiones recurrentes). ¿Qué tan amplia es esta terminología? ¿Se usaría el término "perceptrón multicapa" al referirse, por ejemplo, a red de inicio? ¿Qué tal una red recurrente usando módulos LSTM usados ​​en PNL?


1
Red neuronal profunda = red neuronal con> 1 capa oculta, MLP entra en esta categoría.
Tim

es solo cambio de marca. Los MLP se promocionaron en los años 90 y fueron reemplazados por SVM, por lo que debemos llamarlo algo diferente en los años 2000. la sugerencia es que dnn tenga más capas, pero no una diferencia tan grande, por ejemplo, Le Net [MLP / CNN] (1998) 2 convolucional 2 totalmente conectado. alexnet = DNN (2012) 5 convolucionales y 3 completamente conectados.
seanv507

Los SVM se basan en el ascenso de gradiente, los ANN se basan en el descenso de gradiente, por lo que realmente no suplantaron a los ANN. Los SVM se vendieron en exceso y se usaron en exceso porque los estudiantes de posgrado no sabían nada sobre los ANN. Para ejecutar SVM, los estudiantes simplemente tomaron paquetes R y terminaron. Pero para las ANN, necesita un semestre completo para comprenderlas desde una perspectiva de métodos numéricos, no desde una perspectiva de lenguaje interpretativo (es decir, unir código).
JoleT

Respuestas:


21

Se puede considerar que el perceptrón multicapa (MLP) es un subconjunto de redes neuronales profundas (DNN), pero a menudo se usan indistintamente en la literatura.

La suposición de que los perceptrones se nombran en función de su regla de aprendizaje es incorrecta. La clásica "regla de actualización de perceptrón" es una de las formas en que se puede utilizar para entrenarla. El rechazo temprano de las redes neuronales se debió a esta misma razón, ya que la regla de actualización de perceptrón era propensa a desaparecer y explotar gradientes, lo que hacía imposible entrenar redes con más de una capa.

El uso de la propagación hacia atrás en las redes de entrenamiento condujo al uso de funciones alternativas de activación de aplastamiento como tanh y sigmoide .

Entonces, para responder las preguntas,

La pregunta es. ¿Es un "perceptrón multicapa" lo mismo que una "red neuronal profunda"?

MLP es un subconjunto de DNN. Si bien DNN puede tener bucles y MLP siempre se alimentan, es decir,

Un perceptrón multicapa (MLP) es un gráfico acíclico finito

¿Por qué se utiliza esta terminología?

Muchas de las terminologías utilizadas en la literatura científica tienen que ver con las tendencias de la época y se han puesto de moda.

¿Qué tan amplia es esta terminología? ¿Se usaría el término "perceptrón multicapa" al referirse, por ejemplo, a red de inicio? ¿Qué tal una red recurrente usando módulos LSTM usados ​​en PNL?

Entonces, sí, el inicio, la red convolucional, la resnet, etc. son todos MLP porque no hay un ciclo entre las conexiones. Incluso si hay un acceso directo que salta las capas, siempre que esté en dirección hacia adelante, se le puede llamar un perceptrón multicapa. Pero, los LSTM, o los RNN de Vanilla, etc. tienen conexiones cíclicas, por lo tanto, no pueden llamarse MLP sino que son un subconjunto de DNN.

Esta es mi comprensión de las cosas. Por favor, corríjame si estoy equivocado.

Enlaces de referencia:

/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf


1
solo por curiosidad: pensé que la regresión logística es una técnica de regresión porque estimas la probabilidad de pertenencia a la clase 1, en lugar de la pertenencia a la clase. Como tal, no me parece una técnica de clasificación (el investigador / analista tiene que decidir un límite de probabilidad para clasificar según la regresión logística).
IWS

@IWS tienes razón. Varios usuarios en este sitio han señalado reiteradamente que la regresión logística es un modelo para la estimación de probabilidad (condicional), no un clasificador. Ver por ejemplo aquí .
DeltaIV

1
Editó la respuesta a la corrección Por ejemplo, "regresión logística" es una técnica de clasificación y no debería denominarse "regresión", por así decirlo . El enlace compartido por @DeltaIV deja muy claro por qué es una regresión y no un clasificador.
m1cro1ce

8

Buena pregunta: tenga en cuenta que en el campo del aprendizaje profundo las cosas no siempre están tan bien definidas y claramente definidas como en el aprendizaje estadístico (también porque hay mucha exageración), así que no espere encontrar definiciones tan rigurosas como en matemáticas. De todos modos, el perceptrón multicapa es una arquitectura de red neuronal de alimentación directa, donde se apilan múltiples capas completamente conectadas (por lo tanto, no hay capas de convolución en absoluto), donde las funciones de activación de las unidades ocultas a menudo son sigmoideas o tándem. Los nodos de la capa de salida generalmente tienen funciones de activación softmax (para clasificación) o funciones de activación lineal (para regresión). Las arquitecturas típicas de MLP no son "profundas", es decir, no tenemos muchas capas ocultas. Por lo general, tiene, por ejemplo, 1 a 5 capas ocultas. Estas redes neuronales eran comunes en los '80,

Ahora, con Deep Red Neuronal nos referimos a una red que tiene muchas capas (19, 22, 152, ... incluso > 1200 , aunque es cierto que es muy extremo). Tenga en cuenta que

  • no hemos especificado la arquitectura de la red, por lo que podría ser de avance, recurrente, etc.
  • no hemos especificado la naturaleza de las conexiones, por lo que podríamos tener capas completamente conectadas, capas convolucionales, recurrencia, etc.
  • Es cierto que "muchas" capas no es una definición rigurosa.

32×32+32×10=134411584pesas Este es un NN minúsculo para los estándares actuales. Sin embargo, cuando lo entrena en un conjunto de datos adecuadamente grande, descubre que la tasa de convergencia se ha ralentizado enormemente. Esto no solo se debe a la mayor cantidad de pesos, sino al problema del gradiente de fuga : la propagación inversa calcula el gradiente de la función de pérdida multiplicando los errores en cada capa, y estos números pequeños se vuelven exponencialmente más pequeños a medida que se agregan más capas. Por lo tanto, los errores no se propagan (o se propagan muy lentamente) por su red, y parece que el error en el conjunto de entrenamiento deja de disminuir con las épocas de entrenamiento.

Y esta era una red pequeña: las redes neuronales convolucionales profundas llamadas AlexNet tenían 5 capas pero 60 millones de pesos, ¡y se considera pequeña según los estándares actuales! Cuando tiene tantos pesos, cualquier conjunto de datos es "pequeño", incluso ImageNet, un conjunto de datos de imágenes utilizado para la clasificación, tiene "solo" alrededor de 1 millón de imágenes, por lo que el riesgo de sobreajuste es mucho mayor que para una red poco profunda.

El aprendizaje profundo puede entenderse así como el conjunto de herramientas que se utilizan en la práctica para entrenar redes neuronales con una gran cantidad de capas y pesos, logrando un bajo error de generalización. Esta tarea plantea más desafíos que para redes más pequeñas. Definitivamente puede construir un Perceptrón multicapa profundo y entrenarlo, pero (aparte del hecho de que no es la arquitectura óptima para muchas tareas en las que se usa hoy el Aprendizaje profundo), probablemente usará herramientas que son diferentes de las que solían ser las redes. "superficial". Por ejemplo, puede preferir las unidades de activación ReLU a sigmoide o tanh, porque suavizan el problema del gradiente de fuga.


La respuesta anterior de m1cro1ce dice que un conv-net (como inicio) también se puede clasificar como MLP, mientras que usted especifica que un MLP no puede tener capas convolucionales (y parece que está implicando que la elección de las funciones de activación también afecta lo que se puede llamar MLP o no? ¿Existe acuerdo en la literatura (o dentro de la comunidad de ML) sobre qué significa exactamente MLP y qué no significa? Si alguien me dijo "Quiero que construyas un MLP para la tarea X", ¿qué estoy restringido a hacer?
enumaris

@enumaris, la ley no te limita a hacer nada. La última vez que lo revisé, todavía era legal construir una CNN y llamarla MLP. Por supuesto, rechazaría tal papel / póster / lo que sea, pero ese soy yo y no puedo hablar por toda la comunidad DL que no es exactamente famosa por su estricto uso de la terminología. De todos modos, mi definición: la red neuronal de alimentación directa con una capa completamente conectada y al menos alguna función de activación no lineal (de lo contrario, no importa cuántas capas, siempre es equivalente a una red lineal de una sola capa) es la misma que puede encontrar en ... .
DeltaIV

... Wikipedia . Tenga en cuenta la línea en la sección de capas "Dado que los MLP están completamente conectados [..]". Esto descarta las CNN. Puede encontrar la misma definición (avance, completamente conectada, al menos las capas ocultas tienen funciones de activación no lineales) en este libro . Con respecto a las funciones de activación, definitivamente no parece implicar nada. Acabo de decir que los MLP generalmente tienen funciones de activación sigmoide o tanh, pero eso no es obligatorio.
DeltaIV

Me gustaría marcar una de estas 2 respuestas como la respuesta aceptada, pero dado que dan respuestas contradictorias, me gustaría saber qué respuesta es la que se encuentra más comúnmente en la literatura o entre la comunidad de ML.
enumaris

@enumaris el título de su pregunta es "Perceptrón multicapa versus red neuronal profunda", y usted pregunta si a "multi-layer perceptron" the same thing as a "deep neural network": esta pregunta ha sido respondida en detalle, tanto en la mía como en la respuesta de m1cro1ce. Ahora te estás preguntando "¿son las CNN un subconjunto de MLP?" - los sitios de Stack Exchange tienen una política de una pregunta para publicación .
DeltaIV

0

Quiero agregar eso de acuerdo con lo que he leído de muchas publicaciones:

Hay muchas arquitecturas diferentes a través de DNN como: MLP (Perceptrón multicapa) y CNN (Redes neuronales convolucionales) .Tan diferentes tipos de DNN diseñados para resolver diferentes tipos de problemas.

MLP es un tipo clásico de NN que se utiliza para:

  • Conjuntos de datos tabulares (contienen datos en formato de columnas como en una tabla de base de datos).
  • Clasificación / Regresión, predicción pbs.

Los MLP son muy y se pueden usar en general para inclinar la asignación de entrada a salida.

Pero puede probar otro formato como datos de imagen como punto de comparación de la línea base para confirmar que otros modelos son más adecuados.

CNN diseñados para asignar datos de imagen a una variable de salida. es usado para :

  • Datos de imagen,
  • clasificación / predicción de regresión pbs,

Funciona bien con datos que tienen relaciones espaciales .

Se usa tradicionalmente para datos 2D, pero se puede usar para datos 1D, CNN logra el estado del arte en algunos pbs 1D.

Primero tiene que "definir claramente" lo que pretende resolver como problema (con qué tipo de datos trabajar, problema de clasificación / regresión ... etc.) para saber qué tipo de arquitectura utilizar.

Puede consultar los enlaces que me han sido tan útiles para comprender más sobre esos conceptos :).

Espero que este complemento sea útil: p.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.