¿Cómo funciona el método de abandono en el aprendizaje profundo? ¿Y por qué se afirma que es un truco efectivo para mejorar su red?

El mecanismo a través del cual funciona el abandono ya se ha explicado en otras respuestas. Solo comentaré una explicación de por qué mejora el rendimiento. Como otros han dicho, el abandono es una forma de regularización (restringe la adaptación de la red a los datos en el momento del entrenamiento, para evitar que se vuelva “demasiado inteligente” en el aprendizaje de los datos de entrada; por lo tanto, ayuda a evitar el sobreajuste).

Y en ese sentido, ayuda ver la deserción como una forma de aprendizaje conjunto . En el aprendizaje conjunto, tomamos una serie de clasificadores ‘más débiles’, los entrenamos por separado y luego, en el momento del examen, los usamos promediando las respuestas de todos los miembros del conjunto. Dado que cada clasificador ha sido entrenado por separado, ha aprendido diferentes ‘aspectos’ de los datos y sus errores son diferentes. Combinarlos ayuda a producir un clasificador más fuerte, que es menos propenso al sobreajuste. Los bosques aleatorios o GBT son clasificadores de conjunto típicos.

Una variante de conjunto es el ensacado , en el que cada miembro del conjunto se entrena con una submuestra diferente de los datos de entrada y, por lo tanto, solo ha aprendido un subconjunto de todo el espacio de características de entrada posible.

La deserción, entonces, puede verse como una versión extrema de embolsado. En cada paso de entrenamiento en un mini lote, el procedimiento de abandono crea una red diferente (eliminando al azar algunas unidades), que se entrena utilizando la propagación hacia atrás como de costumbre. Conceptualmente, entonces, todo el procedimiento es similar al uso de un conjunto de muchas redes diferentes (una por paso) cada una entrenada con una sola muestra (es decir, embolsado extremo).

En el momento de la prueba, se utiliza toda la red (todas las unidades) pero con pesos reducidos. Matemáticamente, esto se aproxima al promedio del conjunto (usando la media geométrica como promedio).

Dos documentos que explican esto mucho mejor son:

  • Hinton et al, [1207.0580] Mejora de redes neuronales al evitar la coadaptación de detectores de características, 2012 (probablemente el documento original sobre abandono)
  • Warde-Farley et al, [1312.6197] Un análisis empírico de la deserción en redes lineales por partes, 2014 (analiza la deserción especialmente para el caso de usar ReLU como función de activación, posiblemente la más popular), y verifica el comportamiento de la media geométrica para el conjunto promedio)

Otros han dado las respuestas correctas. Agregaré un ejemplo muy simple (aunque artificial) para la intuición.

Considere esta subred en una red neuronal dada. Las neuronas 1 y 2 reciben señales de la capa anterior y se alimentan a la neurona 3, que combina sus salidas para generar una salida final.

Digamos que la neurona 1 da la predicción correcta en el 80% de las instancias de entrenamiento, y una predicción incorrecta en el 20% restante de las instancias de entrenamiento. Y la neurona 2 da predicciones aleatorias en todos los datos de entrenamiento. Entonces, lo mejor que puede hacer la neurona 3 es producir

[matemáticas] 1 \ cdot \ text {} + 0 \ cdot \ mbox {} [/ matemáticas]

es decir, siempre reenvía la salida de la neurona 1.

Los gradientes solo se propagarán a través de 3 y 1. Por lo tanto, si bien hay 3 neuronas, solo están haciendo el trabajo de una sola neurona. Esto es claramente un desperdicio.

Con la deserción, eliminas algunas neuronas al azar. Por lo tanto, habrá iteraciones en las que se eliminará la neurona 1, y luego la neurona 3 tendrá que transmitir la salida de la neurona 2 hacia adelante. Esto generará gradientes distintos de cero para la neurona 2, y gradualmente comenzará a funcionar mejor que una suposición aleatoria. Luego, la neurona 3 también actualizará su función para tener una combinación lineal no trivial de las neuronas 1 y 2, y es probable que el rendimiento combinado sea superior al 80%.

La deserción en el aprendizaje profundo funciona de la siguiente manera: uno o más nodos de la red neuronal se desconecta de vez en cuando para que no interactúe con la red (sus pesos no pueden actualizarse ni afectar el aprendizaje de los otros nodos de la red). Con la deserción, los pesos aprendidos de los nodos se vuelven algo más insensibles a los pesos de los otros nodos y aprenden a decidir algo más por sí mismos (y menos dependientes de los otros nodos a los que están conectados). En general, la deserción ayuda a la red a generalizar mejor y aumentar la precisión, ya que la influencia (posiblemente algo dominante) de un solo nodo disminuye por la deserción.

También hay algo llamado dropconnect, pero este es el mismo principio para las conexiones entre nodos. En general, el efecto de la desconexión es menos consecuente y menos fuerte en comparación con el abandono.

Funciona como una regularización. Cuando se eliminan las neuronas aleatorias, la red se ve obligada a aprender varias representaciones independientes de los patrones con entradas y salidas idénticas. La generalización mejora así.

