Qual é a diferença entre dropout e drop connect?

24

Qual é a diferença entre dropout e drop connect?

No AFAIK, o abandono elimina aleatoriamente os nós ocultos durante o treinamento, mas os mantém em teste e o abandono deixa cair as conexões.

Mas descartar conexões equivale a descartar os nós ocultos? Os nós (ou conexões) não são apenas um conjunto de pesos?

Machina333
fonte

Respostas:

24

DropOut e DropConnect são dois métodos destinados a impedir a "co-adaptação" de unidades em uma rede neural. Em outras palavras, queremos que as unidades extraiam independentemente recursos de suas entradas, em vez de depender de outros neurônios para fazê-lo.

Suponha que tenhamos uma rede de feedforward de várias camadas como essa (a topologia realmente não importa). Estamos preocupados com as unidades ocultas amarelas na camada intermediária que se adaptam.

rede de amostra 5-4-3

Cair fora

Para aplicar o DropOut, selecionamos aleatoriamente um subconjunto das unidades e fixamos sua saída em zero, independentemente da entrada; isso remove efetivamente essas unidades do modelo. Um subconjunto diferente de unidades é selecionado aleatoriamente toda vez que apresentamos um exemplo de treinamento.

Abaixo estão duas configurações de rede possíveis. Na primeira apresentação (esquerda), a 1ª e a 3ª unidades estão desabilitadas, mas a 2ª e a 3ª unidades foram selecionadas aleatoriamente em uma apresentação subsequente. No momento do teste, usamos a rede completa, mas redimensionamos os pesos para compensar o fato de que todos eles agora podem se tornar ativos (por exemplo, se você soltar metade dos nós, os pesos também devem ser reduzidos à metade).

Exemplos do DropOut

DropConnect

O DropConnect funciona da mesma forma, exceto que desabilitamos pesos individuais (ou seja, os definimos como zero), em vez de nós, para que um nó possa permanecer parcialmente ativo. Esquematicamente, é assim:

DropConnect

Comparação

Esses métodos funcionam porque permitem treinar vários modelos ao mesmo tempo e, em seguida, fazer a média entre eles para teste. Por exemplo, a camada amarela possui quatro nós e, portanto, 16 estados possíveis de DropOut (todos ativados, nº 1 desativado, nº 1 e nº 2 desativados, etc.).

O DropConnect é uma generalização do DropOut porque produz ainda mais modelos possíveis, pois quase sempre há mais conexões do que unidades. No entanto, você pode obter resultados semelhantes em um teste individual. Por exemplo, a rede DropConnect à direita eliminou efetivamente a unidade nº 2, pois todas as conexões recebidas foram removidas.

Leitura adicional

Os artigos originais são bastante acessíveis e contêm mais detalhes e resultados empíricos.

Matt Krause
fonte
6

Sim, mas eles são um pouco diferentes em termos de como os pesos caem.

Estas são as fórmulas de DropConnect (esquerda) e dropout (direita).

insira a descrição da imagem aqui insira a descrição da imagem aqui

Portanto, o dropout aplica uma máscara às ativações, enquanto o DropConnect aplica uma máscara aos pesos.

O documento DropConnect diz que é uma generalização do abandono no sentido de que

DropConnect é a generalização do Dropout na qual cada conexão, em vez de cada unidade de saída como no Dropout, pode ser eliminada com probabilidade p.

dontloo
fonte