¿Cómo funciona exactamente DropOut con capas convolucionales?


10

La deserción ( papel , explicación ) establece la salida de algunas neuronas a cero. Entonces, para un MLP, podría tener la siguiente arquitectura para el conjunto de datos de flores Iris :

4 : 50 (tanh) : dropout (0.5) : 20 (tanh) : 3 (softmax)

Funcionaría así:

softmax(W3tanh(W2mask(D,tanh(W1input_vector)))

con , , , , (ignorando los sesgos en aras de la simplicidad). W 1R 50 × 4 D { 0 , 1 } 50 × 1 W 2R 20 × 50 W 3R 20 × 3input_vectorR4×1W1R50×4D{0,1}50×1W2R20×50W3R20×3

Con yD=(d)ij

dijB(1,p=0.5)

donde la operación multiplica puntos con (ver producto Hadamard ).D Mmask(D,M)DM

Por lo tanto, solo muestreamos la matriz cada vez y, por lo tanto, el abandono se convierte en una multiplicación de un nodo con 0.D

Pero para las CNN, no me queda claro qué se retiró exactamente. Puedo ver tres posibilidades:

  1. Descartar mapas completos de características (de ahí un núcleo)
  2. Descartar un elemento de un núcleo (reemplazar un elemento de un núcleo por 0)
  3. Descartar un elemento de un mapa de características

Agregue una referencia / cita a su respuesta.

Mis pensamientos

Creo que Lasagne sí (3) (ver código ). Este podría ser el más sencillo de implementar. Sin embargo, más cerca de la idea original podría estar (1).

Parece ser similar para Caffe (ver código ). Para el flujo de tensor, el usuario tiene que decidir ( código : no estoy seguro de qué sucede cuando noise_shape=Nonese pasa).

Como debería ser

(2) y (3) no tienen mucho sentido ya que causaría que la red agregue invariancia a las posiciones espaciales, lo que probablemente no se desea. Por lo tanto (1) es la única variante que tiene sentido. Pero no estoy seguro de qué sucede si usa la implementación predeterminada.


También hice la pregunta en el grupo de usuarios de Lasagne .
Martin Thoma

Un amigo notó que (2) y (3) podrían no ser una buena idea porque podrían obligar a la red a difundir información espacialmente.
Martin Thoma

Respuestas:


1

Como mencionó, la matriz de la máscara se muestrea y se multiplica con las activaciones en el mapa de características en la capa para producir activaciones modificadas abandonadas que luego se enredan con el filtro en la siguiente capa . (3)W ( l + 1 )lW(l+1)

Para obtener más detalles, creo que la sección 3 de este documento podría ayudarlo: Max-pooling y abandono convolucional . Específicamente 3.2.

Cuando realiza la prueba, utiliza todos los nodos de la red pero con los pesos del filtro escalados por la probabilidad de retención, como se explica en el documento.

Por favor, siéntase libre de refinar o corregir mi respuesta.

Espero que esto ayude, al menos un poco.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.