Dropout: A Simple Way to Prevent Neural Networks from Overfitting/paper/es
| Research Paper | |
|---|---|
| Authors | Srivastava, N.; Hinton, G.; Krizhevsky, A.; Sutskever, I.; Salakhutdinov, R. |
| Year | 2014 |
| Venue | Journal of Machine Learning Research |
| Topic area | Machine Learning |
| Difficulty | Research |
| Source | View paper |
| Download PDF | |
Dropout: A Simple Way to Prevent Neural Networks from Overfitting
Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov
Departamento de Ciencias de la Computación, Universidad de Toronto. Editor: Yoshua Bengio.
Journal of Machine Learning Research 15 (2014) 1929–1958. Recibido 11/13; publicado 6/14.
Resumen
Las redes neuronales profundas con un gran número de parámetros son sistemas de aprendizaje automático muy potentes. Sin embargo, el sobreajuste es un problema serio en estas redes. Las redes grandes también son lentas de utilizar, lo que dificulta abordar el sobreajuste combinando las predicciones de muchas redes neuronales grandes en tiempo de prueba. El dropout es una técnica para abordar este problema. La idea clave es eliminar aleatoriamente unidades (junto con sus conexiones) de la red neuronal durante el entrenamiento. Esto evita que las unidades se co-adapten en exceso. Durante el entrenamiento, el dropout muestrea un número exponencial de redes «adelgazadas» distintas. En tiempo de prueba, es fácil aproximar el efecto de promediar las predicciones de todas estas redes adelgazadas usando simplemente una única red sin adelgazar con pesos más pequeños. Esto reduce significativamente el sobreajuste y aporta mejoras importantes frente a otros métodos de regularización. Mostramos que el dropout mejora el rendimiento de las redes neuronales en tareas de aprendizaje supervisado en visión, reconocimiento de voz, clasificación de documentos y biología computacional, obteniendo resultados de vanguardia en muchos conjuntos de datos de referencia.
Palabras clave: redes neuronales, regularización, combinación de modelos, aprendizaje profundo
Introducción
Las redes neuronales profundas contienen múltiples capas ocultas no lineales, lo que las convierte en modelos muy expresivos capaces de aprender relaciones muy complicadas entre sus entradas y salidas. Sin embargo, con datos de entrenamiento limitados, muchas de estas relaciones complicadas serán resultado del ruido de muestreo, por lo que existirán en el conjunto de entrenamiento pero no en los datos de prueba reales, aun cuando estos provengan de la misma distribución. Esto conduce al sobreajuste, y se han desarrollado muchos métodos para reducirlo. Entre ellos están detener el entrenamiento tan pronto como el rendimiento en un conjunto de validación empieza a empeorar, e introducir penalizaciones de pesos de distinto tipo, como la regularización L1 y L2 y el reparto suave de pesos (Nowlan and Hinton, 1992).
Con cómputo ilimitado, la mejor manera de «regularizar» un modelo de tamaño fijo es promediar las predicciones de todos los ajustes posibles de los parámetros, ponderando cada ajuste por su probabilidad posterior dada la información de entrenamiento. Esto a veces puede aproximarse bastante bien para modelos simples o pequeños (Xiong et al., 2011; Salakhutdinov and Mnih, 2008), pero quisiéramos acercarnos al rendimiento del estándar de oro bayesiano usando considerablemente menos cómputo. Proponemos hacerlo aproximando una media geométrica con pesos iguales de las predicciones de un número exponencial de modelos aprendidos que comparten parámetros.
La combinación de modelos casi siempre mejora el rendimiento de los métodos de aprendizaje automático. Con redes neuronales grandes, sin embargo, la idea obvia de promediar las salidas de muchas redes entrenadas por separado es prohibitivamente costosa. Combinar varios modelos resulta más útil cuando los modelos individuales son distintos entre sí, y para que los modelos de redes neuronales sean distintos deben tener arquitecturas diferentes o haber sido entrenados con datos diferentes. Entrenar muchas arquitecturas distintas es difícil porque encontrar los hiperparámetros óptimos para cada arquitectura es una tarea ardua y entrenar cada red grande exige mucho cómputo. Además, las redes grandes suelen requerir grandes cantidades de datos de entrenamiento, y puede no haber suficientes para entrenar redes diferentes con subconjuntos diferentes de los datos. Incluso si fuera posible entrenar muchas redes grandes diferentes, usarlas todas en tiempo de prueba resulta inviable en aplicaciones en las que es importante responder rápidamente.
El dropout es una técnica que aborda ambos problemas. Evita el sobreajuste y proporciona una manera de combinar de forma aproximada y eficiente exponencialmente muchas arquitecturas de redes neuronales distintas. El término «dropout» se refiere a desactivar unidades (ocultas y visibles) en una red neuronal. Por desactivar una unidad entendemos eliminarla temporalmente de la red, junto con todas sus conexiones entrantes y salientes. La elección de qué unidades desactivar es aleatoria. En el caso más simple, cada unidad se conserva con probabilidad fija $ p $ independientemente de las demás, donde $ p $ puede elegirse mediante un conjunto de validación o, simplemente, fijarse en 0,5, valor que parece ser cercano al óptimo en una amplia gama de redes y tareas. Sin embargo, para las unidades de entrada, la probabilidad de retención óptima suele estar más cerca de 1 que de 0,5.
Aplicar dropout a una red neuronal equivale a muestrear de ella una red «adelgazada». La red adelgazada está formada por todas las unidades que sobrevivieron al dropout. Una red neuronal con $ n $ unidades puede verse como una colección de $ 2^n $ posibles redes adelgazadas. Todas estas redes comparten pesos, de modo que el número total de parámetros sigue siendo $ O(n^2) $, o menor. En cada presentación de cada caso de entrenamiento se muestrea y entrena una nueva red adelgazada. Por tanto, entrenar una red neuronal con dropout puede verse como entrenar una colección de $ 2^n $ redes adelgazadas con un fuerte reparto de pesos, donde cada red adelgazada se entrena muy raramente, si acaso.
En tiempo de prueba no es viable promediar explícitamente las predicciones de exponencialmente muchos modelos adelgazados. Sin embargo, en la práctica funciona bien un método aproximado de promediado muy sencillo. La idea consiste en utilizar una única red neuronal en tiempo de prueba sin dropout. Los pesos de esta red son versiones reducidas de los pesos entrenados. Si una unidad se conserva con probabilidad $ p $ durante el entrenamiento, los pesos salientes de esa unidad se multiplican por $ p $ en tiempo de prueba. Esto garantiza que, para cualquier unidad oculta, la salida esperada (bajo la distribución usada para descartar unidades en el entrenamiento) coincida con la salida real en tiempo de prueba. Mediante este escalado, $ 2^n $ redes con pesos compartidos pueden combinarse en una única red neuronal para usar en tiempo de prueba. Encontramos que entrenar una red con dropout y usar este método de promediado aproximado en tiempo de prueba conduce a un error de generalización significativamente menor en una amplia variedad de problemas de clasificación, en comparación con el entrenamiento con otros métodos de regularización.
La idea del dropout no se limita a las redes neuronales feed-forward. Puede aplicarse de forma más general a modelos gráficos como las máquinas de Boltzmann. En este artículo presentamos el modelo de máquina de Boltzmann restringida con dropout y lo comparamos con las máquinas de Boltzmann restringidas (RBM) estándar. Nuestros experimentos muestran que las RBM con dropout son mejores que las RBM estándar en ciertos aspectos.
Motivación
Una motivación para el dropout proviene de una teoría sobre el papel del sexo en la evolución (Livnat et al., 2010). La reproducción sexual implica tomar la mitad de los genes de un progenitor y la mitad del otro, añadir una pequeña cantidad de mutación aleatoria y combinarlos para producir un descendiente. La alternativa asexual consiste en crear un descendiente con una copia ligeramente mutada de los genes del progenitor. Parece plausible que la reproducción asexual sea una forma mejor de optimizar la aptitud individual, porque un buen conjunto de genes que han llegado a funcionar bien juntos puede transmitirse directamente al descendiente. Por otro lado, es probable que la reproducción sexual rompa estos conjuntos co-adaptados de genes, especialmente si son grandes y, intuitivamente, esto debería disminuir la aptitud de los organismos que ya han desarrollado co-adaptaciones complicadas. Sin embargo, la reproducción sexual es la forma en que evolucionaron la mayoría de los organismos avanzados.
Una posible explicación de la superioridad de la reproducción sexual es que, a largo plazo, el criterio de selección natural puede no ser la aptitud individual sino más bien la mezclabilidad de los genes. La capacidad de un conjunto de genes para funcionar bien con otro conjunto aleatorio de genes los hace más robustos. Como un gen no puede confiar en que un gran conjunto de socios esté siempre presente, debe aprender a hacer algo útil por sí mismo o en colaboración con un pequeño número de otros genes. Según esta teoría, el papel de la reproducción sexual no es solo permitir que nuevos genes útiles se difundan en la población, sino también facilitar este proceso reduciendo las co-adaptaciones complejas que disminuirían la posibilidad de que un nuevo gen mejore la aptitud de un individuo. De manera similar, cada unidad oculta de una red neuronal entrenada con dropout debe aprender a trabajar con una muestra elegida al azar de otras unidades. Esto debería hacer a cada unidad oculta más robusta y empujarla a crear características útiles por sí sola, sin depender de otras unidades ocultas para corregir sus errores. Sin embargo, las unidades ocultas dentro de una capa seguirán aprendiendo a hacer cosas distintas entre sí.
Una motivación estrechamente relacionada, aunque ligeramente distinta, para el dropout proviene de pensar en conspiraciones exitosas. Diez conspiraciones, cada una con cinco personas, probablemente sean una mejor manera de causar caos que una gran conspiración que requiere que cincuenta personas representen correctamente sus papeles. Si las condiciones no cambian y hay tiempo suficiente para ensayar, una gran conspiración puede funcionar bien, pero con condiciones no estacionarias, cuanto más pequeña sea la conspiración, mayor es su probabilidad de seguir funcionando. Las co-adaptaciones complejas pueden entrenarse para funcionar bien sobre un conjunto de entrenamiento, pero ante datos de prueba nuevos es mucho más probable que fallen que múltiples co-adaptaciones más simples que logren lo mismo.
Trabajo relacionado
El dropout puede interpretarse como una manera de regularizar una red neuronal añadiendo ruido a sus unidades ocultas. La idea de añadir ruido a los estados de las unidades ya se había utilizado en el contexto de los autoencoders denoising (DAEs) por Vincent et al. (2008, 2010), donde se añade ruido a las unidades de entrada de un autoencoder y la red se entrena para reconstruir la entrada sin ruido. Nuestro trabajo amplía esta idea mostrando que el dropout puede aplicarse eficazmente también en las capas ocultas y que puede interpretarse como una forma de promediado de modelos. También mostramos que añadir ruido no solo es útil para el aprendizaje no supervisado de características, sino que también puede extenderse a problemas de aprendizaje supervisado. De hecho, nuestro método puede aplicarse a otras arquitecturas basadas en neuronas, como las máquinas de Boltzmann. Mientras que un 5% de ruido suele funcionar mejor para los DAEs, descubrimos que nuestro procedimiento de escalado de pesos aplicado en tiempo de prueba nos permite usar niveles de ruido mucho mayores. A menudo se encontró óptimo descartar un 20% de las unidades de entrada y un 50% de las unidades ocultas.
Dado que el dropout puede verse como una técnica estocástica de regularización, es natural considerar su contraparte determinista, obtenida marginalizando el ruido. En este artículo mostramos que, en casos sencillos, el dropout puede marginalizarse analíticamente para obtener métodos deterministas de regularización. Recientemente, van der Maaten et al. (2013) también exploraron regularizadores deterministas correspondientes a distintas distribuciones de ruido de la familia exponencial, incluido el dropout (al que llaman «blankout noise»). Sin embargo, aplican el ruido a las entradas y solo exploran modelos sin capas ocultas. Wang and Manning (2013) propusieron un método para acelerar el dropout marginalizando su ruido. Chen et al. (2012) exploraron la marginalización en el contexto de los autoencoders denoising.
En el dropout minimizamos la función de pérdida estocásticamente bajo una distribución de ruido. Esto puede verse como minimizar una función de pérdida esperada. Trabajos previos de Globerson and Roweis (2006); Dekel et al. (2010) exploraron un escenario alternativo en el que la pérdida se minimiza cuando un adversario elige qué unidades descartar. Aquí, en lugar de una distribución de ruido, se fija el número máximo de unidades que pueden descartarse. Sin embargo, estos trabajos tampoco exploran modelos con unidades ocultas.
Descripción del modelo
Esta sección describe el modelo de red neuronal con dropout. Considere una red neuronal con $ L $ capas ocultas. Sea $ l \in \{1, \dots, L\} $ el índice de las capas ocultas de la red. Sea $ z^{(l)} $ el vector de entradas de la capa $ l $, $ y^{(l)} $ el vector de salidas de la capa $ l $ ($ y^{(0)} = x $ es la entrada). $ W^{(l)} $ y $ b^{(l)} $ son los pesos y sesgos en la capa $ l $. La operación de pasada hacia adelante de una red neuronal estándar puede describirse como (para $ l \in \{0, \dots, L-1\} $ y cualquier unidad oculta $ i $):
- $ z^{(l+1)}_i = w^{(l+1)}_i\, y^l + b^{(l+1)}_i, \qquad y^{(l+1)}_i = f(z^{(l+1)}_i), $
donde $ f $ es cualquier función de activación, por ejemplo, $ f(x) = 1/(1 + \exp(-x)) $.
Con dropout, la operación de pasada hacia adelante se convierte en:
- $ r^{(l)}_j \sim \mathrm{Bernoulli}(p), \qquad \tilde{y}^{(l)} = r^{(l)} \ast y^{(l)}, $
- $ z^{(l+1)}_i = w^{(l+1)}_i\, \tilde{y}^l + b^{(l+1)}_i, \qquad y^{(l+1)}_i = f(z^{(l+1)}_i). $
Aquí $ \ast $ denota el producto elemento a elemento. Para cualquier capa $ l $, $ r^{(l)} $ es un vector de variables aleatorias Bernoulli independientes, cada una con probabilidad $ p $ de ser 1. Este vector se muestrea y se multiplica elemento a elemento con las salidas de esa capa, $ y^{(l)} $, para crear las salidas adelgazadas $ \tilde{y}^{(l)} $. Estas salidas adelgazadas se utilizan como entrada de la siguiente capa. Este proceso se aplica en cada capa. Equivale a muestrear una sub-red de una red mayor. Para el aprendizaje, las derivadas de la función de pérdida se retropropagan a través de la sub-red. En tiempo de prueba, los pesos se escalan como $ W^{(l)}_{\text{test}} = p\, W^{(l)} $. La red neuronal resultante se utiliza sin dropout.
Aprendizaje de redes con dropout
Esta sección describe un procedimiento para entrenar redes neuronales con dropout.
Retropropagación
Las redes neuronales con dropout pueden entrenarse usando descenso por gradiente estocástico de manera similar a las redes neuronales estándar. La única diferencia es que para cada caso de entrenamiento de un mini-batch, muestreamos una red adelgazada eliminando unidades. La pasada hacia adelante y la retropropagación para ese caso de entrenamiento se realizan únicamente sobre esta red adelgazada. Los gradientes de cada parámetro se promedian sobre los casos de entrenamiento de cada mini-batch. Cualquier caso de entrenamiento que no use un parámetro contribuye con un gradiente cero para ese parámetro. Se han usado muchos métodos para mejorar el descenso por gradiente estocástico, como el momentum, el recocido de la tasa de aprendizaje y el decaimiento de pesos L2. Estos resultaron útiles también para las redes neuronales con dropout.
Se encontró que una forma particular de regularización resulta especialmente útil para el dropout: restringir la norma del vector de pesos entrantes en cada unidad oculta para que esté acotada superiormente por una constante fija $ c $. En otras palabras, si $ w $ representa el vector de pesos incidentes en cualquier unidad oculta, la red neuronal se optimiza bajo la restricción $ \|w\|_2 \leq c $. Esta restricción se imponía durante la optimización proyectando $ w $ sobre la superficie de una bola de radio $ c $ cuando $ w $ se salía de ella. Esto también se denomina regularización de norma máxima, ya que implica que el valor máximo que puede tomar la norma de cualquier peso es $ c $. La constante $ c $ es un hiperparámetro ajustable, que se determina mediante un conjunto de validación. La regularización de norma máxima se ha utilizado previamente en el contexto del filtrado colaborativo (Srebro and Shraibman, 2005). Suele mejorar el rendimiento del entrenamiento por descenso por gradiente estocástico de redes neuronales profundas, incluso cuando no se usa dropout.
Aunque el dropout por sí solo aporta mejoras significativas, usar dropout junto con regularización de norma máxima, tasas de aprendizaje grandes con decaimiento y un momentum alto proporciona un impulso considerable respecto al uso aislado de dropout. Una posible justificación es que restringir los vectores de pesos a una bola de radio fijo permite usar tasas de aprendizaje muy elevadas sin que los pesos se disparen. El ruido aportado por el dropout permite entonces al proceso de optimización explorar regiones del espacio de pesos a las que de otro modo sería difícil llegar. Conforme la tasa de aprendizaje decae, la optimización da pasos más cortos, explorando menos y asentándose finalmente en un mínimo.
Preentrenamiento no supervisado
Las redes neuronales pueden preentrenarse usando pilas de RBMs (Hinton and Salakhutdinov, 2006), autoencoders (Vincent et al., 2010) o máquinas de Boltzmann profundas (Salakhutdinov and Hinton, 2009). El preentrenamiento es una manera eficaz de aprovechar datos sin etiquetar. Se ha demostrado que el preentrenamiento seguido de ajuste fino con retropropagación produce mejoras de rendimiento significativas frente al ajuste fino desde inicializaciones aleatorias en ciertos casos.
El dropout puede aplicarse para realizar el ajuste fino de redes que han sido preentrenadas con estas técnicas. El procedimiento de preentrenamiento se mantiene igual. Los pesos obtenidos en el preentrenamiento deben escalarse en un factor de $ 1/p $. Esto asegura que, para cada unidad, la salida esperada bajo dropout aleatorio sea la misma que la salida durante el preentrenamiento. Inicialmente nos preocupaba que la naturaleza estocástica del dropout pudiera borrar la información de los pesos preentrenados. Esto sí ocurría cuando las tasas de aprendizaje usadas durante el ajuste fino eran comparables a las mejores tasas de aprendizaje para redes inicializadas aleatoriamente. Sin embargo, cuando se elegían tasas de aprendizaje más pequeñas, la información de los pesos preentrenados parecía conservarse y conseguíamos mejoras en el error de generalización final respecto a no usar dropout en el ajuste fino.
Resultados experimentales
Entrenamos redes neuronales con dropout para problemas de clasificación en conjuntos de datos de distintos dominios. Encontramos que el dropout mejoraba el rendimiento de generalización en todos los conjuntos de datos en comparación con redes neuronales que no lo usaban. Los conjuntos de datos son:
- MNIST: un conjunto de datos de juguete estándar de dígitos manuscritos.
- TIMIT: un benchmark estándar de habla para reconocimiento de voz limpia.
- CIFAR-10 y CIFAR-100: imágenes naturales pequeñas (Krizhevsky, 2009).
- Conjunto de datos Street View House Numbers (SVHN): imágenes de números de casa recopiladas por Google Street View (Netzer et al., 2011).
- ImageNet: una gran colección de imágenes naturales.
- Reuters-RCV1: una colección de artículos de noticias de Reuters.
- Conjunto de datos de empalme alternativo: características de ARN para predecir el empalme alternativo de genes (Xiong et al., 2011).
Elegimos un conjunto diverso de conjuntos de datos para demostrar que el dropout es una técnica general para mejorar las redes neuronales y no es específica de un dominio de aplicación concreto.
Resultados en conjuntos de datos de imágenes
Utilizamos cinco conjuntos de datos de imágenes para evaluar el dropout: MNIST, SVHN, CIFAR-10, CIFAR-100 e ImageNet. Estos conjuntos incluyen distintos tipos de imágenes y tamaños de conjunto de entrenamiento. Los modelos que alcanzan resultados de vanguardia en todos estos conjuntos de datos utilizan dropout.
MNIST
El conjunto de datos MNIST consiste en imágenes de dígitos manuscritos de 28 × 28 píxeles. La tarea consiste en clasificar las imágenes en 10 clases de dígitos. Las redes neuronales con mejor rendimiento en el escenario invariante a permutaciones que no usan dropout ni preentrenamiento no supervisado alcanzan un error de aproximadamente 1,60% (Simard et al., 2003). Con dropout, el error se reduce al 1,35%. Sustituir las unidades logísticas por unidades lineales rectificadas (ReLUs) (Jarrett et al., 2009) reduce además el error al 1,25%. Añadir regularización de norma máxima lo reduce de nuevo al 1,06%. Aumentar el tamaño de la red conduce a mejores resultados. Una red neuronal con 2 capas y 8192 unidades por capa baja al 0,95% de error. Nótese que esta red tiene más de 65 millones de parámetros y se entrena con un conjunto de datos de tamaño 60 000. Entrenar una red de este tamaño para que dé un buen error de generalización es muy difícil con métodos estándar de regularización y parada temprana. El dropout, en cambio, evita el sobreajuste incluso en este caso. Ni siquiera necesita parada temprana. Goodfellow et al. (2013) mostraron que los resultados pueden mejorarse aún más al 0,94% sustituyendo las unidades ReLU por unidades maxout. Todas las redes con dropout usan $ p = 0,5 $ para las unidades ocultas y $ p = 0,8 $ para las unidades de entrada.
Las redes con dropout preentrenadas con pilas de RBMs y máquinas de Boltzmann profundas también aportan mejoras. Las redes con dropout preentrenadas con DBM alcanzan un error de prueba del 0,79%, el mejor rendimiento jamás reportado para el escenario invariante a permutaciones.
Para probar la robustez del dropout se realizaron experimentos de clasificación con redes de muchas arquitecturas distintas, manteniendo fijos todos los hiperparámetros, incluido $ p $. Las mismas arquitecturas entrenadas con y sin dropout muestran errores de prueba drásticamente distintos, como se ve por los dos clusters separados de trayectorias. El dropout proporciona una enorme mejora en todas las arquitecturas, sin usar hiperparámetros ajustados específicamente para cada una.
Street View House Numbers
El conjunto de datos Street View House Numbers (SVHN) (Netzer et al., 2011) consiste en imágenes en color de números de casa recopiladas por Google Street View. La parte del conjunto que utilizamos en nuestros experimentos consta de imágenes en color de 32 × 32 aproximadamente centradas en un dígito de un número de casa. La tarea es identificar ese dígito.
Para este conjunto de datos aplicamos dropout a redes neuronales convolucionales (LeCun et al., 1989). La mejor arquitectura que encontramos tiene tres capas convolucionales seguidas de 2 capas ocultas totalmente conectadas. Todas las unidades ocultas son ReLUs. Cada capa convolucional iba seguida de una capa de max-pooling. El dropout se aplicó a todas las capas de la red con probabilidad de retención de la unidad oculta $ p = (0,9, 0,75, 0,75, 0,5, 0,5, 0,5) $ para las distintas capas de la red (de la entrada a las capas convolucionales y, finalmente, a las capas totalmente conectadas). Se utilizó regularización de norma máxima para los pesos, tanto en las capas convolucionales como en las totalmente conectadas. Encontramos que las redes convolucionales superan a otros métodos. Las mejores redes convolucionales que no usan dropout alcanzan una tasa de error del 3,95%. Añadir dropout únicamente en las capas totalmente conectadas reduce el error al 3,02%. Añadir dropout también en las capas convolucionales lo reduce además al 2,55%. Pueden obtenerse aún más ganancias usando unidades maxout.
La ganancia adicional de rendimiento obtenida al añadir dropout en las capas convolucionales (del 3,02% al 2,55%) merece destacarse. Cabría haber supuesto que, dado que las capas convolucionales no tienen muchos parámetros, el sobreajuste no es un problema y, por tanto, el dropout no tendría mucho efecto. Sin embargo, el dropout en las capas inferiores sigue ayudando porque proporciona entradas ruidosas a las capas superiores totalmente conectadas, evitando que estas se sobreajusten.
CIFAR-10 y CIFAR-100
Los conjuntos de datos CIFAR-10 y CIFAR-100 consisten en imágenes en color de 32 × 32 extraídas de 10 y 100 categorías, respectivamente. Sin ningún aumento de datos, Snoek et al. (2012) usaron optimización bayesiana de hiperparámetros para obtener una tasa de error del 14,98% en CIFAR-10. Usar dropout en las capas totalmente conectadas la reduce al 14,32% y añadir dropout en cada capa la reduce además al 12,61%. Goodfellow et al. (2013) mostraron que el error se reduce aún más al 11,68% sustituyendo las unidades ReLU por unidades maxout. En CIFAR-100, el dropout reduce el error del 43,48% al 37,20%, lo que supone una mejora enorme. No se usó aumento de datos en ninguno de los dos conjuntos (aparte del dropout en la entrada).
ImageNet
ImageNet es un conjunto de datos de más de 15 millones de imágenes etiquetadas de alta resolución pertenecientes a aproximadamente 22 000 categorías. Desde 2010, como parte del Pascal Visual Object Challenge, se viene celebrando una competición anual llamada ImageNet Large-Scale Visual Recognition Challenge (ILSVRC). En esta competición se utiliza un subconjunto de ImageNet con aproximadamente 1000 imágenes en cada una de 1000 categorías. Como el número de categorías es bastante grande, se acostumbra a reportar dos tasas de error: top-1 y top-5, donde la tasa de error top-5 es la fracción de imágenes de prueba para las que la etiqueta correcta no está entre las cinco etiquetas consideradas más probables por el modelo.
ILSVRC-2010 es la única versión de ILSVRC para la que están disponibles las etiquetas del conjunto de prueba, por lo que la mayor parte de nuestros experimentos se realizaron sobre este conjunto de datos. Las redes convolucionales con dropout superan a otros métodos por un amplio margen. La arquitectura y los detalles de implementación se describen en detalle en Krizhevsky et al. (2012). Nuestro modelo basado en redes convolucionales y dropout ganó la competición ILSVRC-2012. Mientras que los mejores métodos basados en características de visión estándar alcanzan una tasa de error top-5 de aproximadamente el 26%, las redes convolucionales con dropout alcanzan un error de prueba en torno al 16%, una diferencia asombrosa.
Resultados en TIMIT
A continuación aplicamos el dropout a una tarea de reconocimiento de voz. Utilizamos el conjunto de datos TIMIT, que consiste en grabaciones de 680 hablantes que cubren 8 dialectos principales del inglés americano leyendo diez frases fonéticamente ricas en un entorno controlado y libre de ruido. Las redes neuronales con dropout se entrenaron sobre ventanas de 21 frames de log-filter bank para predecir la etiqueta del frame central. No se realizaron operaciones dependientes del hablante. Una red de 6 capas da una tasa de error de fonemas del 23,4%. El dropout la mejora hasta el 21,8%. También entrenamos redes con dropout partiendo de pesos preentrenados. Una red de 4 capas preentrenada con una pila de RBMs alcanza una tasa de error de fonemas del 22,7%. Con dropout, esta se reduce al 19,7%. De forma similar, para una red de 8 capas el error se reduce del 20,5% al 19,7%.
Resultados en un conjunto de datos de texto
Para probar la utilidad del dropout en el dominio del texto utilizamos redes con dropout para entrenar un clasificador de documentos. Empleamos un subconjunto del conjunto Reuters-RCV1, una colección de más de 800 000 artículos de noticias de Reuters. Estos artículos cubren una variedad de temas. La tarea consiste en tomar una representación bag-of-words de un documento y clasificarlo en 50 temas disjuntos. Nuestra mejor red neuronal sin dropout obtuvo una tasa de error del 31,05%. Añadir dropout redujo el error al 29,62%. Encontramos que la mejora era mucho menor que para los conjuntos de datos de visión y voz.
Comparación con redes neuronales bayesianas
El dropout puede verse como una manera de hacer un promediado con pesos iguales de exponencialmente muchos modelos con pesos compartidos. Por otro lado, las redes neuronales bayesianas (Neal, 1996) son la forma adecuada de hacer un promediado de modelos sobre el espacio de estructuras y parámetros de redes neuronales. En el dropout, cada modelo se pondera por igual, mientras que en una red neuronal bayesiana cada modelo se pondera teniendo en cuenta el prior y lo bien que el modelo se ajusta a los datos, lo que es un enfoque más correcto. Las redes neuronales bayesianas son extremadamente útiles para resolver problemas en dominios donde los datos son escasos, como el diagnóstico médico, la genética, el descubrimiento de fármacos y otras aplicaciones de biología computacional. Sin embargo, las redes neuronales bayesianas son lentas de entrenar y difíciles de escalar a tamaños de red muy grandes. Además, obtener predicciones de muchas redes grandes en tiempo de prueba es costoso. Las redes neuronales con dropout, en cambio, son mucho más rápidas de entrenar y de usar en tiempo de prueba.
El conjunto de datos que utilizamos (Xiong et al., 2011) proviene del dominio de la genética. La tarea consiste en predecir la aparición del empalme alternativo a partir de características de ARN. El empalme alternativo es una causa significativa de la diversidad celular en los tejidos de mamíferos. Predecir la aparición del empalme alternativo en ciertos tejidos bajo distintas condiciones es importante para entender muchas enfermedades humanas. Dadas las características de ARN, la tarea es predecir la probabilidad de tres eventos relacionados con el empalme que interesan a los biólogos. La métrica de evaluación es Code Quality, que mide la divergencia KL negativa entre las distribuciones de probabilidad objetivo y predicha (más alto es mejor). Como era de esperar, encontramos que las redes neuronales bayesianas funcionan mejor que el dropout. Sin embargo, el dropout mejora significativamente respecto a las redes neuronales estándar y supera a todos los demás métodos. El reto en este conjunto de datos es prevenir el sobreajuste, ya que el tamaño del conjunto de entrenamiento es pequeño. Con dropout fuimos capaces de prevenir el sobreajuste sin necesidad de hacer reducción de dimensionalidad. Las redes con dropout son muy grandes (miles de unidades ocultas) en comparación con unas pocas decenas de unidades de la red bayesiana. Esto muestra que el dropout tiene un fuerte efecto regularizador.
Comparación con regularizadores estándar
Se han propuesto varios métodos de regularización para evitar el sobreajuste en redes neuronales. Entre ellos están el decaimiento de pesos L2 (más generalmente, la regularización de Tikhonov (Tikhonov, 1943)), el lasso (Tibshirani, 1996), la KL-sparsity y la regularización de norma máxima. El dropout puede verse como otra manera de regularizar redes neuronales. Comparamos el dropout con algunos de estos métodos de regularización utilizando el conjunto de datos MNIST. Se entrenó la misma arquitectura de red (784-1024-1024-2048-10) con ReLUs usando descenso por gradiente estocástico con distintas regularizaciones. Los valores de los hiperparámetros asociados a cada tipo de regularización (constantes de decaimiento, dispersión objetivo, tasa de dropout, cota superior de norma máxima) se obtuvieron mediante un conjunto de validación. Encontramos que el dropout combinado con la regularización de norma máxima da el menor error de generalización.
Características destacadas
Los experimentos descritos en la sección anterior aportan pruebas sólidas de que el dropout es una técnica útil para mejorar redes neuronales. En esta sección examinamos de cerca cómo afecta el dropout a una red neuronal. Analizamos el efecto del dropout sobre la calidad de las características producidas. Vemos cómo el dropout afecta a la dispersión de las activaciones de las unidades ocultas. También vemos cómo varían las ventajas del dropout con la probabilidad de retención de unidades, el tamaño de la red y el tamaño del conjunto de entrenamiento. Estas observaciones aportan cierta intuición de por qué el dropout funciona tan bien.
Efecto sobre las características
En una red neuronal estándar, la derivada que recibe cada parámetro le indica cómo debería cambiar para que la función de pérdida final se reduzca, dado lo que están haciendo todas las demás unidades. Por tanto, las unidades pueden cambiar de tal manera que arreglen los errores de las demás. Esto puede llevar a co-adaptaciones complejas. A su vez, esto produce sobreajuste, porque estas co-adaptaciones no generalizan a datos no vistos. Hipotetizamos que, para cada unidad oculta, el dropout impide la co-adaptación al hacer poco fiable la presencia de las demás unidades ocultas. Por tanto, una unidad oculta no puede confiar en otras unidades específicas para corregir sus errores. Debe funcionar bien en una amplia variedad de contextos diferentes proporcionados por las demás unidades ocultas. Para observar este efecto directamente examinamos las características de primer nivel aprendidas por redes neuronales entrenadas en tareas visuales con y sin dropout.
Las características aprendidas por un autoencoder en MNIST con una única capa oculta de 256 unidades lineales rectificadas sin dropout muestran co-adaptación: cada unidad oculta por sí sola no parece detectar una característica significativa. Con dropout en la capa oculta con $ p = 0,5 $, las unidades ocultas parecen detectar bordes, trazos y manchas en distintas partes de la imagen. Esto demuestra que el dropout efectivamente rompe las co-adaptaciones, lo que probablemente es la principal razón por la que conduce a errores de generalización menores.
Efecto sobre la dispersión
Encontramos que, como efecto colateral del dropout, las activaciones de las unidades ocultas se vuelven dispersas, incluso cuando no hay regularizadores que induzcan dispersión. Por tanto, el dropout conduce automáticamente a representaciones dispersas. Para observar este efecto, tomamos los autoencoders entrenados en la sección anterior y examinamos la dispersión de las activaciones de las unidades ocultas en un mini-batch aleatorio del conjunto de prueba. En un buen modelo disperso solo debería haber unas pocas unidades altamente activadas para cualquier caso de datos. Además, la activación media de cualquier unidad a lo largo de los casos de datos debería ser baja. Comparando los histogramas de activaciones, vemos que en la red con dropout hay menos unidades ocultas con activaciones altas que en la red sin dropout. Las activaciones medias también son menores en la red con dropout. La activación media global de las unidades ocultas se acerca a 2,0 en el autoencoder sin dropout, pero baja a alrededor de 0,7 cuando se usa dropout.
Efecto de la tasa de dropout
El dropout tiene un hiperparámetro ajustable $ p $ (la probabilidad de retener una unidad en la red). Exploramos el efecto de variar este hiperparámetro. La comparación se hace en dos situaciones:
- El número de unidades ocultas se mantiene constante.
- El número de unidades ocultas se cambia de modo que el número esperado de unidades ocultas que serán retenidas tras el dropout se mantiene constante.
En el primer caso, entrenamos la misma arquitectura de red con distintas cantidades de dropout. Usamos una arquitectura 784-2048-2048-2048-10. No se utilizó dropout en la entrada. Si se mantiene constante la arquitectura, un valor pequeño de $ p $ implica que muy pocas unidades se activarán durante el entrenamiento. Puede verse que esto conduce a infraajuste, ya que el error de entrenamiento también es alto. A medida que $ p $ aumenta, el error disminuye. Se mantiene plano cuando $ 0,4 \leq p \leq 0,8 $ y luego aumenta a medida que $ p $ se acerca a 1.
Otro escenario interesante es el segundo caso, en el que la cantidad $ pn $ se mantiene constante, donde $ n $ es el número de unidades ocultas en una capa concreta. Esto significa que las redes con $ p $ pequeño tendrán un gran número de unidades ocultas. Por tanto, tras aplicar dropout, el número esperado de unidades presentes será el mismo en las distintas arquitecturas. No obstante, las redes de prueba serán de tamaños distintos. En nuestros experimentos fijamos $ pn = 256 $ para las dos primeras capas ocultas y $ pn = 512 $ para la última capa oculta. La magnitud de los errores para valores pequeños de $ p $ se ha reducido mucho respecto al escenario anterior (para $ p = 0,1 $ bajó del 2,7% al 1,7%). Los valores de $ p $ cercanos a 0,6 parecen funcionar mejor para esta elección de $ pn $, pero nuestro valor por defecto habitual de 0,5 está cerca del óptimo.
Efecto del tamaño del conjunto de datos
Una prueba para un buen regularizador es que debe permitir obtener un buen error de generalización a partir de modelos con un gran número de parámetros entrenados sobre conjuntos de datos pequeños. Esta sección explora el efecto de variar el tamaño del conjunto de datos cuando se utiliza dropout con redes feed-forward. Las redes neuronales enormes entrenadas de la manera estándar se sobreajustan masivamente sobre conjuntos de datos pequeños. Para ver si el dropout puede ayudar, realizamos experimentos de clasificación en MNIST y variamos la cantidad de datos proporcionados a la red. A la red se le dieron conjuntos de tamaño 100, 500, 1K, 5K, 10K y 50K elegidos aleatoriamente del conjunto de entrenamiento de MNIST. Se utilizó la misma arquitectura de red (784-1024-1024-2048-10) para todos los conjuntos de datos. Se aplicó dropout con $ p = 0,5 $ en todas las capas ocultas y $ p = 0,8 $ en la capa de entrada. Puede observarse que para conjuntos de datos extremadamente pequeños (100, 500), el dropout no aporta ninguna mejora. El modelo tiene parámetros suficientes para sobreajustarse a los datos de entrenamiento incluso con todo el ruido procedente del dropout. A medida que aumenta el tamaño del conjunto de datos, la ganancia del dropout crece hasta cierto punto y luego disminuye. Esto sugiere que para una arquitectura y tasa de dropout dadas existe un «punto óptimo» correspondiente a una cantidad de datos lo bastante grande como para no ser memorizada a pesar del ruido, pero no tan grande como para que el sobreajuste deje de ser un problema.
Promediado de modelos Monte-Carlo frente a escalado de pesos
El procedimiento eficiente en tiempo de prueba que proponemos consiste en hacer una combinación aproximada de modelos escalando hacia abajo los pesos de la red neuronal entrenada. Una manera más costosa pero más correcta de promediar los modelos es muestrear $ k $ redes neuronales usando dropout para cada caso de prueba y promediar sus predicciones. Cuando $ k \to \infty $, este promedio Monte-Carlo de modelos se aproxima al verdadero promedio de modelos. Es interesante ver empíricamente cuántas muestras $ k $ son necesarias para igualar el rendimiento del método de promediado aproximado.
Volvemos a usar el conjunto de datos MNIST y realizamos la clasificación promediando las predicciones de $ k $ redes neuronales muestreadas aleatoriamente. Puede verse que en torno a $ k = 50 $, el método Monte-Carlo iguala al método aproximado. A partir de ahí, el método Monte-Carlo es ligeramente mejor que el aproximado, pero claramente dentro de una desviación estándar de él. Esto sugiere que el método de escalado de pesos es una aproximación bastante buena del verdadero promedio de modelos.
Máquinas de Boltzmann restringidas con dropout
Además de las redes neuronales feed-forward, el dropout también puede aplicarse a las máquinas de Boltzmann restringidas (RBM). En esta sección describimos formalmente este modelo y mostramos algunos resultados que ilustran sus propiedades clave.
Descripción del modelo
Considere una RBM con unidades visibles $ v \in \{0, 1\}^D $ y unidades ocultas $ h \in \{0, 1\}^F $. Define la siguiente distribución de probabilidad:
- $ P(h, v;\, \theta) = \frac{1}{Z(\theta)} \exp(v^\top W h + a^\top h + b^\top v). $
Donde $ \theta = \{W, a, b\} $ representa los parámetros del modelo y $ Z $ es la función de partición. Las RBMs con dropout son RBMs ampliadas con un vector de variables aleatorias binarias $ r \in \{0, 1\}^F $. Cada variable aleatoria $ r_j $ toma el valor 1 con probabilidad $ p $, independientemente de las demás. Si $ r_j $ toma el valor 1, la unidad oculta $ h_j $ se conserva; en caso contrario, se elimina del modelo. La distribución conjunta definida por una RBM con dropout puede expresarse como:
- $ P(r, h, v;\, p, \theta) = P(r;\, p)\, P(h, v\mid r;\, \theta), $
- $ P(r;\, p) = \prod_{j=1}^{F} p^{r_j} (1 - p)^{1 - r_j}, $
- $ P(h, v\mid r;\, \theta) = \frac{1}{Z'(\theta, r)} \exp(v^\top W h + a^\top h + b^\top v) \prod_{j=1}^{F} g(h_j, r_j), $
- $ g(h_j, r_j) = \mathbf{1}(r_j = 1) + \mathbf{1}(r_j = 0)\, \mathbf{1}(h_j = 0). $
$ Z'(\theta, r) $ es la constante de normalización. $ g(h_j, r_j) $ impone la restricción de que si $ r_j = 0 $, entonces $ h_j $ debe ser 0. La distribución sobre $ h $, condicionada a $ v $ y $ r $, es factorial:
- $ P(h\mid r, v) = \prod_{j=1}^{F} P(h_j\mid r_j, v), $
- $ P(h_j = 1\mid r_j, v) = \mathbf{1}(r_j = 1)\, \sigma\!\left(b_j + \sum_i W_{ij} v_i\right). $
La distribución sobre $ v $ condicionada a $ h $ es la misma que la de una RBM:
- $ P(v\mid h) = \prod_{i=1}^{D} P(v_i\mid h), \qquad P(v_i = 1\mid h) = \sigma\!\left(a_i + \sum_j W_{ij} h_j\right). $
Condicionada a $ r $, la distribución sobre $ \{v, h\} $ es la misma que impondría una RBM, salvo que las unidades para las que $ r_j = 0 $ se eliminan de $ h $. Por tanto, el modelo Dropout RBM puede verse como una mezcla de exponencialmente muchas RBMs con pesos compartidos, cada una usando un subconjunto distinto de $ h $.
Aprendizaje de RBMs con dropout
Los algoritmos de aprendizaje desarrollados para RBMs, como la Contrastive Divergence (Hinton et al., 2006), pueden aplicarse directamente al aprendizaje de RBMs con dropout. La única diferencia es que primero se muestrea $ r $ y solo se usan para el entrenamiento las unidades ocultas que se conservan. De forma análoga a las redes con dropout, se muestrea un $ r $ distinto para cada caso de entrenamiento en cada minibatch. En nuestros experimentos usamos CD-1 para entrenar las RBMs con dropout.
Efecto sobre las características
El dropout en redes feed-forward mejoraba la calidad de las características al reducir las co-adaptaciones. Esta sección explora si este efecto se transfiere también a las RBMs con dropout. Las características aprendidas por una RBM binaria con 256 unidades ocultas difieren cualitativamente de las aprendidas por una RBM con dropout con el mismo número de unidades ocultas. Las características aprendidas por la RBM con dropout parecen cualitativamente distintas, en el sentido de que parecen capturar características más toscas en comparación con las características nítidas, tipo trazo, de la RBM estándar. Parece haber muy pocas unidades muertas en la RBM con dropout en comparación con la RBM estándar.
Efecto sobre la dispersión
A continuación investigamos el efecto del entrenamiento de RBMs con dropout sobre la dispersión de las activaciones de las unidades ocultas. Los histogramas de las activaciones de las unidades ocultas y sus medias en un mini-batch de prueba tras entrenar una RBM frente a una RBM con dropout indican claramente que las RBMs con dropout aprenden representaciones mucho más dispersas que las RBMs estándar, incluso cuando no hay ningún regularizador adicional que induzca dispersión.
Marginalización del dropout
El dropout puede verse como una manera de añadir ruido a los estados de las unidades ocultas en una red neuronal. En esta sección exploramos la clase de modelos que surge al marginalizar este ruido. Estos modelos pueden verse como versiones deterministas del dropout. A diferencia del dropout estándar («Monte-Carlo»), estos modelos no necesitan bits aleatorios y es posible obtener gradientes de las funciones de pérdida marginalizadas. Se han propuesto algoritmos deterministas que tratan de aprender modelos robustos al borrado de características en tiempo de prueba (Globerson and Roweis, 2006). La marginalización en el contexto de los autoencoders denoising se ha explorado previamente (Chen et al., 2012). La marginalización del ruido de dropout en el contexto de la regresión lineal fue discutida en Srivastava (2013). Wang and Manning (2013) exploraron además la idea de marginalizar el dropout para acelerar el entrenamiento. van der Maaten et al. (2013) investigaron distintas distribuciones de ruido de entrada y los regularizadores obtenidos al marginalizar este ruido. Wager et al. (2013) describe cómo el dropout puede verse como un regularizador adaptativo.
Regresión lineal
Primero exploramos un caso muy simple: aplicar dropout al problema clásico de la regresión lineal. Sea $ X \in \mathbb{R}^{N \times D} $ una matriz de datos con $ N $ puntos. Sea $ y \in \mathbb{R}^N $ un vector de objetivos. La regresión lineal trata de encontrar un $ w \in \mathbb{R}^D $ que minimice $ \|y - Xw\|^2 $. Cuando se aplica dropout a la entrada $ X $ de modo que cualquier dimensión de entrada se conserva con probabilidad $ p $, la entrada puede expresarse como $ R \ast X $, donde $ R \in \{0, 1\}^{N \times D} $ es una matriz aleatoria con $ R_{ij} \sim \mathrm{Bernoulli}(p) $ y $ \ast $ denota el producto elemento a elemento. Marginalizando el ruido, la función objetivo se convierte en:
- $ \underset{w}{\mathrm{minimize}}\; \mathbb{E}_{R \sim \mathrm{Bernoulli}(p)}\!\left[\, \|y - (R \ast X) w\|^2 \,\right]. $
Esto se reduce a:
- $ \underset{w}{\mathrm{minimize}}\; \|y - p X w\|^2 + p(1 - p)\, \|\Gamma w\|^2, $
donde $ \Gamma = (\mathrm{diag}(X^\top X))^{1/2} $. Por tanto, el dropout con regresión lineal es equivalente, en valor esperado, a la regresión ridge con una forma particular de $ \Gamma $. Esta forma de $ \Gamma $ esencialmente escala el coste del peso $ w_i $ por la desviación estándar de la $ i $-ésima dimensión de los datos. Si una dimensión particular de los datos varía mucho, el regularizador trata de comprimir más su peso.
Otra manera interesante de mirar este objetivo es absorber el factor de $ p $ en $ w $. Esto lleva a la forma $ \|y - X \tilde{w}\|^2 + \frac{1 - p}{p}\, \|\Gamma \tilde{w}\|^2 $, donde $ \tilde{w} = pw $. Esto hace explícita la dependencia de la constante de regularización respecto a $ p $. Para $ p $ cercano a 1, todas las entradas se conservan y la constante de regularización es pequeña. A medida que se aplica más dropout (al disminuir $ p $), la constante de regularización crece.
Regresión logística y redes profundas
Para la regresión logística y las redes neuronales profundas es difícil obtener un modelo marginalizado en forma cerrada. Sin embargo, Wang and Manning (2013) mostraron que, en el contexto del dropout aplicado a la regresión logística, el modelo marginalizado correspondiente puede entrenarse de forma aproximada. Bajo supuestos razonables, las distribuciones sobre las entradas de la unidad logística y sobre los gradientes del modelo marginalizado son gaussianas. Sus medias y varianzas pueden calcularse de forma eficiente. Esta marginalización aproximada supera al dropout Monte-Carlo en términos de tiempo de entrenamiento y rendimiento de generalización. Sin embargo, los supuestos involucrados en esta técnica se debilitan progresivamente al añadir más capas. Por tanto, los resultados no son directamente aplicables a redes profundas.
Ruido gaussiano multiplicativo
El dropout consiste en multiplicar las activaciones ocultas por variables aleatorias distribuidas según una Bernoulli, que toman el valor 1 con probabilidad $ p $ y 0 en caso contrario. Esta idea puede generalizarse multiplicando las activaciones por variables aleatorias extraídas de otras distribuciones. Recientemente descubrimos que multiplicar por una variable aleatoria extraída de $ \mathcal{N}(1, 1) $ funciona igual de bien, o quizá mejor, que usar ruido Bernoulli. Esta nueva forma de dropout equivale a añadir una variable aleatoria distribuida gaussianamente con media cero y desviación estándar igual a la activación de la unidad. Es decir, cada activación oculta $ h_i $ se perturba a $ h_i + h_i r $ donde $ r \sim \mathcal{N}(0, 1) $, o equivalentemente $ h_i r' $ donde $ r' \sim \mathcal{N}(1, 1) $. Podemos generalizar esto a $ r' \sim \mathcal{N}(1, \sigma^2) $, donde $ \sigma $ se convierte en un hiperparámetro adicional a ajustar, igual que $ p $ en el dropout (Bernoulli) estándar. El valor esperado de las activaciones permanece invariante; por tanto, no se requiere escalar los pesos en tiempo de prueba.
En este artículo describimos el dropout como un método en el que conservamos unidades con probabilidad $ p $ en tiempo de entrenamiento y reducimos los pesos multiplicándolos por un factor de $ p $ en tiempo de prueba. Otra manera de lograr el mismo efecto es escalar al alza las activaciones retenidas multiplicando por $ 1/p $ en tiempo de entrenamiento y no modificar los pesos en tiempo de prueba. Estos métodos son equivalentes con un escalado adecuado de la tasa de aprendizaje y de las inicializaciones de los pesos en cada capa.
Por tanto, el dropout puede verse como multiplicar $ h_i $ por una variable aleatoria Bernoulli $ r_b $ que toma el valor $ 1/p $ con probabilidad $ p $ y 0 en caso contrario. $ \mathbb{E}[r_b] = 1 $ y $ \mathrm{Var}[r_b] = (1 - p)/p $. Para el ruido multiplicativo gaussiano, si fijamos $ \sigma^2 = (1 - p)/p $, terminamos multiplicando $ h_i $ por una variable aleatoria $ r_g $, donde $ \mathbb{E}[r_g] = 1 $ y $ \mathrm{Var}[r_g] = (1 - p)/p $. Por tanto, ambas formas de dropout pueden configurarse de modo que la variable aleatoria por la que se multiplica tenga la misma media y varianza. Sin embargo, dados estos momentos de primer y segundo orden, $ r_g $ tiene la entropía más alta y $ r_b $ la más baja. Ambos extremos funcionan bien, aunque resultados experimentales preliminares sugieren que el caso de alta entropía podría funcionar ligeramente mejor. Para cada capa, el valor de $ \sigma $ en el modelo gaussiano se fijó como $ \sqrt{(1 - p)/p} $ usando la $ p $ de la capa correspondiente en el modelo de Bernoulli.
Conclusión
El dropout es una técnica para mejorar las redes neuronales reduciendo el sobreajuste. El aprendizaje por retropropagación estándar construye co-adaptaciones frágiles que funcionan para los datos de entrenamiento, pero no generalizan a datos no vistos. El dropout aleatorio rompe estas co-adaptaciones haciendo poco fiable la presencia de cualquier unidad oculta concreta. Se encontró que esta técnica mejora el rendimiento de las redes neuronales en una amplia variedad de dominios de aplicación, incluidos la clasificación de objetos, el reconocimiento de dígitos, el reconocimiento de voz, la clasificación de documentos y el análisis de datos de biología computacional. Esto sugiere que el dropout es una técnica general y no es específica de ningún dominio. Los métodos que utilizan dropout alcanzan resultados de vanguardia en SVHN, ImageNet, CIFAR-100 y MNIST. El dropout mejoró considerablemente el rendimiento de las redes neuronales estándar también en otros conjuntos de datos.
Esta idea puede extenderse a las máquinas de Boltzmann restringidas y a otros modelos gráficos. La idea central del dropout es tomar un modelo grande que se sobreajusta fácilmente y, repetidamente, muestrear y entrenar a partir de él submodelos más pequeños. Las RBMs encajan de forma natural en este marco. Desarrollamos las RBMs con dropout y mostramos empíricamente que tienen ciertas propiedades deseables.
Una de las desventajas del dropout es que aumenta el tiempo de entrenamiento. Una red con dropout suele tardar entre 2 y 3 veces más en entrenarse que una red neuronal estándar de la misma arquitectura. Una causa principal de este aumento es que las actualizaciones de los parámetros son muy ruidosas. Cada caso de entrenamiento intenta, en efecto, entrenar una arquitectura aleatoria distinta. Por tanto, los gradientes que se calculan no son los gradientes de la arquitectura final que se utilizará en tiempo de prueba. Por ello, no es sorprendente que el entrenamiento lleve mucho tiempo. Sin embargo, es probable que esta estocasticidad sea la que evita el sobreajuste. Esto crea un compromiso entre sobreajuste y tiempo de entrenamiento. Con más tiempo de entrenamiento, se puede usar más dropout y sufrir menos sobreajuste. Una manera de obtener algunos de los beneficios del dropout sin estocasticidad es marginalizar el ruido para obtener un regularizador que, en valor esperado, haga lo mismo que el procedimiento de dropout. Mostramos que para la regresión lineal este regularizador es una forma modificada de regularización L2. Para modelos más complicados no es obvio cómo obtener un regularizador equivalente. Acelerar el dropout es una dirección interesante para futuros trabajos.
Agradecimientos
Esta investigación recibió apoyo de OGS, NSERC y un Early Researcher Award.
Apéndice A. Guía práctica para entrenar redes con dropout
Las redes neuronales son conocidas por requerir un ajuste extenso de hiperparámetros. Las redes con dropout no son una excepción. En esta sección describimos heurísticas que pueden ser útiles al aplicar dropout.
Tamaño de la red
Es de esperar que descartar unidades reduzca la capacidad de una red neuronal. Si $ n $ es el número de unidades ocultas en cualquier capa y $ p $ es la probabilidad de retener una unidad, entonces, en lugar de $ n $ unidades ocultas, solo habrá $ pn $ unidades presentes tras el dropout, en valor esperado. Además, este conjunto de $ pn $ unidades será distinto cada vez y no se permite que las unidades construyan co-adaptaciones libremente. Por tanto, si una capa de tamaño $ n $ es óptima para una red neuronal estándar en una tarea dada, una buena red con dropout debería tener al menos $ n/p $ unidades. Hemos comprobado que esta es una heurística útil para fijar el número de unidades ocultas tanto en redes convolucionales como en redes totalmente conectadas.
Tasa de aprendizaje y momentum
El dropout introduce una cantidad significativa de ruido en los gradientes en comparación con el descenso por gradiente estocástico estándar. Por tanto, muchos gradientes tienden a cancelarse entre sí. Para compensarlo, una red con dropout debería usar habitualmente entre 10 y 100 veces la tasa de aprendizaje que era óptima para una red neuronal estándar. Otra manera de reducir el efecto del ruido es usar un momentum elevado. Mientras que valores de momentum de 0,9 son comunes para redes estándar, con dropout encontramos que valores en torno a 0,95–0,99 funcionan mucho mejor. Usar tasas de aprendizaje y/o momentum elevados acelera significativamente el aprendizaje.
Regularización de norma máxima
Aunque un momentum y una tasa de aprendizaje grandes aceleran el aprendizaje, a veces hacen que los pesos de la red crezcan mucho. Para evitarlo podemos usar regularización de norma máxima. Esta restringe la norma del vector de pesos entrantes en cada unidad oculta a estar acotada por una constante $ c $. Los valores típicos de $ c $ oscilan entre 3 y 4.
Tasa de dropout
El dropout introduce un hiperparámetro adicional: la probabilidad de retener una unidad $ p $. Este hiperparámetro controla la intensidad del dropout. $ p = 1 $ implica no usar dropout y valores bajos de $ p $ significan más dropout. Los valores típicos de $ p $ para unidades ocultas están en el rango 0,5–0,8. Para las capas de entrada, la elección depende del tipo de entrada. Para entradas de valor real (parches de imagen o frames de voz), un valor típico es 0,8. Para las capas ocultas, la elección de $ p $ está acoplada a la elección del número de unidades ocultas $ n $. Un $ p $ pequeño requiere un $ n $ grande, lo que ralentiza el entrenamiento y conduce a infraajuste. Un $ p $ grande puede no producir suficiente dropout para evitar el sobreajuste.
Apéndice B. Descripción detallada de los experimentos y conjuntos de datos
Esta sección describe las arquitecturas de red y los detalles de entrenamiento para los resultados experimentales reportados en este artículo. El código para reproducir estos resultados puede obtenerse en http://www.cs.toronto.edu/~nitish/dropout. La implementación está basada en GPU. Usamos las excelentes bibliotecas CUDA—cudamat (Mnih, 2009) y cuda-convnet (Krizhevsky et al., 2012)—para implementar nuestras redes.
MNIST
El conjunto de datos MNIST consta de 60 000 ejemplos de entrenamiento y 10 000 de prueba, cada uno representando una imagen de dígito de 28×28. Reservamos 10 000 imágenes de entrenamiento aleatorias para validación. Los hiperparámetros se ajustaron en el conjunto de validación de modo que el mejor error de validación se produjera tras 1 millón de actualizaciones de pesos. A continuación, el conjunto de validación se combinó con el de entrenamiento y se entrenó durante 1 millón de actualizaciones de pesos. Esta red se utilizó para evaluar el rendimiento sobre el conjunto de prueba. Esta forma de usar el conjunto de validación se eligió porque comprobamos que era fácil ajustar los hiperparámetros de modo que la parada temprana no fuera necesaria en absoluto. Por tanto, una vez fijados los hiperparámetros, tenía sentido combinar los conjuntos de validación y entrenamiento y entrenar durante mucho tiempo.
Las arquitecturas incluyen todas las combinaciones de redes de 2, 3 y 4 capas con 1024 y 2048 unidades en cada capa. Por tanto, hay seis arquitecturas en total. Para todas las arquitecturas usamos $ p = 0,5 $ en todas las capas ocultas y $ p = 0,8 $ en la capa de entrada. Se usó un momentum final de 0,95 y restricciones de pesos con $ c = 2 $ en todas las capas. Para probar los límites del poder regularizador del dropout, también experimentamos con redes de 2 y 3 capas con 4096 y 8192 unidades. Las redes de 2 capas dieron mejoras. Sin embargo, las redes de tres capas funcionaron ligeramente peor que las de dos capas con el mismo nivel de dropout. Cuando aumentamos el dropout, el rendimiento mejoró pero no lo suficiente como para superar a las redes de dos capas.
SVHN
El conjunto de datos SVHN consta de aproximadamente 600 000 imágenes de entrenamiento y 26 000 imágenes de prueba. El conjunto de entrenamiento consta de dos partes: un conjunto de entrenamiento etiquetado estándar y otro conjunto de ejemplos etiquetados que son fáciles. Se construyó un conjunto de validación tomando ejemplos de ambas partes. Dos tercios provinieron del conjunto estándar (400 por clase) y un tercio del conjunto extra (200 por clase), un total de 6000 muestras. Este mismo procedimiento es el que utilizan Sermanet et al. (2012). Las entradas eran píxeles RGB normalizados para tener media cero y varianza unidad. Otras técnicas de preprocesamiento, como la normalización de contraste global o local o el blanqueado ZCA, no proporcionaron mejoras apreciables.
La mejor arquitectura que encontramos utiliza tres capas convolucionales, cada una seguida de una capa de max-pooling. Las capas convolucionales tienen 96, 128 y 256 filtros, respectivamente. Cada capa convolucional tiene un campo receptivo de 5 × 5 aplicado con un stride de 1 píxel. Cada capa de max pooling agrupa regiones de 3 × 3 con strides de 2 píxeles. Las capas convolucionales van seguidas de dos capas ocultas totalmente conectadas con 2048 unidades cada una. Todas las unidades usan la función de activación lineal rectificada. Se aplicó dropout a todas las capas de la red con probabilidad de retener la unidad $ p = (0,9, 0,75, 0,75, 0,5, 0,5, 0,5) $ para las distintas capas (de la entrada a las capas convolucionales y a las totalmente conectadas). Adicionalmente, se utilizó la restricción de norma máxima con $ c = 4 $ para todos los pesos. Se usó un momentum de 0,95 en todas las capas. Estos hiperparámetros se ajustaron mediante un conjunto de validación. Como el conjunto de entrenamiento era bastante grande, no combinamos el de validación con el de entrenamiento para el entrenamiento final. Reportamos el error de prueba del modelo con el menor error de validación.
CIFAR-10 y CIFAR-100
Los conjuntos de datos CIFAR-10 y CIFAR-100 constan de 50 000 imágenes de entrenamiento y 10 000 imágenes de prueba cada uno. Tienen 10 y 100 categorías de imágenes respectivamente. Estas son imágenes en color de 32 × 32. Usamos 5000 de las imágenes de entrenamiento para validación. Seguimos un procedimiento similar al de MNIST, en el que encontramos los mejores hiperparámetros usando el conjunto de validación y luego lo combinamos con el de entrenamiento. Las imágenes se preprocesaron haciendo normalización de contraste global en cada canal de color, seguida de blanqueado ZCA. La normalización de contraste global significa que para cada imagen y cada canal de color de esa imagen, calculamos la media de las intensidades de los píxeles y se la sustraemos al canal. El blanqueado ZCA significa que centramos los datos por la media, los rotamos a sus componentes principales, normalizamos cada componente y luego los rotamos de vuelta. La arquitectura de la red y las tasas de dropout son las mismas que para SVHN, salvo las tasas de aprendizaje para la capa de entrada, que tuvieron que fijarse en valores menores.
TIMIT
Se utilizó el toolkit de código abierto Kaldi (Povey et al., 2011) para preprocesar los datos en log-filter banks. Se entrenó un sistema monofónico para hacer alineación forzada y obtener etiquetas para los frames de voz. Las redes neuronales con dropout se entrenaron sobre ventanas de 21 frames consecutivos para predecir la etiqueta del frame central. No se realizaron operaciones dependientes del hablante. Las entradas se centraron por la media y se normalizaron a varianza unidad. Usamos probabilidad de retención $ p = 0,8 $ en las capas de entrada y 0,5 en las capas ocultas. Se usó la restricción de norma máxima con $ c = 4 $ en todas las capas. Se utilizó un momentum de 0,95 con una tasa de aprendizaje alta de 0,1. La tasa de aprendizaje se decayó como $ \epsilon_0 (1 + t/T)^{-1} $. Para el preentrenamiento DBN, entrenamos RBMs usando CD-1. La varianza de cada unidad de entrada para la RBM gaussiana se fijó en 1. Para el ajuste fino del DBN con dropout, encontramos que para obtener los mejores resultados era importante usar una tasa de aprendizaje más pequeña (alrededor de 0,01). Añadir restricciones de norma máxima no aportó ninguna mejora.
Reuters
El corpus Reuters RCV1 contiene más de 800 000 documentos categorizados en 103 clases. Estas clases están organizadas en una jerarquía de árbol. Creamos un subconjunto de este conjunto de datos consistente en 402 738 artículos y un vocabulario de 2000 palabras, que comprende 50 categorías en las que cada documento pertenece a exactamente una clase. Los datos se dividieron en conjuntos de entrenamiento y prueba de tamaño igual. Probamos muchas arquitecturas de red y encontramos que el dropout aportaba mejoras en la precisión de clasificación en todas ellas. Sin embargo, la mejora no fue tan significativa como para los conjuntos de imagen y voz. Esto podría explicarse por el hecho de que este conjunto de datos es bastante grande (más de 200 000 ejemplos de entrenamiento) y el sobreajuste no es un problema muy serio.
Empalme alternativo
El conjunto de datos de empalme alternativo consta de datos de 3665 exones cassette, 1014 características de ARN y 4 tipos de tejido derivados de 27 tejidos de ratón. Para cada entrada, el objetivo consiste en 4 unidades softmax (una por tipo de tejido). Cada unidad softmax tiene 3 estados (inc, exc, nc) que son de importancia biológica. Para cada unidad softmax, el objetivo es predecir una distribución sobre estos 3 estados que se ajuste lo más posible a la distribución observada en experimentos de laboratorio. La métrica de evaluación es Code Quality, que se define como:
- $ \sum_{i=1}^{|\text{data points}|}\; \sum_{t \in \text{tissue types}}\; \sum_{s \in \{\text{inc, exc, nc}\}} p^{s}_{i,t}\, \log\!\left(\frac{q^{s}_{t}(r_i)}{\bar{p}^{s}}\right), $
donde $ p^{s}_{i,t} $ es la probabilidad objetivo para el estado $ s $ y el tipo de tejido $ t $ en la entrada $ i $; $ q^{s}_{t}(r_i) $ es la probabilidad predicha para el estado $ s $ en el tipo de tejido $ t $ para la entrada $ r_i $ y $ \bar{p}^{s} $ es el promedio de $ p^{s}_{i,t} $ sobre $ i $ y $ t $. Se entrenó una red con dropout de dos capas con 1024 unidades en cada capa sobre este conjunto de datos. Se usó un valor de $ p = 0,5 $ para la capa oculta y $ p = 0,7 $ para la capa de entrada. Se utilizó regularización de norma máxima con tasas de aprendizaje altas y decayentes. Los resultados se promediaron sobre los mismos 5 folds usados por Xiong et al. (2011).
Referencias
- M. Chen, Z. Xu, K. Weinberger, y F. Sha. Marginalized denoising autoencoders for domain adaptation. En Proceedings of the 29th International Conference on Machine Learning, páginas 767–774. ACM, 2012.
- G. E. Dahl, M. Ranzato, A. Mohamed, y G. E. Hinton. Phone recognition with the mean-covariance restricted Boltzmann machine. En Advances in Neural Information Processing Systems 23, páginas 469–477, 2010.
- O. Dekel, O. Shamir, y L. Xiao. Learning to classify with missing and corrupted features. Machine Learning, 81(2):149–178, 2010.
- A. Globerson y S. Roweis. Nightmare at test time: robust learning by feature deletion. En Proceedings of the 23rd International Conference on Machine Learning, páginas 353–360. ACM, 2006.
- I. J. Goodfellow, D. Warde-Farley, M. Mirza, A. Courville, y Y. Bengio. Maxout networks. En Proceedings of the 30th International Conference on Machine Learning, páginas 1319–1327. ACM, 2013.
- G. Hinton y R. Salakhutdinov. Reducing the dimensionality of data with neural networks. Science, 313(5786):504–507, 2006.
- G. E. Hinton, S. Osindero, y Y. Teh. A fast learning algorithm for deep belief nets. Neural Computation, 18:1527–1554, 2006.
- K. Jarrett, K. Kavukcuoglu, M. Ranzato, y Y. LeCun. What is the best multi-stage architecture for object recognition? En Proceedings of the International Conference on Computer Vision (ICCV'09). IEEE, 2009.
- A. Krizhevsky. Learning multiple layers of features from tiny images. Informe técnico, University of Toronto, 2009.
- A. Krizhevsky, I. Sutskever, y G. E. Hinton. Imagenet classification with deep convolutional neural networks. En Advances in Neural Information Processing Systems 25, páginas 1106–1114, 2012.
- Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, y L. D. Jackel. Backpropagation applied to handwritten zip code recognition. Neural Computation, 1(4):541–551, 1989.
- Y. Lin, F. Lv, S. Zhu, M. Yang, T. Cour, K. Yu, L. Cao, Z. Li, M.-H. Tsai, X. Zhou, T. Huang, y T. Zhang. Imagenet classification: fast descriptor coding and large-scale SVM training. Large scale visual recognition challenge, 2010.
- A. Livnat, C. Papadimitriou, N. Pippenger, y M. W. Feldman. Sex, mixability, and modularity. Proceedings of the National Academy of Sciences, 107(4):1452–1457, 2010.
- V. Mnih. CUDAMat: a CUDA-based matrix class for Python. Informe técnico UTML TR 2009-004, Department of Computer Science, University of Toronto, noviembre de 2009.
- A. Mohamed, G. E. Dahl, y G. E. Hinton. Acoustic modeling using deep belief networks. IEEE Transactions on Audio, Speech, and Language Processing, 2010.
- R. M. Neal. Bayesian Learning for Neural Networks. Springer-Verlag New York, Inc., 1996.
- Y. Netzer, T. Wang, A. Coates, A. Bissacco, B. Wu, y A. Y. Ng. Reading digits in natural images with unsupervised feature learning. En NIPS Workshop on Deep Learning and Unsupervised Feature Learning 2011, 2011.
- S. J. Nowlan y G. E. Hinton. Simplifying neural networks by soft weight-sharing. Neural Computation, 4(4), 1992.
- D. Povey, A. Ghoshal, G. Boulianne, L. Burget, O. Glembek, N. Goel, M. Hannemann, P. Motlicek, Y. Qian, P. Schwarz, J. Silovsky, G. Stemmer, y K. Vesely. The Kaldi Speech Recognition Toolkit. En IEEE 2011 Workshop on Automatic Speech Recognition and Understanding. IEEE Signal Processing Society, 2011.
- R. Salakhutdinov y G. Hinton. Deep Boltzmann machines. En Proceedings of the International Conference on Artificial Intelligence and Statistics, volumen 5, páginas 448–455, 2009.
- R. Salakhutdinov y A. Mnih. Bayesian probabilistic matrix factorization using Markov chain Monte Carlo. En Proceedings of the 25th International Conference on Machine Learning. ACM, 2008.
- J. Sanchez y F. Perronnin. High-dimensional signature compression for large-scale image classification. En Proceedings of the 2011 IEEE Conference on Computer Vision and Pattern Recognition, páginas 1665–1672, 2011.
- P. Sermanet, S. Chintala, y Y. LeCun. Convolutional neural networks applied to house numbers digit classification. En International Conference on Pattern Recognition (ICPR 2012), 2012.
- P. Simard, D. Steinkraus, y J. Platt. Best practices for convolutional neural networks applied to visual document analysis. En Proceedings of the Seventh International Conference on Document Analysis and Recognition, volumen 2, páginas 958–962, 2003.
- J. Snoek, H. Larochelle, y R. Adams. Practical Bayesian optimization of machine learning algorithms. En Advances in Neural Information Processing Systems 25, páginas 2960–2968, 2012.
- N. Srebro y A. Shraibman. Rank, trace-norm and max-norm. En Proceedings of the 18th annual conference on Learning Theory, COLT'05, páginas 545–560. Springer-Verlag, 2005.
- N. Srivastava. Improving Neural Networks with Dropout. Tesis de maestría, University of Toronto, enero de 2013.
- R. Tibshirani. Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society. Series B. Methodological, 58(1):267–288, 1996.
- A. N. Tikhonov. On the stability of inverse problems. Doklady Akademii Nauk SSSR, 39(5):195–198, 1943.
- L. van der Maaten, M. Chen, S. Tyree, y K. Q. Weinberger. Learning with marginalized corrupted features. En Proceedings of the 30th International Conference on Machine Learning, páginas 410–418. ACM, 2013.
- P. Vincent, H. Larochelle, Y. Bengio, y P.-A. Manzagol. Extracting and composing robust features with denoising autoencoders. En Proceedings of the 25th International Conference on Machine Learning, páginas 1096–1103. ACM, 2008.
- P. Vincent, H. Larochelle, I. Lajoie, Y. Bengio, y P.-A. Manzagol. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion. En Proceedings of the 27th International Conference on Machine Learning, páginas 3371–3408. ACM, 2010.
- S. Wager, S. Wang, y P. Liang. Dropout training as adaptive regularization. En Advances in Neural Information Processing Systems 26, páginas 351–359, 2013.
- S. Wang y C. D. Manning. Fast dropout training. En Proceedings of the 30th International Conference on Machine Learning, páginas 118–126. ACM, 2013.
- H. Y. Xiong, Y. Barash, y B. J. Frey. Bayesian prediction of tissue-regulated splicing using RNA sequence and cellular context. Bioinformatics, 27(18):2554–2562, 2011.
- M. D. Zeiler y R. Fergus. Stochastic pooling for regularization of deep convolutional neural networks. CoRR, abs/1301.3557, 2013.