¿Cuál es la diferencia entre una red neuronal y una red neuronal profunda, y por qué las profundas funcionan mejor?
On diciembre 22, 2020 by adminNo he visto la pregunta expresada con precisión en estos términos, y es por eso que hago una nueva pregunta.
Lo que me interesa saber no es la definición de una red neuronal, sino comprender la diferencia real con una red neuronal profunda.
Para más contexto: sé qué es una red neuronal y cómo funciona la retropropagación. Sé que un DNN debe tener múltiples capas ocultas. Sin embargo, hace 10 años en clase aprendí que tener varias capas o una capa (no contando las capas de entrada y salida) era equivalente en términos de las funciones que una red neuronal es capaz de representar (ver Cybenko «s teorema de aproximación universal ), y que teniendo más capas lo hicieron más complejo de analizar sin ganar en rendimiento. Obviamente, ese ya no es el caso.
Supongo, quizás erróneamente, que las diferencias están en términos de algoritmo de entrenamiento y propiedades en lugar de estructura, y por lo tanto Realmente agradecería si la respuesta pudiera subrayar las razones que hicieron posible el cambio a DNN (por ejemplo, ¿prueba matemática o jugar aleatoriamente con redes?) y deseable (por ejemplo, ¿velocidad de convergencia?)
Comentarios
- FYI: ¿Qué tan cierta es esta diapositiva sobre el aprendizaje profundo?
- Si la función que desea aproximar es una función de composición (común en el procesamiento de imágenes y muchas dominios naturales debido a la ley de la física). Se puede demostrar que las redes profundas pueden explotar esta composicionalidad y lograr el mismo nivel de error de aproximación con un número exponencialmente menor de neuronas (en comparación con una red de capa única oculta). Ref: Poggio, Tomaso, et al. » Por qué y cuándo pueden las redes profundas, pero no superficiales, evitar la maldición de la dimensionalidad: una revisión. » Revista Internacional de Automatización y Computación (2017)
- Le recomendamos que eche un vistazo a este artículo
- Consulte 6.4 de arxiv.org/pdf/2004.06093.pdf
Respuesta
Comencemos con una trivialidad: la red neuronal profunda es simplemente una red de retroalimentación con muchas capas ocultas.
Esto es más o menos todo lo que hay que decir sobre la definición. Las redes neuronales pueden ser recurrentes o feedforward; las feedforward no tienen bucles en su gráfico y se pueden organizar en capas. Si hay «muchas» capas , entonces decimos que la red es profunda .
¿Cuántas muchas capas debe tener una red para calificar como profunda? No hay respuesta definitiva a esto (es una un poco como preguntar cuántos granos forman un montón ), pero por lo general tener dos o más capas ocultas cuenta como profundidad. Por el contrario, una red con una sola capa oculta se denomina convencionalmente «poco profunda». Sospecho que habrá algo de inflación aquí, y en diez años la gente podría pensar que cualquier cosa con menos de, digamos, diez capas es superficial y adecuada solo para ejercicios de jardín de infantes. De manera informal, «profundo» sugiere que la red es difícil de manejar.
Aquí hay una ilustración, adaptada de aquí :
Pero la verdadera pregunta que hace es, por supuesto, ¿por qué sería beneficioso tener muchas capas?
Creo que el La respuesta algo sorprendente es que nadie lo sabe realmente. Hay algunas explicaciones comunes que revisaré brevemente a continuación, pero ninguna de ellas ha sido demostrada de manera convincente como cierta, y uno ni siquiera puede estar seguro de que tener muchas capas sea realmente beneficioso.
Digo que esto es asombroso, porque el aprendizaje profundo es enormemente popular, está rompiendo todos los récords (desde el reconocimiento de imágenes hasta la reproducción de Go, la traducción automática, etc.) todos los años, está siendo utilizado por la industria, etc., etc. . Y todavía no estamos muy seguros de por qué funciona tan bien.
Baso mi discusión en la Deep Learning libro de Goodfellow, Bengio y Courville que se publicó en 2017 y es ampliamente considerado como el libro sobre aprendizaje profundo. (Está disponible gratuitamente en línea). La sección relevante es 6.4.1 Propiedades y profundidad de aproximación universal .
Escribiste que
Hace 10 años en clase aprendí que tener varias capas o una capa (sin contar las capas de entrada y salida) era equivalente en términos de las funciones que una red neuronal es capaz de representar […]
Debe estar refiriéndose al llamado teorema de aproximación universal , demostrado por Cybenko en 1989 y generalizada por varias personas en la década de 1990. Básicamente dice que una red neuronal poco profunda (con 1 capa oculta) puede aproximarse a cualquier función, es decir, en principio, puede aprender cualquier cosa . Esto es cierto para varias funciones de activación no lineales, incluidas las unidades lineales rectificadas que la mayoría de las redes neuronales están utilizando en la actualidad (el libro de texto hace referencia a Leshno et al. 1993 para este resultado).
Si es así, ¿por qué todo el mundo usa redes profundas?
Bueno, una respuesta ingenua es que porque funcionan mejor. Aquí hay una figura del libro Deep Learning que muestra que es útil tener más capas en una tarea en particular, pero el mismo fenómeno se observa a menudo en varias tareas y dominios:
Sabemos que una red poco profunda podría funcionan tan bien como los más profundos. Pero no es así; y normalmente no lo hacen. La pregunta es — ¿por qué? Posibles respuestas:
- ¿Quizás una red poco profunda necesitaría más neuronas que la profunda?
- Quizás una red poco profunda sea más difícil de entrenar con nuestros algoritmos actuales (por ejemplo, tiene mínimos locales más desagradables, o la tasa de convergencia es más lenta, o lo que sea)?
- Tal vez una arquitectura poco profunda no encaja con el tipo de problemas que normalmente estamos tratando de resolver (por ejemplo, el reconocimiento de objetos es un «profundo «, proceso jerárquico)?
- ¿Algo más?
El libro de Deep Learning aboga por los puntos 1 y 3. Primero, argumenta que el número de unidades en una red poco profunda crece exponencialmente con la complejidad de la tarea. Entonces, para que sea útil, una red poco profunda puede necesitar ser muy grande; posiblemente mucho más grande que una red profunda. Esto se basa en una serie de artículos que demuestran que las redes poco profundas en algunos casos necesitarían exponencialmente muchas neuronas; pero si por ejemplo La clasificación MNIST o Go playing son casos así que no está muy claro. En segundo lugar, el libro dice esto:
La elección de un modelo profundo codifica una creencia muy general de que la función que queremos aprender debe involucrar la composición de varias funciones más simples. Esto puede interpretarse desde el punto de vista del aprendizaje de la representación como decir que creemos que el problema del aprendizaje consiste en descubrir un conjunto de factores de variación subyacentes que, a su vez, pueden describirse en términos de otros factores de variación subyacentes más simples.
Creo que el «consenso» actual es que «es una combinación de viñetas n. ° 1 y n. ° 3: para tareas del mundo real, la arquitectura profunda suele ser beneficiosa y superficial» sería ineficiente y requeriría muchas más neuronas para el mismo rendimiento.
Pero está lejos de ser probado. Considere, por ejemplo, Zagoruyko y Komodakis, 2016, Wide Residual Networks . Las redes residuales con más de 150 capas aparecieron en 2015 y ganaron varios concursos de reconocimiento de imágenes. Fue un gran éxito y parecía un argumento convincente a favor de la profundidad; aquí hay una figura de una presentación del primer autor en el documento de red residual (tenga en cuenta que el tiempo va confusamente a la izquierda aquí):
Pero el documento vinculado anteriormente muestra que una «amplia La «red residual con» sólo «16 capas puede superar a las» profundas «con más de 150 capas. Si esto es cierto, entonces todo el punto de la figura anterior se rompe.
O considere Ba y Caruana, 2014, Do Deep Nets Really Need to be ¿Profundas? :
En este documento proporcionamos evidencia empírica de que las redes superficiales son capaces de aprender la misma función que las redes profundas y, en algunos casos con el mismo número de parámetros que las redes profundas. Hacemos esto entrenando primero un modelo profundo de última generación y luego entrenando un modelo superficial para imitar el modelo profundo. El modelo mímico se entrena utilizando el esquema de compresión del modelo que se describe en la siguiente sección. Sorprendentemente, con la compresión del modelo podemos entrenar redes poco profundas para que sean tan precisas como algunos modelos profundos, aunque no podemos entrenar estas redes superficiales para que sean tan precisas como las redes profundas cuando las redes poco profundas se orientan directamente sobre el original. datos de entrenamiento etiquetados. Si una red poco profunda con el mismo número de parámetros que una red profunda puede aprender a imitar una red profunda con alta fidelidad, entonces está claro que la función aprendida por esa red profunda no tiene que ser realmente profunda.
Si es cierto, esto significaría que la explicación correcta es más bien mi viñeta # 2, y no la # 1 o # 3.
Como dije – – Nadie lo sabe con certeza todavía.
Comentarios finales
La cantidad de progreso logrado en el El aprendizaje profundo durante los últimos ~ 10 años es realmente asombroso, pero la mayor parte de este progreso se logró mediante prueba y error, y todavía carecemos de una comprensión muy básica sobre qué exactamente hace que las redes profundas funcionen tan bien. Incluso la lista de cosas que la gente considera cruciales para establecer una red profunda eficaz parece cambiar cada dos años.
El renacimiento del aprendizaje profundo comenzó en 2006 cuando Geoffrey Hinton (que había estado trabajando en redes durante más de 20 años sin mucho interés por parte de nadie) publicó un par de artículos innovadores que ofrecen una forma eficaz de entrenar redes profundas ( Science paper , Documento de cálculo neuronal ). El truco consistía en utilizar un preentrenamiento sin supervisión antes de iniciar el descenso en pendiente. Estos documentos revolucionaron el campo y durante un par de años la gente pensó que la clave era la formación previa sin supervisión.
Luego, en 2010, Martens demostró que las redes neuronales profundas se pueden entrenar con métodos de segundo orden (los llamados métodos sin hessian) y pueden superar a las redes entrenadas con entrenamiento previo: Aprendizaje profundo mediante optimización sin hessian . Luego, en 2013 Sutskever et al. mostró que el descenso de gradiente estocástico con algunos trucos muy inteligentes puede superar a los métodos sin hessian: Sobre la importancia de la inicialización y el impulso en el aprendizaje profundo . Además, alrededor de 2010, la gente se dio cuenta de que el uso de unidades lineales rectificadas en lugar de unidades sigmoides marca una gran diferencia para el descenso de gradientes. La deserción apareció en 2014. Las redes residuales aparecieron en 2015. La gente sigue ideando formas cada vez más efectivas de entrenar redes profundas y lo que parecía una información clave hace 10 años a menudo se considera hoy en día es una molestia. Todo eso se debe en gran medida a prueba y error y hay poca comprensión de lo que hace que algunas cosas funcionen tan bien y otras cosas no. Entrenar redes profundas es como una gran cantidad de trucos. Los trucos exitosos generalmente se racionalizan post factum.
Ni siquiera sabemos por qué las redes profundas alcanzan una meseta de rendimiento; solo 10 años la gente solía culpar a los mínimos locales, pero la opinión actual es que este no es el punto (cuando el rendimiento se estabiliza, los gradientes tienden a permanecer grandes). Esta es una pregunta muy básica sobre las redes profundas, y ni siquiera sabemos esto .
Actualización: Este es más o menos el tema de la charla NIPS 2017 de Ali Rahimi sobre el aprendizaje automático como alquimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Esta respuesta se reescribió por completo en abril de 2017, por lo que algunos de los comentarios a continuación ya no se aplican.]
Comentarios
- ¡Buena respuesta! 1) Como también lo mencionó @Nicolas, resulta que hay un teorema ( en.wikipedia.org/wiki/Universal_approximation_theorem ) que afirma que un n El trabajo con una sola capa oculta y un número finito de neuronas puede aproximar cualquier función continua (incluido un DNN) en el hipercubo de la unidad. Se afirma que este resultado es independiente de la elección de la función de activación. 2) No estoy seguro de si su último comentario (es decir, que Hinton se unió a Google) es relevante para el reciente éxito de los DNN; ¡Hinton se unió a Google mucho después de que los DNN se convirtieran en una epidemia!
- Tal vez ‘ estemos usando la terminología de manera diferente. Los perceptrones no ‘ t tienen una capa oculta: su entrada son los datos, su salida es la clasificación. Una red multicapa consta de un grupo de perceptrones conectados entre sí de manera que la salida de la capa $ n-1 $ forma la entrada de la capa $ n $. Por tanto, una red con una sola capa oculta tiene tres capas (entrada, oculta, salida). Esta capa oculta es la clave para la aproximación universal: los perceptrones, que carecen de ella, pueden ‘ t calcular cosas como XOR, pero las redes multicapa sí.
- La linealidad Parece una combinación de dos cuestiones. Los perceptrones solo pueden calcular límites de decisión lineales; solo pueden dibujar líneas rectas para dividir dos clases. Las redes multicapa pueden » dibujar » límites más complicados. Pero ni los perceptrones ni las redes multicapa utilizan funciones de activación lineal, excepto en la capa de salida de una red multicapa. La función de activación del perceptrón es un heaviside (1 si x > 0, 0 en caso contrario); Las redes multicapa a menudo utilizan sigmoides, pero las limitaciones de aprox. son bastante leves: no constantes, acotadas y monótonamente crecientes.
- @amoeba gran respuesta, la imagen al principio me desanimó para leer el resto, pero era lo mejor. El perceptrón es la contraparte de la regresión lineal para la clasificación, por lo que cuando las personas usan la solución de forma cerrada (pseudoinversa) para resolver el problema en lugar de los métodos en línea (sgd), ‘ s llamado Regresión logística, debido a la logística (función sigmoidea) = perceptrón. Una regresión logística / perceptrón solo puede ‘ dibujar ‘ límites de decisión lineal y ‘ s por qué ‘ se llama lineal.
- Sin embargo, el perceptrón multicapa (lo que dibujó en su primera imagen a la izquierda) puede combinar múltiples decisiones lineales límites y, por lo tanto, puede dividir el espacio para resolver el problema XOR (no lineal) como lo mencionó @Matt. Por lo tanto, muchos límites de decisión lineales combinados pueden formar un círculo, por ejemplo, si entrecierra los ojos. Depende de cómo lo piense: la decisión sigue siendo lineal en un espacio superior, si está familiarizado con los núcleos, ‘ es lo mismo.
Respuesta
Buena respuesta hasta ahora, aunque hay un par de cosas que nadie mencionó aquí, aquí está mi 0.02 $
Solo responderé en forma de historia, debería hacer las cosas más divertidas y claras. No hay tldr aquí. En el proceso, debería ser capaz de comprender cuál es la diferencia.
Hay varias razones por las que los DNN se dispararon cuando lo hicieron (las estrellas tenían que alinearse, como todas las cosas similares, es solo una cuestión de lugar, momento adecuado, etc.).
Una razón es la disponibilidad de datos, muchos datos (datos etiquetados). Si desea poder generalizar y aprender algo como «antecedentes genéricos» o «antecedentes universales «(también conocidos como los bloques de construcción básicos que se pueden reutilizar entre tareas / aplicaciones), entonces necesita muchos datos. Y datos salvajes, podría agregar, no conjuntos de datos estériles cuidadosamente registrados en el laboratorio con iluminación controlada y todo. Turk hizo posible eso (etiquetado).
En segundo lugar, la posibilidad de entrenar redes más grandes más rápido usando GPU hizo que la experimentación fuera más rápida. Las unidades ReLU también hicieron las cosas computacionalmente más rápidas y proporcionaron su regularización, ya que era necesario usar más unidades una capa para poder comprimir la misma información ya que las capas ahora eran más espadas e, por lo que también fue bueno con la deserción. Además, ayudaron con un problema importante que ocurre cuando se apilan varias capas. Más sobre eso más tarde. Varios trucos múltiples que mejoraron el rendimiento. Como usar mini-lotes (que de hecho es perjudicial para el error final) o convoluciones (que en realidad no capturan tanta varianza como los campos receptivos locales) pero son computacionalmente más rápidos.
Mientras tanto, la gente estaba debatiendo si les gustaban más delgados o más regordetes, más pequeños o más altos, con o sin pecas, etc. La optimización era como si fizz o explota, así que la investigación se estaba moviendo hacia métodos de entrenamiento más complejos como el gradiente conjugado y el método de newton, finalmente todos se dieron cuenta de que no había almuerzo gratis. Las redes estaban eructando.
Lo que ralentizó las cosas fue el problema del gradiente que se desvanece . La gente decía: ¡vaya, eso está muy lejos, hombre! En pocas palabras, significa que fue difícil ajustar el error en las capas más cercanas a las entradas. A medida que agrega más capas en el pastel, se tambalea demasiado. No podría » t propagar hacia atrás el error significativo a las primeras capas. Cuantas más capas, peor se puso. Qué lástima.
Algunas personas se dieron cuenta de que el uso de la entropía cruzada como función de pérdida (bueno, de nuevo, clasificación y reconocimiento de imágenes) proporciona algún tipo de regularización y ayuda a que la red no se sature y, a su vez, el gradiente no era capaz de ocultar tan bien.
Lo que también hizo que las cosas fueran posibles fue el entrenamiento previo por capa utilizando métodos no supervisados. Básicamente, toma un montón de codificadores automáticos y aprende representaciones cada vez menos abstractas como aumenta la relación de compresión. Los pesos de estas redes se utilizaron para inicializar la versión supervisada. Esto resolvió el problema del gradiente de desaparición de otra manera: ya está comenzando el entrenamiento supervisado desde una posición de inicio mucho mejor. Entonces todas las demás redes se levantaron y comenzaron a rebelarse. Pero las redes necesitaban supervisión de todos modos, de lo contrario, era imposible mantener el big data quieto.
Ahora, la última parte que finalmente conduce a su respuesta, que es demasiado compleja para resumirla: por qué más capas y no solo una. ¡Porque podemos! y porque el contexto y los descriptores de características invariantes. y grupos.
Aquí tienes un ejemplo: tienes un conjunto de datos de imágenes, ¿cómo vas a entrenar un plan NN usando esos datos? Bueno, ingenuamente, digamos cada fila y lo concatenas en un vector largo y esa es tu entrada. ¿Qué aprendes?Bueno, algunas funciones sin sentido difusas que pueden no parecerse a nada, debido a los muchos tipos de variaciones que contienen los objetos en la imagen y no es capaz de distinguir entre cosas relevantes e irrelevantes. Y en algún momento, la red debe olvidarse de poder volver a aprender cosas nuevas. Entonces está el problema de la capacidad. Se trata de una dinámica más no lineal, pero la intuición es que necesitas aumentar la cantidad de neuronas para poder incluir más información en tu red.
Entonces, el punto es que si ingresa la imagen como una sola pieza, agregar capas adicionales no hace demasiado por usted, ya que no puede aprender abstracciones , lo cual es muy importante. Por lo tanto, hacer las cosas de manera integral no funciona tan bien, a menos que esté haciendo cosas más simples con la red, como enfocarse en un tipo específico de objeto, por lo que se limita a una clase y elige algunas propiedades globales como meta de clasificación. p>
Entonces, ¿qué hay que hacer? Mire el borde de su pantalla e intente leer este texto. ¿Problema? Por estúpido que parezca, debes mirar lo que estás leyendo. De lo contrario, es demasiado borroso / no hay suficiente resolución / granularidad. Llamemos al área de enfoque el campo receptivo. Las redes también deben poder concentrarse. Básicamente, en lugar de usar la imagen completa como entrada, mueve una ventana deslizante a lo largo de la imagen y luego la usa como entrada a la red (un poco menos estocástico que lo que hacen los humanos). Ahora también tiene la oportunidad de capturar correlaciones entre píxeles y, por lo tanto, objetos y también puede distinguir entre un gato somnoliento sentado en un sofá y un gato que hace puenting boca abajo. Limpio, la fe en la humanidad restaurada. La red puede aprender abstracciones locales en una imagen en múltiples niveles. La red aprende filtros, inicialmente simples y luego los acumula para aprender filtros más complejos.
Entonces, para resumir: campos receptivos / convoluciones, inicialización no supervisada, unidades lineales rectificadas, abandono u otra regularización métodos. Si se lo toma muy en serio, le recomiendo que eche un vistazo a Aprendizaje profundo en redes neuronales: descripción general de Schmidhuber, aquí la URL de la preimpresión http://arxiv.org/abs/1404.7828
Y recuerde: gran aprendizaje, datos profundos. Word.
Comentarios
- Hola Florin, gracias por la buena respuesta. Me gusta el estilo de escritura. Cuando hablas de ventanas corredizas, ¿te refieres a cómo las capas convolucionales de NN convolucionales observan diferentes partes de una imagen y proyecto sus activaciones en un espacio de menor dimensión?
- prácticamente sí, las convoluciones no son necesarias, pero ‘ son más rápidas computacionalmente, ya que los pesos están restringidos. presente este documento en el que no ‘ t usan convoluciones y usan campos receptivos locales. Las palabras clave importantes son locales / jerárquicas: arxiv.org /pdf/1112.6209.pdf
- También creo que el más cercano La respuesta sistemática es sobi ‘ s. él ‘ tiene mi voto a favor. Acabo de agregar algunas cosas más aquí y allá con un poco de sal y pimienta.
Responder
En En términos simples, la principal diferencia con las redes neuronales clásicas es que tienen muchas más capas ocultas.
La idea es agregar etiquetas a las capas para hacer varias capas de abstracción:
Por ejemplo, una red neuronal profunda para reconocimiento de objetos :
- Capa 1: píxeles individuales
- Capa 2: Bordes
- Capa 3: Formas (círculos, cuadrados)
- Capa n: Objeto completo
Puede encontrar una buena explicación de esta pregunta en Quora .
Y, si está interesado en este tema, le recomiendo que le eche un vistazo libro .
Comentarios
- Gracias David, pero no ‘ Realmente no veo cómo agregar etiquetas para hacerlo diferente. También recuerdo que era un problema difícil comprender y descomponer cómo se codificaba una función en la red neuronal. Debe haber algo más que tener más capas. En cuanto al ejemplo que dio, creo que puede entrenar redes neuronales individualmente (de la vieja escuela) para realizar cada una de las tareas.
- El poder viene cuando lo usa como una tubería, por lo que las entradas y salidas de las pilas de capas en cada capa.
- He estado leyendo su primer enlace, que es un buen recurso, y otras preguntas relacionadas sobre quora y se, sin embargo, el ejemplo que dio no parece correcto con lo que leer. ‘ intentaré responder mi propia pregunta, resumiendo estas lecturas.
- A pesar de que el recurso señalado es interesante, la respuesta actualmente no responde a la pregunta.
- ¿Puede señalar un ejemplo en el que las capas estén etiquetadas (que no sea de forma puramente descriptiva)?Es cierto que las capas ocultas aparecen sucesivamente a entidades más complejas en cada capa oculta, pero » agregar etiquetas » parece implicar que ‘ estamos siendo entrenados específicamente para hacer eso.
Responder
NN:
- una capa oculta es suficiente, pero puede tener múltiples capas, ordenando de izquierda a derecha (modelo: feed forward NN)
- entrenado solo de manera supervisada (retropropagación )
- cuando se usan múltiples capas, entrene todas las capas al mismo tiempo (mismo algoritmo: retropropagación), más capas dificulta el uso ya que los errores se vuelven demasiado pequeños
- difíciles de comprender lo que se aprende en cada capa
DNN:
- se requieren múltiples capas, bordes no dirigidos (modelo: máquina boltzman restringida)
- primero entrenado de una manera no supervisada, donde las redes aprenden características relevantes aprendiendo a reproducir su entrada , luego entrenado de una manera supervisada que afina las características para clasificar
- entrenar las capas una por una desde la capa de entrada a la de salida (algoritmo: divergencia contrastiva)
- cada capa claramente contiene características de abstracción creciente
El cambio a DNN se debe a tres avances independientes que ocurrieron en 2006.
Con respecto a los teoremas sobre NN, al que alude la pregunta es :
- Teorema de aproximación universal o teorema de Cybenko: una red neuronal de retroalimentación con una sola capa oculta puede aproximarse a cualquier función continua. Sin embargo, en la práctica, puede requerir muchas más neuronas si se usa una sola capa oculta.
Comentarios
- -1? ¿En serio? Leí todo esto en la literatura e hice una comparación punto por punto de ambos enfoques. Por favor, al menos indique lo que no es correcto …
- No voté en contra (¿quizás a un votante en contra no le gustó que usted respondiera su propia pregunta? Pero eso, por supuesto, está perfectamente bien aquí), pero aquí hay una cosa que no es del todo correcta. Lo que enumera como propiedades de DNN: que los bordes no están dirigidos, que se ‘ se entrena por primera vez de forma no supervisada, que las capas se entrenan una por una; todo eso solo se refiere a las redes de creencias profundas sugeridas por Hinton en 2006. Esto no es necesariamente cierto para las redes neuronales profundas en general y, de hecho, ahora hay muchas formas de entrenar una red profunda sin todo eso. Vea mi respuesta.
Respuesta
También me confundí un poco al principio por la diferencia entre redes neuronales (NN) y redes neuronales profundas (DNN), sin embargo, la «profundidad» se refiere solo al número de parámetros & capas, desafortunadamente. Puede tomarlo como una especie de re -marketing bajo la llamada «Mafia canadiense».
Hace varios años, también tuve Neural Networks como parte de una clase e hicimos reconocimiento de dígitos, aproximación de ondas y aplicaciones similares usando NN, que tenía múltiples capas y salidas ocultas y todo ese jazz que tienen los DNN. Sin embargo, lo que no teníamos entonces era potencia informática.
La razón que hizo posible y deseable el cambio a DNN son los avances en el desarrollo de hardware. En pocas palabras, ahora podemos calcular más, más rápido y más paralelizado (DNN en GPU), mientras que antes, el tiempo era el cuello de botella para los NN.
Como se menciona en la página de Wikipedia para Deep Aprendizaje , la parte «profunda» se refiere principalmente a que las características interactúen de manera no lineal en varias capas, por lo que se realiza la extracción y transformación de características. Esto también se hizo en NN estándar, pero a menor escala.
En la misma página, aquí tienes la definición «Una red neuronal profunda (DNN) es una red neuronal artificial (ANN) con múltiples capas ocultas de unidades entre las capas de entrada y salida».
Comentarios
- Hola Mttk, gracias por tu respuesta, arrojó más luz sobre esta pregunta. Con respecto a tu último punto, sí, estructuralmente es muy fácil explicar la diferencia (1 frente a múltiples capas), pero la diferencia en la forma en que se utilizan estas capas múltiples parece ser lo que importa y es mucho menos claro. Es por eso que centré la pregunta no en la estructura ..
- Honestamente, no ‘ t estoy de acuerdo con la última definición a la que hice referencia, ya que ANN / NN con una capa oculta no son realmente eficientes, y necesitabas múltiples para cualquier tipo de predicción más compleja (I ‘ m diciendo esto porque creo que DNN era una palabra de moda inútil agregada a un término ya bueno, NN). Creo que puede usar NN y DNN indistintamente (porque hoy en día nadie usa NN ‘ s de una capa oculta), mientras que el uso de las capas difiere entre los tipos de DNN ‘ s (CNN, RBM, RNN, LSTM, CW-RNN, …) y no la idea de DNN en sí.
Respuesta
Hasta donde yo sé, lo que hoy se llama Red Neural Profunda (DNN) no tiene nada fundamentalmente o filosóficamente diferente de la vieja red neuronal estándar (NN). Aunque, en teoría, uno puede aproximar un NN arbitrario usando un NN poco profundo con solo una capa oculta, sin embargo, esto no significa que las dos redes funcionarán de manera similar cuando se entrenan con el mismo algoritmo y datos de entrenamiento. De hecho, existe un interés creciente en la formación de redes superficiales que funcionan de manera similar a las redes profundas. Sin embargo, la forma en que se hace esto es entrenando primero una red profunda y luego entrenando la red superficial para imitar la salida final (es decir, la salida de la penúltima capa) de la red profunda. Mira, lo que hace que las arquitecturas profundas sean favorables es que las técnicas de entrenamiento actuales (propagación hacia atrás) funcionan mejor cuando las neuronas están dispuestas en una estructura jerárquica.
Otra pregunta que se puede hacer es: ¿por qué Neural Las redes (las DNN en particular) se hicieron tan populares de repente. Según tengo entendido, los ingredientes mágicos que hicieron que las DNN fueran tan populares recientemente son los siguientes:
A. Conjuntos de datos y capacidades de procesamiento de datos mejorados
1. Se pusieron a disposición conjuntos de datos a gran escala con millones de imágenes diversas
2. Se puso a disposición del público la implementación rápida de GPU
B. Algoritmos de entrenamiento y arquitecturas de red mejorados
1. Unidades lineales rectificadas (ReLU) en lugar de sigmoide o tanh
2. Las arquitecturas de redes profundas evolucionaron a lo largo de los años
A-1) Hasta hace muy poco, al menos en Computer Vision, no pudimos entrenar modelos en millones de imágenes etiquetadas; simplemente porque no existían conjuntos de datos etiquetados de ese tamaño. Resulta que, además del número de imágenes, la granularidad del conjunto de etiquetas también es un factor muy importante para el éxito de los DNN (consulte la Figura 8 en este artículo , por Azizpour et al.).
A-2) Se ha realizado un gran esfuerzo de ingeniería para hacer posible la formación de DNN que funcionan bien en la práctica, en particular, la llegada de las implementaciones de GPU. Una de las primeras implementaciones exitosas de GPU de DNN, se ejecuta en dos GPU paralelas; sin embargo, se tarda aproximadamente una semana en entrenar a un DNN en 1,2 millones de imágenes de 1000 categorías utilizando GPU de gama alta (consulte este documento de Krizhevsky et al.) .
B-1) El uso de unidades lineales rectificadas (ReLU) simples en lugar de sigmoides y Las funciones tanh son probablemente el bloque de construcción más grande para hacer posible el entrenamiento de DNN. Tenga en cuenta que las funciones sigmoidea y tanh tienen casi gradiente cero casi en todas partes, dependiendo de qué tan rápido pasen del nivel de activación bajo al alto; en el caso extremo, cuando la transición es repentina, obtenemos una función de paso que tiene pendiente cero en todas partes excepto en un punto donde ocurre la transición.
B-2) La historia de cómo se desarrollaron las arquitecturas de redes neuronales a lo largo de los años me recuerda cómo la evolución cambia la estructura de un organismo en la naturaleza. Parámetros compartidos ( p. ej., en capas convolucionales), regularización de abandono, inicialización, programación de tasas de aprendizaje, agrupación espacial, submuestreo en las capas más profundas y muchos otros trucos que ahora se consideran estándar en el entrenamiento de DNN se desarrollaron, evolucionaron, final adaptado a lo largo de los años para hacer posible el entrenamiento de las redes profundas tal como es hoy.
Comentarios
- +1. La primera respuesta en este hilo que proporciona una respuesta adecuada a las preguntas del OP ‘. Muchos buenos puntos aquí. Mi único comentario importante sería que, además de su A y B, th También está C: Incremento masivo en el tamaño de los conjuntos de datos de entrenamiento disponibles. Esto parece ser al menos tan importante como A y B.
- No ‘ no creo que relu sea tan importante: el artículo de Alex krizhevsky afirmó que hizo nn aprender a 6 veces más rápido. La mayoría de los otros cambios en la estructura de la red que mencionas se relacionan con nns convolucionales, que solo copian las canalizaciones de procesamiento de imágenes estándar (algo bueno, pero no hay información nueva)
- @amoeba: el tamaño del conjunto de datos está por debajo de A. I actualicé el texto para resaltarlo.
- @ seanv507: de hecho, tenía redes convolucionales (ConvNets) en mente cuando escribí la respuesta. Si hay otros factores importantes (no relacionados con ConvNets) que me he perdido, le agradecería que los mencionara. Me complacería actualizar mi respuesta en consecuencia.Con respecto a los ReLU, entrenar nns con tanh y sigmoid es considerablemente más difícil que con ReLUs debido al problema de los gradientes que desaparecen: las unidades se saturan fácilmente y, una vez que eso sucede, les toma mucho tiempo volverse insaturadas nuevamente (los gradientes son muy pequeños cuando la unidad está saturado)
Respuesta
La diferencia entre un NN «profundo» y un NN estándar es puramente cualitativa: no hay una definición de lo que significa «Profundo». «Profundo» puede significar cualquier cosa, desde las arquitecturas extremadamente sofisticadas que utilizan Google, Facebook y compañía, que tienen 50-80 o incluso más capas, hasta arquitecturas de 2 capas ocultas (4 capas en total). No me sorprendería que pudiera encontrar artículos que afirmen realizar aprendizaje profundo con una sola capa oculta, porque «profundo» no significa mucho.
«Red neuronal» también es una palabra que no «t tiene un significado muy preciso. Cubre un conjunto extremadamente grande de modelos, desde máquinas de boltzman aleatorias (que son gráficos no dirigidos) hasta arquitecturas de avance con varias funciones de activación. La mayoría de los NN se entrenarán usando backprop, pero no Sea el caso, incluso los algoritmos de entrenamiento no son muy homogéneos.
En general, el aprendizaje profundo, los NN profundos y los NN se han convertido en palabras generales que capturan una multitud de enfoques.
Para obtener buenas referencias introductorias sobre «lo que cambió»: Aprendizaje profundo de representaciones: mirando hacia el futuro , Bengio, 2013 es una buena reseña y perspectiva para el futuro. Consulte también ¿Las redes profundas realmente necesitan ser profundas? Ba & Caruana, 2013, que ilustra que Ser profundo podría no ser útil para la representación sino para el aprendizaje.
Comentarios
- Las referencias que proporciones son muy útiles , pero el resto de la respuesta en el formato actual (que se lee como » NN no significa nada, DNN no significa nada, NN y DNN pueden hacer muchas cosas «) no mucho, ¿consideraría revisarlo?
Responder
Para ampliar la respuesta de David Gásquez, una de las principales diferencias entre las redes neuronales profundas y las redes neuronales tradicionales es que no solo usamos la retropropagación para las redes neuronales profundas.
¿Por qué? Debido a que la propagación hacia atrás entrena las capas posteriores de manera más eficiente que entrena las capas anteriores, a medida que avanza más y más temprano en la red, los errores se vuelven más pequeños y más difusos. Entonces, una red de diez capas será básicamente siete capas de pesos aleatorios seguidos de tres capas de pesos ajustados, y funcionará tan bien como una red de tres capas. Consulte aquí para obtener más información.
Así que el avance conceptual es tratar los problemas separados (las capas etiquetadas) como problemas separados, si primero Intentemos resolver el problema de construir una primera capa genéricamente buena, y luego tratemos de resolver el problema de construir una segunda capa genéricamente buena, eventualmente tendremos un espacio de características profundo que podemos alimentar a nuestro problema real.
Respuesta
No diría que hay una gran diferencia filosófica entre NN y DNN (de hecho, diría que DNN es solo una término para distinguir de NN «fallido»). Lo que ha cambiado es el tamaño de los conjuntos de datos. Esencialmente, las redes neuronales son actualmente los mejores estimadores estadísticos de $ O (n) $, y funcionan bien para conjuntos de datos grandes de alta dimensión (por ejemplo, imagenet).
Creo que debería dar un paso atrás y ver que esto ha creado un resurgimiento en IA poco profunda – p. ej. La bolsa de palabras para el análisis de sentimientos y otras aplicaciones lingüísticas y la bolsa visual de palabras fue un enfoque líder en el reconocimiento de imágenes antes de DNN. Nadie dice que bolsa de palabras es un verdadero modelo de lenguaje, pero es una solución de ingeniería eficaz. Por lo tanto, diría que DNN es una mejor «bolsa visual de palabras»; consulte, por ejemplo, Szegedy y col. 2013 Propiedades intrigantes de las redes neuronales y Nguyen et al. Las redes neuronales profundas se engañan fácilmente: predicciones de alta confianza para imágenes irreconocibles donde está claro que no se están aprendiendo estructuras de orden superior, etc. (o lo que se afirme DNN).
Comentarios
- @amoeba, este otro artículo es casi un artículo complementario del primero (¡de nuevo con muchas imágenes!)
Respuesta
Para responder a la última pregunta, consulte este documento de Telgarsky que dice que para un cierto problema de clasificación «todas las redes superficiales con menos de exponencialmente (en k) muchos nodos exhiben un error de al menos 1/6, mientras que una red profunda con 2 nodos en cada una de las 2k capas logra cero errores.»
El problema de clasificación en cuestión es el problema de n-puntos alternos en el que consideramos el intervalo $ [0,1-2 ^ {- k}] $ de modo que los $ x_i $ de entrada sean los $ 2 ^ k $ puntos distribuidos uniformemente en ese intervalo, y el $ y_i $ correspondiente vienen dados por $ y_i = 1 $ si $ i $ es impar y $ y_i = 0 $ si $ i $ es par. Luego preguntamos, ¿qué tan bien pueden las redes poco profundas sin anchos exponenciales capturar esta relación en comparación con las redes profundas con solo dos nodos en cada capa? Esencialmente, podemos aproximar los datos mejor (exactamente pares) con un ( en $ k $ ) número de capas con solo dos nodos en cada capa, mientras que necesitaríamos exponencialmente muchos (en $ k $ ) para obtener el mismo resultado en una red poco profunda.
La prueba de la cita implica notar que la composición de activaciones no lineales aplicadas a transformaciones afines (es decir, con un mayor número de capas) logra capturar más variabilidad en los datos que sumando esas mismas funciones (como en cuando agregamos nodos a las capas).
Respuesta
El aprendizaje profundo es un conjunto de algoritmos de aprendizaje automático que Intente modelar abstracciones de alto nivel en datos utilizando arquitecturas compuestas por múltiples transformaciones no lineales .
Fuente: Arno Candel
Deja una respuesta