La estructura de datos de una red neuronal es un gráfico dirigido donde cada nodo (también conocido como unidad) representa un sesgo, mientras que cada borde representa un peso. Entonces, si tiene la unidad [matemática] y [/ matemática] con sesgo [matemática] b [/ matemática] y en los bordes [matemática] e_1, e_2, e_3 [/ matemática] con pesos [matemática] w_1, w_2, w_3 [/ math], entonces, cuando las señales que entran en [math] y [/ math] a lo largo de [math] e_1, e_2, e_3 [/ math] son ​​[math] x_1, x_2, x_3 [/ math] respectivamente, el la salida de [math] y [/ math] es [math] w_1 x_1 + w_2 x_2 + w_3 x_3 + b [/ math].

El problema que la regularización del abandono intenta abordar se basa en el hecho de que las unidades de la red están arregladas en la gran mayoría de los algoritmos, es decir, usted predefine la estructura de la red y su propagación hacia atrás aprende los pesos y el sesgo. . El problema resultante es que los resultados del aprendizaje pueden ajustarse en exceso a la estructura de la red, aprendiendo a la fuerza los pesos y el sesgo en los bordes y las unidades, todo al mismo tiempo, lo que posiblemente ocasione que algunos de estos parámetros se adapten de manera conjunta a los patrones (intuitivamente, algunos pesos convergen) a un valor porque depende demasiado de otros pesos que convergen a sus valores).

Con lo anterior en mente, el objetivo intuitivo de la regularización de abandono es aproximar el siguiente concepto: ignorar las unidades y sus pesos asociados por una probabilidad [matemática] p [/ matemática] para una muestra de entrenamiento particular, entrenar con propagación hacia atrás, repetir (ignorando algún otro conjunto aleatorio de unidades, luego entrenar) en cada una de las otras muestras de entrenamiento, y luego promediando los pesos en todas estas estructuras modificadas al hacer predicciones en nuevas muestras.

