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?
fuente
Respuestas:
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,
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
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.
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
fuente
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
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.
fuente
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 .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:
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 :
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.
fuente