Un problema que he visto con frecuencia planteado en el contexto de las redes neuronales en general, y las redes neuronales profundas en particular, es que están "hambrientos de datos", es decir, no funcionan bien a menos que tengamos un gran conjunto de datos con el que entrenar a la red.
Tengo entendido que esto se debe al hecho de que las NNets, especialmente las Deep NNets, tienen una gran cantidad de grados de libertad. Entonces, como modelo, una NNet tiene una gran cantidad de parámetros, y si la cantidad de parámetros del modelo es grande en relación con la cantidad de puntos de datos de entrenamiento, existe una mayor tendencia a un ajuste excesivo.
Pero, ¿por qué este problema no se resuelve con la regularización? Hasta donde yo sé, NNets puede usar la regularización L1 y L2 y también tiene sus propios métodos de regularización, como el abandono, que puede reducir el número de parámetros en la red.
¿Podemos elegir nuestros métodos de regularización para que impongan la parsimonia y limiten el tamaño de la red?
Para aclarar mi pensamiento: Digamos que estamos usando una gran red NNet profunda para tratar de modelar nuestros datos, pero el conjunto de datos es pequeño y en realidad podría ser modelado por un modelo lineal. Entonces, ¿por qué los pesos de la red no convergen de tal manera que una neurona simule la regresión lineal y todas las demás converjan a ceros? ¿Por qué la regularización no ayuda con esto?
fuente
Respuestas:
La manera simple de explicarlo es que la regularización ayuda a no ajustarse al ruido, no hace mucho en términos de determinar la forma de la señal. Si piensa en el aprendizaje profundo como un aproximador de funciones glorioso gigante, entonces se da cuenta de que necesita muchos datos para definir la forma de la señal compleja.
Si no hubiera ruido, la creciente complejidad de NN produciría una mejor aproximación. No habría ninguna penalización en el tamaño del NN, más grande hubiera sido mejor en todos los casos. Considere una aproximación de Taylor, más términos siempre son mejores para la función no polinómica (ignorando los problemas de precisión numérica).
Esto se rompe en presencia de un ruido, porque comienza a adaptarse al ruido. Entonces, aquí viene la regularización para ayudar: puede reducir la adaptación al ruido, lo que nos permite construir NN más grandes para adaptarse a problemas no lineales.
La siguiente discusión no es esencial para mi respuesta, pero agregué en parte para responder algunos comentarios y motivar el cuerpo principal de la respuesta anterior. Básicamente, el resto de mi respuesta es como fuegos franceses que vienen con una comida de hamburguesa, puedes saltartela.
(Ir) Caso relevante: regresión polinómica
Veamos un ejemplo de juguete de una regresión polinómica. También es un buen aproximador para muchas funciones. Veremos la función en la región x ∈ ( - 3 , 3 ) . Como puede ver en su serie Taylor a continuación, la expansión de séptimo orden ya es bastante buena, por lo que podemos esperar que un polinomio de orden 7+ también sea muy bueno:pecado( x ) x ∈ ( - 3 , 3 )
A continuación, vamos a ajustar los polinomios con un orden progresivamente más alto a un pequeño conjunto de datos muy ruidoso con 7 observaciones:
Podemos observar lo que nos han dicho sobre polinomios muchas personas que lo saben: son inestables y comienzan a oscilar salvajemente con el aumento del orden de los polinomios.
Sin embargo, el problema no son los polinomios en sí. El problema es el ruido. Cuando ajustamos polinomios a datos ruidosos, parte del ajuste es al ruido, no a la señal. Aquí están los mismos polinomios exactos que se ajustan al mismo conjunto de datos pero con el ruido eliminado por completo. ¡Los ajustes son geniales!
Observe también que los polinomios de orden superior no se ajustan tan bien como el orden 6, porque no hay suficientes observaciones para definirlos. Entonces, veamos qué sucede con 100 observaciones. En el cuadro a continuación, verá cómo un conjunto de datos más grande nos permitió ajustar polinomios de orden superior, logrando así un mejor ajuste.
Genial, pero el problema es que generalmente tratamos con datos ruidosos. Mire lo que sucede si ajusta lo mismo a 100 observaciones de datos muy ruidosos, vea la tabla a continuación. Volvemos al punto de partida: los polinomios de orden superior producen horribles ajustes oscilantes. Por lo tanto, aumentar el conjunto de datos no ayudó mucho a aumentar la complejidad del modelo para explicar mejor los datos. Esto es, nuevamente, porque el modelo complejo se adapta mejor no solo a la forma de la señal, sino también a la forma del ruido.
Finalmente, intentemos una regularización poco convincente sobre este problema. La tabla a continuación muestra la regularización (con diferentes penalizaciones) aplicada a la regresión polinómica de orden 9. Compare esto con el ajuste de polinomio de orden (potencia) 9 anterior: a un nivel apropiado de regularización es posible ajustar polinomios de orden superior a datos ruidosos.
Por si acaso no estaba claro: no estoy sugiriendo utilizar la regresión polinómica de esta manera. Los polinomios son buenos para los ajustes locales, por lo que un polinomio por partes puede ser una buena opción. Encajar todo el dominio con ellos es a menudo una mala idea, ya que son sensibles al ruido, como debería ser evidente en las parcelas anteriores. Si el ruido es numérico o de alguna otra fuente no es tan importante en este contexto. el ruido es ruido, y los polinomios reaccionarán apasionadamente.
fuente
En este momento, no se comprende bien cuándo y por qué ciertos métodos de regularización tienen éxito y fallan. De hecho, no se entiende en absoluto por qué el aprendizaje profundo funciona en primer lugar.
Teniendo en cuenta el hecho de que una red neuronal suficientemente profunda puede memorizar perfectamente la mayoría de los datos de entrenamiento con buen comportamiento, existen soluciones mucho más equivocadas que las adecuadas para cualquier red profunda en particular. La regularización, en términos generales, es un intento de limitar la expresividad de los modelos para estas soluciones "incorrectas", donde "incorrecto" se define por la heurística que consideramos importante para un dominio particular . Pero a menudo es difícil definir la heurística de manera que no se pierda la expresividad "correcta" con ella. Un gran ejemplo de esto son las penalizaciones L2.
Muy pocos métodos que se considerarían una forma de regularización son generalmente aplicables a todas las áreas de aplicación de LD. Los problemas de visión, PNL y predicción estructurada tienen su propio libro de cocina de técnicas de regularización que han demostrado ser efectivas experimentalmente para esos dominios particulares. Pero incluso dentro de esos dominios, estas técnicas solo son efectivas bajo ciertas circunstancias. Por ejemplo, la normalización por lotes en redes residuales profundas parece hacer que el abandono sea redundante, a pesar del hecho de que se ha demostrado que ambos mejoran independientemente la generalización.
En una nota separada, creo que el término regularización es tan amplio que hace que sea difícil entender algo al respecto. Teniendo en cuenta el hecho de que las convoluciones restringen el espacio de parámetros exponencialmente con respecto a los píxeles, podría considerar la red neuronal convolucional como una forma de regularización en la red neural de vainilla.
fuente
Una clase de teoremas que muestran por qué este problema es fundamental son los teoremas de no almuerzo gratis . Para cada problema con muestras limitadas donde una cierta regularización ayuda, hay otro problema donde esa misma regularización empeorará las cosas. Como señala Austin, generalmente encontramos que la regularización L1 / L2 es útil para muchos problemas del mundo real, pero esto es solo una observación y, debido a los teoremas de la NFL, no puede haber garantías generales.
fuente
Diría que a un nivel alto, el sesgo inductivo de los DNN (redes neuronales profundas) es poderoso pero un poco demasiado flojo o no lo suficientemente obstinado. Con eso quiero decir que los DNN capturan muchas estadísticas de superficie sobre lo que está sucediendo, pero no llegan a la estructura de alto nivel causal / compositiva más profunda. (Puede ver las convoluciones como una especificación de sesgo inductivo de un hombre pobre).
Además, se cree en la comunidad de aprendizaje automático que la mejor manera de generalizar (hacer buenas inferencias / predicciones con pocos datos) es encontrar el programa más corto que dio origen a los datos. Pero la inducción / síntesis del programa es difícil y no tenemos una buena manera de hacerlo de manera eficiente. Por lo tanto, confiamos en una aproximación cercana, que es la búsqueda de circuitos, y sabemos cómo hacerlo con la retropropagación. Aquí , Ilya Sutskever da una visión general de esa idea.
Para ilustrar la diferencia en el poder de generalización de los modelos representados como programas reales frente a modelos de aprendizaje profundo, mostraré el de este documento: la simulación como un motor de comprensión de la escena física .
Mi punto aquí es que el ajuste en C es realmente bueno, porque el modelo captura los sesgos correctos sobre cómo los humanos hacen juicios físicos. Esto es en gran parte porque modela la física real (recuerde que es un motor de física real) y puede lidiar con la incertidumbre.
Ahora la pregunta obvia es: ¿puedes hacer eso con el aprendizaje profundo? Esto es lo que Lerer et al hicieron en este trabajo: Aprendiendo la intuición física de las torres de bloques por ejemplo
Su modelo:
Su modelo en realidad es bastante bueno en la tarea en cuestión (prediciendo el número de bloques que caen, e incluso su dirección de caída)
Pero sufre dos inconvenientes principales:
Hubo un estudio comparativo realizado por el laboratorio de Tenenbaum sobre estos dos enfoques: una evaluación comparativa de simulación probabilística aproximada y redes neuronales profundas como explicaciones de la comprensión de la escena física humana .
Citando la sección de discusión:
Volviendo al punto que quiero destacar: si bien las redes neuronales son modelos potentes, parecen carecer de la capacidad de representar estructuras causales, compositivas y complejas. Y lo compensan al requerir muchos datos de entrenamiento.
Y volviendo a su pregunta: me aventuraría a que el amplio sesgo inductivo y el hecho de que las redes neuronales no modelan la causalidad / composicionalidad es la razón por la que necesitan tantos datos de entrenamiento. La regularización no es una gran solución debido a la forma en que se generalizan. Una mejor solución sería cambiar su sesgo, como lo está probando actualmente Hinton con cápsulas para modelar geometría completa / parcial, o redes de interacción para modelar relaciones.
fuente
En primer lugar, hay muchos métodos de regularización tanto en uso como en investigación activa para el aprendizaje profundo. Entonces su premisa no es del todo segura.
En cuanto a los métodos en uso, la disminución de peso es una implementación directa de una penalización L2 en los pesos a través del descenso de gradiente. Tome el gradiente de la norma al cuadrado de sus pesos y agregue un pequeño paso en esta dirección en cada iteración. La deserción también se considera una forma de regularización, que impone un tipo de estructura promediada. Esto parecería implicar algo así como una penalización L2 sobre un conjunto de redes con parámetros compartidos.
Probablemente podría aumentar el nivel de estas u otras técnicas para abordar muestras pequeñas. Pero tenga en cuenta que la regularización implica la imposición de conocimientos previos. La penalización L2 en los pesos implica un previo gaussiano para los pesos, por ejemplo. El aumento de la cantidad de regularización esencialmente establece que su conocimiento previo es cada vez más cierto y sesga su resultado hacia ese previo. Por lo tanto, puede hacerlo y se sobreajustará menos, pero la salida sesgada puede ser mala. Obviamente la solución es un mejor conocimiento previo. Para el reconocimiento de imágenes, esto significaría antecedentes mucho más estructurados con respecto a las estadísticas de su problema. El problema con esta dirección es que está imponiendo mucha experiencia en el dominio, y evitar tener que imponer la experiencia humana fue una de las razones por las que utilizó el aprendizaje profundo.
fuente
Las redes neuronales se pueden entrenar así. Si se usa la regularización L1 adecuada, gran parte de los pesos se pueden poner a cero y esto hará que las redes neuronales se comporten como la concatenación de 1 o más neuronas de regresión lineal y muchas otras neronas cero. Entonces sí, las regularizaciones L1 / L2 o similares pueden usarse para restringir el tamaño o el poder de representación de la red neuronal.
En realidad, el tamaño del modelo en sí es una especie de regularización: si hace que el modelo sea grande, significa que inyecta un conocimiento previo sobre el problema, es decir, los problemas son muy complejos, por lo que requiere un modelo que tenga un alto poder de representación. Si hace que el modelo sea pequeño, significa que inyecta conocimiento de que el problema es simple, por lo que el modelo no necesita mucha capacidad.
Y esto significa que la regularización de L2 no hará que las redes sean "escasas" como usted describió, porque la regularización de L2 inyecta conocimiento previo de que la contribución de cada neurona (peso) debe ser pequeña pero no nula. Entonces la red usaría cada una de las neuronas en lugar de usar solo un pequeño conjunto de neuronas.
fuente
La regularización es un método para incluir información previa en un modelo. Esto parecerá sencillo desde la perspectiva bayesiana, pero también es fácil de ver desde la perspectiva. Por ejemplo, elL2 La penalización + estandarización de las covariables en la regresión de cresta consiste esencialmente en utilizar la información previa de que no creemos que la estimación deba estar dominada por un pequeño número de predictores. Del mismo modo, elL1 la penalización puede verse como "apostar por la escasez de la solución" (nota al margen: esto no tiene sentido desde la perspectiva bayesiana tradicional, pero esa es otra historia ...).
Un punto clave aquí es que la regularización no siempre es útil. Más bien, regularizar hacia lo que probablemente debería ser cierto es muy útil, pero regularizar en la dirección incorrecta es claramente malo.
Ahora, cuando se trata de redes neuronales profundas, la interpretabilidad de estos modelos hace que la regularización sea un poco más difícil. Por ejemplo, si estamos tratando de identificar gatos, de antemano sabemos que "orejas puntiagudas" es una característica importante. Si estuviéramos usando algunos como regresión logística con unL2 penalización y teníamos una variable indicadora "orejas puntiagudas" en nuestro conjunto de datos, podríamos simplemente reducir la penalización en la variable orejas puntiagudas (o mejor aún, penalizar hacia un valor positivo en lugar de 0) y luego nuestro modelo necesitaría menos datos para una precisión predicciones
Pero ahora supongamos que nuestros datos son imágenes de gatos alimentados en redes neuronales profundas. Si las "orejas puntiagudas" son, de hecho, muy útiles para identificar gatos, tal vez nos gustaría reducir la penalización para darle más poder predictivo. Pero no tenemos idea de donde en la red este será representado! Todavía podemos introducir sanciones para que una pequeña parte del sistema no domine toda la red, pero fuera de eso, es difícil introducir la regularización de manera significativa.
En resumen, es extremadamente difícil incorporar información previa en un sistema que no entendemos.
fuente