Por que as funções de ativação não centralizadas em zero são um problema na retropropagação?

26

Eu li aqui o seguinte:

  • As saídas sigmóides não são centralizadas em zero . Isso é indesejável, uma vez que neurônios em camadas posteriores de processamento em uma rede neural (mais sobre isso em breve) receberiam dados que não são centralizados em zero. Isto tem implicações sobre a dinâmica durante gradiente descendente, porque, se os dados de entrada em um neurónio é sempre positiva (por exemplo, x>0 elemento a elemento em f=wTx+b )), em seguida, o gradiente nos pesos w vontade durante retropropagação tornar-se quer todos são positivos ou todos negativos (dependendo do gradiente de toda a expressão f) Isso poderia introduzir uma dinâmica indesejável de zigue-zague nas atualizações de gradiente para os pesos. No entanto, observe que, depois que esses gradientes são somados em um lote de dados, a atualização final dos pesos pode ter sinais variáveis, mitigando um pouco esse problema. Portanto, isso é um inconveniente, mas tem consequências menos graves em comparação com o problema de ativação saturada acima.

Por que ter todos x>0 (elementwise) levaria a gradientes totalmente positivos ou negativos em w ?


Amelio Vazquez-Reina
fonte
2
Eu também tive exatamente a mesma pergunta assistindo vídeos do CS231n.
Subwaymatch 25/11

Respostas:

28

f=wixi+b
dfdwi=xi
dLdwi=dLdfdfdwi=dLdfxi

xi>0dLdwidLdf


w1w2

Se o nosso objetivo estiver no nordeste, só podemos nos mover em zigue-zague para chegar lá, assim como o estacionamento paralelo em um espaço estreito. (perdoe meu desenho)

insira a descrição da imagem aqui

Portanto, funções de ativação totalmente positivas ou negativas (relu, sigmóide) podem ser difíceis para otimização baseada em gradiente. Para resolver esse problema, podemos normalizar os dados antecipadamente para serem centralizados em zero, como na normalização de lote / camada.

f=wi(xi+bi).
dLdwi=dLdf(xibi)
xi

dontloo
fonte
Por favor, corrija-me se eu estiver errado, mas o valor de dL / df não deve ser transposto por x, por exemplo, xT, pois estaríamos usando a idéia de Jacobin aqui.
Chinmay
fwTx+bLwx
Sim, é um grande erro de digitação do meu fim. Eu quis dizer df / dw .... mas eu acho que depende mais do vector x e se é um vetor linha ou um vetor coluna
Chinmay
dL/df
11
@floyd oi Acabei de adicionar algumas atualizações para sua pergunta
dontloo 01/08