La dilución (también llamada Dropout ) es una técnica de regularización para reducir el sobreajuste en redes neuronales artificiales al evitar coadaptaciones complejas en los datos de entrenamiento . Es una forma eficiente de realizar promedios de modelos con redes neuronales. [1] El término dilución se refiere al adelgazamiento de las pesas. [2] El término abandono se refiere a "abandonar" u omitir aleatoriamente unidades (tanto ocultas como visibles) durante el proceso de entrenamiento de una red neuronal. [3] [4] [1]Tanto el adelgazamiento de las ponderaciones como el abandono de unidades desencadenan el mismo tipo de regularización y, a menudo, el término abandono se utiliza cuando se hace referencia a la dilución de ponderaciones.
Tipos y usos
La dilución generalmente se divide en dilución débil y dilución fuerte . La dilución débil describe el proceso en el que la fracción finita de conexiones eliminadas es pequeña y la dilución fuerte se refiere a cuando esta fracción es grande. No hay una distinción clara sobre dónde está el límite entre dilución fuerte y débil, y a menudo la distinción no tiene sentido, aunque tiene implicaciones sobre cómo encontrar soluciones exactas.
A veces, la dilución se usa para agregar ruido de amortiguación a las entradas. En ese caso, una dilución débil se refiere a agregar una pequeña cantidad de ruido de amortiguación, mientras que una dilución fuerte se refiere a agregar una mayor cantidad de ruido de amortiguación. Ambos pueden reescribirse como variantes de dilución ponderal.
Estas técnicas también se denominan a veces poda aleatoria de pesos, pero esta suele ser una operación unidireccional no recurrente. La red se poda y luego se mantiene si es una mejora con respecto al modelo anterior. Tanto la dilución como la deserción se refieren a un proceso iterativo. La poda de ponderaciones generalmente no implica que la red continúe aprendiendo, mientras que en dilución / abandono, la red continúa aprendiendo después de que se aplica la técnica.
Red lineal generalizada
La salida de una capa de nodos lineales, en una red neuronal artificial se puede describir como
( 1 )
- - salida del nodo
- - peso real antes de la dilución, también llamado fuerza de conexión de Hebb
- - entrada del nodo
Esto se puede escribir en notación vectorial como
( 2 )
- - vector de salida
- - matriz de peso
- - vector de entrada
Las ecuaciones (1) y (2) se utilizan en las secciones siguientes.
Dilución débil
Durante la dilución débil, la fracción finita de conexiones eliminadas (los pesos) es pequeña, lo que genera una pequeña incertidumbre. Este caso límite se puede resolver exactamente con la teoría del campo medio . En dilución débil, el impacto en los pesos se puede describir como
( 3 )
- - peso diluido
- - peso real antes de la dilución
- - la probabilidad de , la probabilidad de mantener un peso
La interpretación de la probabilidad también se puede cambiar de mantener un peso a podar un peso.
En notación vectorial, esto se puede escribir como
( 4 )
donde la funcion impone la dilución anterior.
En dilución débil, solo se diluye una fracción pequeña y fija de los pesos. Cuando el número de términos de la suma llega a infinito (los pesos de cada nodo), sigue siendo infinito (la fracción es fija), por lo que se puede aplicar la teoría del campo medio . En la notación de Hertz et al. [2] esto se escribiría como
( 5 )
- la temperatura media del campo
- - un factor de escala para la temperatura a partir de la probabilidad de mantener el peso
- - peso real antes de la dilución, también llamado fuerza de conexión de Hebb
- - los estados de equilibrio estable medio
Hay algunas suposiciones para que esto se mantenga, que no se enumeran aquí. [5] [6]
Fuerte dilución
Cuando la dilución es fuerte, la fracción finita de conexiones eliminadas (los pesos) es grande, lo que genera una gran incertidumbre.
Abandonar
La deserción es un caso especial de la ecuación de ponderación anterior ( 3 ), donde la ecuación antes mencionada se ajusta para eliminar una fila completa en la matriz vectorial, y no solo las ponderaciones al azar.
( 6 )
- - la probabilidad para mantener una fila en la matriz de peso
- - fila real en la matriz de peso antes de la deserción
- - fila diluida en la matriz de peso
Debido a que el abandono elimina una fila completa de la matriz vectorial, los supuestos anteriores (no enumerados) para la dilución débil y el uso de la teoría del campo medio no son aplicables.
El proceso mediante el cual el nodo se lleva a cero, ya sea estableciendo los pesos en cero, "eliminando el nodo" o por algún otro medio, no afecta el resultado final y no crea un caso nuevo y único. Si la red neuronal es procesada por un multiplicador de matrices digital de alto rendimiento, entonces probablemente sea más efectivo llevar el valor a cero más tarde en el gráfico del proceso. Si la red es procesada por un procesador restringido, tal vez incluso un procesador neuromorfo analógico, entonces es probable que una solución más eficiente en energía sea llevar el valor a cero al principio del gráfico del proceso.
Patente de Google
Aunque ha habido ejemplos de eliminación aleatoria de conexiones entre neuronas en una red neuronal para mejorar los modelos, [2] esta técnica fue introducida por primera vez con el nombre de abandono por Geoffrey Hinton , et al. en 2012. [1] Google tiene actualmente la patente de la técnica de abandono. [7] [nota 1]
Ver también
Notas
- ^ Es muy probable que la patente no sea válida debido al arte anterior. La "deserción" se ha descrito como "dilución" en publicaciones anteriores. Lo describen Hertz, Krogh y Palmer en Introducción a la teoría de la computación neuronal (1991) ISBN 0-201-51560-1 , págs. 45, Dilución débil . El texto hace referencia a Sompolinsky The Theory of Neural Networks: The Hebb Rules and Beyond in Heidelberg Colloquium on Glossy Dynamics (1987) y Canning y Gardner Parcially Connected Models of Neural Networks en Journal of Physics (1988). Continúa describiendo una fuerte dilución. Esto es anterior al artículo de Hinton.
Referencias
- ^ a b c Hinton, Geoffrey E .; Srivastava, Nitish; Krizhevsky, Alex; Sutskever, Ilya; Salakhutdinov, Ruslan R. (2012). "Mejora de las redes neuronales mediante la prevención de la coadaptación de detectores de características". arXiv : 1207,0580 [ cs.NE ].
- ^ a b c Hertz, John; Krogh, Anders; Palmer, Richard (1991). Introducción a la Teoría de la Computación Neural . Redwood City, California: Pub de Addison-Wesley. Co. págs. 45–46. ISBN 0-201-51560-1.
- ^ "Abandono: una forma sencilla de evitar el sobreajuste de las redes neuronales" . Jmlr.org . Consultado el 26 de julio de 2015 .
- ^ Warde-Farley, David; Goodfellow, Ian J .; Courville, Aaron; Bengio, Yoshua (20 de diciembre de 2013). "Un análisis empírico de la deserción en redes lineales por partes". arXiv : 1312.6197 [ stat.ML ].
- ^ Sompolinsky, H. (1987), "La teoría de las redes neuronales: la regla de Hebb y más allá", Coloquio de Heidelberg sobre dinámica vítrea , Lecture Notes in Physics, Berlín, Heidelberg: Springer Berlin Heidelberg, 275 , págs. 485-527, Bibcode : 1987LNP ... 275..485S , doi : 10.1007 / bfb0057531 , ISBN 978-3-540-17777-7
- ^ Enlatado, A; Gardner, E (7 de agosto de 1988). "Modelos de redes neuronales parcialmente conectados". Revista de Física A: Matemática y General . 21 (15): 3275–3284. Código Bibliográfico : 1988JPhA ... 21.3275C . doi : 10.1088 / 0305-4470 / 21/15/016 . ISSN 0305-4470 .
- ^ US 9406017B2 , Hinton, Geoffrey E., "Sistema y método para abordar el sobreajuste en una red neuronal", publicado el 02 de agosto de 2016, publicado el 02 de agosto de 2016