Comencemos con una triviliaty: la red neuronal profunda es simplemente una red de avance 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 de avance; los de avance no tienen ningún bucle en su gráfico y se pueden organizar en capas. Si hay "muchas" capas, entonces decimos que la red es profunda .
¿ Cuántas capas debe tener una red para calificar como profunda? No hay una respuesta definitiva a esto (es un poco como preguntar cuántos granos hacen un montón ), pero generalmente tener dos o más capas ocultas cuenta como profundo. En contraste, una red con una sola capa oculta se llama convencionalmente "superficial". 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 poco profunda y adecuada solo para ejercicios de jardín de infantes. Informalmente, "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 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 demostrado ser convincentemente cierta, y uno ni siquiera puede estar seguro de que tener muchas capas sea realmente beneficioso.
Digo que esto es sorprendente, porque el aprendizaje profundo es enormemente popular, está rompiendo todos los récords (desde el reconocimiento de imágenes, pasando por Go, hasta la traducción automática, etc.) cada año, la industria lo está utilizando, etc., etc. Todavía no estamos muy seguros de por qué funciona tan bien.
Baso mi discusión en el libro de Aprendizaje profundo de Goodfellow, Bengio y Courville, que salió 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 .
Tu escribiste eso
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 referirse al llamado teorema de aproximación universal , probado por Cybenko en 1989 y generalizado 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 lineal, incluidas las unidades lineales rectificadas que la mayoría de las redes neuronales están utilizando hoy (el libro de texto hace referencia a Leshno et al. 1993 para este resultado).
Si es así, ¿por qué todos usan redes profundas?
Bueno, una respuesta ingenua es que funcionan mejor. Aquí hay una figura del libro Deep Learning que muestra que ayuda tener más capas en una tarea en particular, pero a menudo se observa el mismo fenómeno en varias tareas y dominios:
Sabemos que una red superficial podría funcionar tan bien como las más profundas. Pero no lo hace; y generalmente no lo hacen. La pregunta es ¿por qué? Respuestas posibles:
- ¿Quizás una red poco profunda necesitaría más neuronas que la profunda?
- ¿Quizás una red poco profunda es 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)?
- ¿Quizás una arquitectura superficial no se ajusta al tipo de problemas que generalmente estamos tratando de resolver (por ejemplo, el reconocimiento de objetos es un proceso jerárquico "profundo" por excelencia)?
- ¿Algo más?
El libro Deep Learning argumenta a favor de 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 ser útil, una red superficial puede necesitar ser muy grande; posiblemente mucho más grande que una red profunda. Esto se basa en una serie de documentos que prueban que las redes poco profundas necesitarían en algunos casos exponencialmente muchas neuronas; pero si, por ejemplo, la clasificación MNIST o Go playing son tales casos, no está realmente claro. Segundo, el libro dice esto:
Elegir 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 representación como diciendo que creemos que el problema de 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 los puntos # 1 y # 3: para las tareas del mundo real, la arquitectura profunda a menudo es beneficiosa y la arquitectura 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. Este 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 red residual "amplia" con "solo" 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, ¿Las redes profundas realmente necesitan ser profundas? :
En este artículo proporcionamos evidencia empírica de que las redes poco profundas 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 descrito 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, a pesar de que no podemos entrenar estas redes poco profundas para ser tan precisas como las redes profundas cuando las redes poco profundas se entrenan directamente en 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,
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.
Observaciones finales
La cantidad de los progresos realizados en el aprendizaje profundo en los últimos ~ 10 años es realmente sorprendente, pero la mayor parte de este progreso se logró mediante ensayo y error, y que aún carecen de conocimientos básicos sobre lo que exactamente hace que las redes profundas para trabajar tan bien. Incluso la lista de cosas que las personas consideran cruciales para establecer una red profunda efectiva parece cambiar cada dos años.
El renacimiento del aprendizaje profundo comenzó en 2006 cuando Geoffrey Hinton (que había trabajado en redes neuronales durante más de 20 años sin mucho interés de nadie) publicó un par de documentos innovadores que ofrecen una forma efectiva de entrenar redes profundas ( documento de ciencia , documento de cálculo neuronal ) . El truco consistía en utilizar un pre-entrenamiento sin supervisión antes de comenzar el descenso del gradiente. Estos documentos revolucionaron el campo, y durante un par de años la gente pensó que la capacitación previa sin supervisión era la clave.
Luego, en 2010, Martens demostró que las redes neuronales profundas se pueden entrenar con métodos de segundo orden (los llamados métodos sin arpillera) y pueden superar a las redes entrenadas con preentrenamiento: aprendizaje profundo a través de la optimización sin arpillera . Luego, en 2013, Sutskever et al. demostró que el descenso de gradiente estocástico con algunos trucos muy inteligentes puede superar a los métodos libres de arpillera: sobre la importancia de la inicialización y el impulso en el aprendizaje profundo . Además, alrededor de 2010, las personas se dieron cuenta de que el uso de unidades lineales rectificadas en lugar de unidades sigmoideas hace una gran diferencia para el descenso de gradiente. La deserción escolar apareció en 2014. Las redes residuales aparecieron en 2015. La gente sigue buscando formas cada vez más efectivas de entrenar redes profundas ylo que parecía una idea clave hace 10 años a menudo se considera una molestia hoy en día. Todo eso se debe en gran medida al ensayo y error, y hay poca comprensión de lo que hace que algunas cosas funcionen tan bien y otras no. Entrenar redes profundas es como una gran bolsa de trucos. Los trucos exitosos suelen ser racionalizados 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 el pensamiento actual es que este no es el punto (cuando el rendimiento se estabiliza, los gradientes tienden a permanecer grandes). Esta es una pregunta tan básica sobre redes profundas, y que ni siquiera sabe este .
Actualización: Este es más o menos el tema de la charla NIPS 2017 de Ali Rahimi sobre aprendizaje automático como alquimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Esta respuesta fue completamente reescrita en abril de 2017, por lo que algunos de los comentarios a continuación ya no se aplican].