¿Cuál es la diferencia entre dropout y drop connect?

24

¿Cuál es la diferencia entre dropout y drop connect?

AFAIK, el abandono abandona aleatoriamente los nodos ocultos durante el entrenamiento, pero los mantiene en las pruebas, y desconecta y desconecta las conexiones.

Pero, ¿no es dejar caer conexiones equivalente a dejar caer los nodos ocultos? ¿No son los nodos (o conexiones) solo un conjunto de pesos?

Machina333
fuente

Respuestas:

24

DropOut y DropConnect son métodos destinados a evitar la "coadaptación" de unidades en una red neuronal. En otras palabras, queremos que las unidades extraigan de forma independiente características de sus entradas en lugar de depender de otras neuronas para hacerlo.

Supongamos que tenemos una red feedforward de varias capas como esta (la topología realmente no importa). Nos preocupan las unidades amarillas ocultas en la capa media que se adaptan conjuntamente.

muestra de red 5-4-3

Abandonar

Para aplicar DropOut, seleccionamos aleatoriamente un subconjunto de las unidades y fijamos su salida a cero, independientemente de la entrada; esto elimina efectivamente esas unidades del modelo. Se selecciona aleatoriamente un subconjunto de unidades cada vez que presentamos un ejemplo de entrenamiento.

A continuación hay dos configuraciones de red posibles. En la primera presentación (izquierda), las unidades primera y tercera están deshabilitadas, pero las unidades segunda y tercera se han seleccionado aleatoriamente en una presentación posterior. En el momento de la prueba, utilizamos la red completa pero reescalamos los pesos para compensar el hecho de que ahora todos pueden activarse (por ejemplo, si suelta la mitad de los nodos, los pesos también deberían reducirse a la mitad).

Ejemplos de DropOut

DropConnect

DropConnect funciona de manera similar, excepto que deshabilitamos los pesos individuales (es decir, los establecemos en cero), en lugar de nodos, por lo que un nodo puede permanecer parcialmente activo. Esquemáticamente, se ve así:

DropConnect

Comparación

Ambos métodos funcionan porque efectivamente le permiten entrenar varios modelos al mismo tiempo, luego promediarlos para probarlos. Por ejemplo, la capa amarilla tiene cuatro nodos y, por lo tanto, 16 posibles estados DropOut (todos habilitados, # 1 deshabilitados, # 1 y # 2 deshabilitados, etc.).

DropConnect es una generalización de DropOut porque produce aún más modelos posibles, ya que casi siempre hay más conexiones que unidades. Sin embargo, puede obtener resultados similares en un ensayo individual. Por ejemplo, la red DropConnect a la derecha ha descartado efectivamente la Unidad # 2 ya que se han eliminado todas las conexiones entrantes.

Otras lecturas

Los documentos originales son bastante accesibles y contienen más detalles y resultados empíricos.

Matt Krause
fuente
6

Sí, pero son ligeramente diferentes en términos de cómo se caen los pesos.

Estas son las fórmulas de DropConnect (izquierda) y dropout (derecha).

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Entonces dropout aplica una máscara a las activaciones, mientras que DropConnect aplica una máscara a los pesos.

El artículo de DropConnect dice que es una generalización del abandono en el sentido de que

DropConnect es la generalización de Dropout en la que cada conexión, en lugar de cada unidad de salida como en Dropout, se puede eliminar con probabilidad p.

dontloo
fuente