Por que a inicialização de pesos e viés deve ser escolhida em torno de 0?


13

Eu li o seguinte:

Para treinar nossa rede neural, inicializaremos cada parâmetro W (l) ijWij (l) e cada b (l) ibi (l) para um pequeno valor aleatório próximo de zero (digamos, de acordo com um Normal (0, ϵ2) Normal (0) , ϵ2) distribuição de alguns ϵϵ pequenos, digamos 0,01)

dos tutoriais de aprendizagem profunda de Stanford no 7º parágrafo do algoritmo de retropropagação

O que não entendo é por que a inicialização do peso ou do viés deve ser em torno de 0 ?

Respostas:


11

Supondo uma normalização de dados razoavelmente razoável, a expectativa dos pesos deve ser nula ou próxima a ela. Pode ser razoável, então, definir todos os pesos iniciais como zero, porque um peso inicial positivo terá ainda mais se for realmente um peso negativo e vice-versa. Isso, no entanto, não funciona. Se todos os pesos forem iguais, todos terão o mesmo erro e o modelo não aprenderá nada - não há fonte de assimetria entre os neurônios.

Em vez disso, o que poderíamos fazer é manter os pesos muito próximos de zero, mas torná-los diferentes, inicializando-os em números pequenos e diferentes de zero. Isso é o que é sugerido no tutorial que você vinculou. Ele tem a mesma vantagem da inicialização com zero, pois está próximo do valor esperado da 'melhor estimativa', mas a simetria também foi quebrada o suficiente para o algoritmo funcionar.

Essa abordagem tem problemas adicionais. Não é necessariamente verdade que números menores funcionem melhor, especialmente se a rede neural for profunda. Os gradientes calculados na retropropagação são proporcionais aos pesos; pesos muito pequenos levam a gradientes muito pequenos e podem levar a rede a levar muito, muito mais tempo para treinar ou nunca concluir.

sqrt(d)d[-1d,1d]


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.