La deserción funciona INCREÍBLEMENTE BIEN para prevenir el sobreajuste que es …

  • Un gran desafío en Deep Nets (Millones de parámetros)
  • 3 mecanismos generales de ML para superar el sobreajuste son:
    1. RESTRINGIR los parámetros libres (por ejemplo, penalización L1 o L2)
    2. ENSEMBLE de muchos modelos, por ejemplo, bosques aleatorios (ensacado), impulso, bayesiano
    3. Más datos de entrenamiento

    ¡Los desertores logran tanto a) como b) de una manera SÚPER EFICIENTE!

    .. Durante el entrenamiento, se aplica la deserción.

    • En efecto, significa entrenar un número exponencialmente grande de redes más pequeñas simultáneamente (2 ** N por N neuronas ocultas que se sueltan al azar)
    • 2 efectos restrictivos:
        1. en cada mini-lote, solo un puñado de características ‘no descartadas’, es decir, las neuronas (y las rutas) deben tener en cuenta que el error actual se propaga hacia atrás (al igual que la regularización L0 / L1)
        2. de modo que los pesos actualizados sigan siendo lo suficientemente buenos para todas las otras redes más pequeñas (compartidas por diseño)

        .. Durante la predicción, no se aplica el abandono.

        • Efecto final => la predicción es muy similar al promedio de las predicciones en todas estas redes más pequeñas

        Además, resulta que Dropout puede tener otros buenos efectos secundarios:

        1. puede lograr la misma precisión de prueba más rápido
        2. Las características tienden a ser más “interpretables”, por ejemplo, en CNN

        Mientras estaba curada para el aprendizaje profundo, probé usando Dropout para modelos lineales con gran cantidad de características y poca cantidad de filas.

        • Se compara bien con la penalización L1 y L2, por lo que el mecanismo de abandono aún funcionó
        • .. pero no hubo una ventaja particular en la resolución de una optimización convexa directa de esta manera complicada.

        La deserción escolar es una forma de regularización.

        ¿Como funciona?
        Básicamente, obliga a una red neuronal artificial a aprender múltiples representaciones independientes de los mismos datos al desactivar alternativamente las neuronas al azar en la fase de aprendizaje.

        ¿Cuál es el efecto de esto?
        El efecto de esto es que se impide que las neuronas se adapten demasiado, lo que hace menos probable el sobreajuste.

        ¿Por qué pasó esto?
        La razón por la que esto funciona es comparable a por qué usar los resultados medios de muchas redes neuronales entrenadas por separado para reducir el sobreajuste.

        Recientemente escribí una publicación sobre Comprender el abandono, que muestra los efectos del abandono en DNN.

        Regularización

        Para evitar el sobreajuste, la regulación a menudo se usa en la función de costos. Por ejemplo, $ J = (y – \ hat y) ^ 2 + \ lambda w ^ 2 $, luego $ \ lambda $ sirve como parámetro de regularización que prohíbe que $ w $ se arrastre. Además, garantiza que el costo disminuye cada iteración. Notablemente, la regularización aquí que usamos también se llama $ L_2 \ norm $.

        Además de esta regularización, también podemos usar $ L_1 \ norm $, que es mucho menos frecuente seleccionado, aumento de datos y parada temprana para evitar el sobreajuste. Pero en esta publicación quiero centrarme en el uso del abandono en la regularización.

        Abandonar

        A diferencia de estos métodos mencionados anteriormente, el abandono en mi entendimiento es complicado pero práctico. Al igual que en la figura que se muestra a continuación, el abandono silenciará aleatoriamente algunas neuronas en la red neuronal y, por lo tanto, tenemos una red dispersa que reduce enormemente la posibilidad de sobreajuste. algunas caracteristicas.

        La posibilidad de silenciar las neuronas a menudo se establece en 0.5, aunque puede sentirse libre de hacerlo 0.3 o 1.0. Cuando el abandono es 1.0, simplemente no abandonas ninguna neurona. Pero nuestra experiencia nos dice que 0.5 es generalmente la mejor opción.

        Después de terminar el entrenamiento, es importante desactivar el abandono durante el desarrollo y las pruebas. De lo contrario, la predicción de este modelo no es estable ya que la deserción le agrega incertidumbres.

        Fin

        Básicamente, esto es lo que he concluido del curso de Andrew. Creo que la intuición detrás de este método se entiende fácilmente y muchas personas están asombradas por el sorprendente desempeño. Con respecto a la regularización, escribiré otra publicación sobre Normalización de lotes la próxima vez.

        La técnica de abandono es esencialmente un método de regularización que se usa para evitar el sobreajuste al entrenar redes neuronales. El papel de las unidades ocultas en las redes neuronales es aproximar eficientemente una ‘función’ a partir de las muestras de datos disponibles que pueden generalizarse a datos no vistos. El problema es que los datos disponibles a menudo tienen patrones subyacentes no lineales que solo se pueden * extraer * mediante el uso de una función de aproximación no lineal. Entonces, cuando las unidades ocultas intentan aproximar una función para estas muestras, tienden a ajustarse a un aproximador de orden superior (intentan crear una función que se aproxime con precisión a cada instancia en el conjunto de entrenamiento) y al hacerlo, se ajustan a los datos. muestras En otras palabras, la función que se ha aproximado se ajusta estrechamente a los datos de entrenamiento y el modelo se vuelve difícil de generalizar o ajustar a los datos de prueba. Eso significa que si tiene una gran cantidad de datos y elige un modelo de red neuronal con muchas capas y unidades ocultas en ellas, luego de entrenar su red neuronal, tendrá un rendimiento de entrenamiento muy bueno y un modelo complejo (ya que las redes con muchas unidades ocultas se aproximarán a una función compleja) y, en algunos casos, la red neuronal incluso aprende las instancias, lo que conduce a un buen rendimiento de entrenamiento pero a una generalización deficiente.

        Ahora que llegamos a la técnica de abandono, simplemente apagamos algunas de las unidades ocultas (con cierta probabilidad) para que las unidades ocultas no aprendan cada detalle redundante de instancias en el conjunto de entrenamiento. Por ejemplo, supongamos que tenemos 3 capas ocultas en la red neuronal y cada capa oculta contiene 4 unidades, ahora supongamos que apaga dos unidades ocultas en la primera capa, debido a que las activaciones (de las unidades ocultas * off *) son no propagado hacia adelante. Por lo tanto, las unidades en las capas siguientes tienen que aprender de los * menos datos * (las activaciones de la capa anterior que no se han desactivado). Si analiza este fenómeno, tiene múltiples propósitos. Primero, las unidades ocultas en las capas posteriores no tienen acceso a * todos los detalles * de la instancia de entrada, por lo que podrían tener que descubrir por sí mismos * cómo crear una función para estos datos * de manera eficiente al usar * menos conocimiento de datos*. Aumentará la eficiencia de las unidades ocultas para encontrar patrones para datos invisibles. En segundo lugar, cuando algunas de las unidades ocultas están apagadas, reduce los cálculos, por lo que aumentará la velocidad de entrenamiento de las redes neuronales. En tercer lugar, tendrá un modelo que ofrece una * representación compacta de sus datos * (patrones subyacentes) con casi la misma efectividad en comparación con un modelo muy complejo.

        PD: si desea determinar cómo se debe aplicar el abandono, pruébelo con diferentes probabilidades, su rendimiento de generalización indicará el abandono máximo que puede aplicar.

        Aquí hay algunos documentos, solo léalos y lo sabrá. La deserción puede verse como una especie de regularización.

        [1] [1207.0580] Mejora de redes neuronales al evitar la coadaptación de detectores de características
        [2] Abandono: una forma sencilla de evitar que las redes neuronales se sobreajusten
        [3] [1307.1493] Entrenamiento de abandono como regularización adaptativa

        Cuando descubras que tu modelo está sobreajustado. Es decir, en una validación cruzada durante el entrenamiento, pero sufre en un conjunto de prueba independiente, luego agrega capas de abandono para reducir la dependencia del conjunto de entrenamiento.