Eu estava lendo o documento de normalização em lote [1] e tinha uma seção em que é apresentado um exemplo, tentando mostrar por que a normalização deve ser feita com cuidado. Sinceramente, não consigo entender como o exemplo funciona e estou genuinamente muito curioso para entender que eles são tão importantes quanto eu. Primeiro deixe-me citar aqui:
Por exemplo, considere uma camada com a entrada u que adiciona o viés b aprendido, e normaliza o resultado subtraindo a média da activação calculado sobre os dados de em que x = u + b , X = { x 1 . . . N } é o conjunto de valores de x sobre o conjunto de treinamento e E [ x ] = ∑ N i = 1 x i. Se um passo de descida de gradiente ignora a dependência de em b , ele atualiza b ← b + Δ > b , onde Δ b ∝ - ∂ l . Entãou+(b+Δb)-E[u+(b+Δb)]=u+b-E[u+b]. Assim, a combinação da atualização parabesubsequente mudança na normalização não levou a nenhuma alteração na saída da camada nem, consequentemente, à perda.
Acho que entendi a mensagem de que, se não se faz a normalização adequadamente, pode ser ruim. Eu simplesmente não sei como o exemplo que eles estão usando retrata isso.
Estou ciente de que é difícil ajudar alguém se eles não são mais específicos sobre o que os confunde, por isso fornecerei na próxima seção as coisas que estão me confundindo com a explicação deles.
Acho que a maioria das minhas confusões pode ser notacional, então vou esclarecer.
Primeiro, acho que uma das coisas que mais me confunde é o que significa para os autores ter uma unidade na rede e o que é uma ativação. Normalmente, penso em uma ativação como:
onde são os vetores de recursos brutos da primeira camada de entrada.
Além disso, acho que uma das primeiras coisas que me confunde (devido à razão anterior) é qual é realmente o cenário que eles estão tentando explicar. Diz:
normaliza o resultado subtraindo a média da activação calculado através dos dados de em que x = u + b
Eu acho que o que eles estão tentando dizer é que, em vez de usar as ativações calculadas pelo passe para frente, alguém realiza algum tipo de "normalização" subtraindo a ativação média:
e depois passa isso para o algoritmo de retropropagação. Ou pelo menos é o que faria sentido para mim.
Em relação a isso, acho que o que eles chamam de é talvez x ( l ) ? É o que eu acho que eles chamam de "input" e têm a equação x = u + b (acho que eles estão usando a unidade de ativação de identidade / linear para sua rede neural? Talvez).
Para mais me confundem, eles definem como algo proporcional à derivada parcial, mas a derivada parcial é calculado em relação à x , que parece realmente bizarro para mim. Geralmente, as derivadas parciais ao usar descida de gradiente são relativas aos parâmetros da rede. No caso de uma compensação, eu teria pensado:
faz mais sentido do que tomar a derivada de com relação às ativações normalizadas. Eu estava tentando entender por que eles levaria a derivada em relação à x e eu pensei que talvez eles estavam se referindo aos deltas quando escreveram ∂ l desde, geralmente, que é a única parte do algoritmo volta-hélice que tem um derivado com respeito à pré-activações uma vez que a equação de delta é:
Outra coisa que me confunde é:
Então .
eles realmente não dizem o que estão tentando calcular na equação acima, mas eu inferiria que eles estão tentando calcular a ativação normalizada atualizada (para a primeira camada?) depois que é atualizado para b + Δ b ? Não tenho certeza se comprei o argumento deles, porque acho que a equação correta deveria ter sido:
Não tenho certeza se esse é o entendimento correto, mas pensei um pouco no exemplo deles. Parece que o exemplo deles não possui uma unidade de ativação não linear (usa a identidade) e eles estão falando apenas da primeira camada de entrada? Como eles deixaram de fora muitos detalhes e a notação não é muito clara, não posso deduzir exatamente do que eles estão falando. Alguém sabe como expressar este exemplo com uma notação que expressa o que está acontecendo em cada camada? Alguém entende o que realmente está acontecendo com esse exemplo e deseja compartilhar sua sabedoria comigo?
[1]: Ioffe S. e Szegedy C. (2015),
"Normalização de lotes: acelerando o treinamento em rede profunda reduzindo a mudança de Covariate Interna",
Anais da 32ª Conferência Internacional sobre Aprendizado de Máquina , Lille, França, 2015.
Journal of Machine Learning Pesquisa: W&CP volume 37