Quando usar a inicialização normal (He ou Glorot) sobre init uniforme? E quais são seus efeitos com a Normalização em lote?


51

Eu sabia que a Residual Network (ResNet) tornou popular a inicialização normal de He. No ResNet, a inicialização normal é usada , enquanto a primeira camada usa a inicialização uniforme.

Examinei os artigos da ResNet e os artigos "Investigando profundamente os retificadores" (artigo de inicialização He), mas não encontrei nenhuma menção no init normal versus no init uniforme.

Além disso:

A Normalização em lote nos permite usar taxas de aprendizado muito mais altas e ter menos cuidado com a inicialização.

No resumo do artigo sobre Normalização em lote, é dito que a Normalização em lote nos permite ter menos cuidado com a inicialização.

O próprio ResNet ainda cuida de quando usar init normal versus init uniforme (em vez de apenas ir com o init uniforme).

Assim:

  • Quando usar a inicialização distribuída normal (He ou Glorot) sobre a inicialização uniforme?
  • O que são efeitos de inicialização com distribuição normal com a Normalização em lote?

Notas à parte:

  • É rima usar o init normal com a Normalização em Lote, mas não encontrei nenhum documento para apoiar esse fato.
  • Eu sabia que o ResNet usa He init sobre Glorot init porque ele init se sai melhor em uma rede profunda.
  • Eu entendi sobre Glorot init vs Ele init .
  • Minha pergunta é sobre init Normal vs Uniform.

Respostas:


34

O init normal vs uniforme parece pouco claro de fato.

Se nos referirmos apenas aos documentos de inicialização de Glorot e He , ambos usam uma análise teórica semelhante: encontram uma boa variação para a distribuição a partir da qual os parâmetros iniciais são extraídos. Essa variação é adaptada à função de ativação usada e é derivada sem considerar explicitamente o tipo de distribuição. Como tal, suas conclusões teóricas valem para qualquer tipo de distribuição da variação determinada. De fato, no artigo de Glorot, uma distribuição uniforme é usada, enquanto no artigo de He é uma escolha gaussiana. A única "explicação" dada para essa escolha no artigo de He é:

As CNNs profundas recentes são inicializadas principalmente por pesos aleatórios extraídos de distribuições gaussianas

com uma referência ao artigo AlexNet . De fato, foi lançado um pouco depois da inicialização de Glorot, mas, no entanto, não há justificativa para o uso de uma distribuição normal.

De fato, em uma discussão sobre o rastreador de problemas de Keras , eles também parecem um pouco confusos e basicamente só poderia ser uma questão de preferência ... (ou seja, hipoteticamente, Bengio preferia distribuição uniforme, enquanto Hinton preferia os normais ...) Na discussão, há um pequeno benchmark comparando a inicialização do Glorot usando uma distribuição uniforme e uma gaussiana. No final, parece que o uniforme vence, mas não está realmente claro.

No artigo original da ResNet , diz apenas que eles usaram um init gaussiano de He para todas as camadas, não consegui encontrar onde está escrito que eles usaram um uniforme de init para a primeira camada. (talvez você possa compartilhar uma referência a isso?)

Quanto ao uso do init gaussiano com a Normalização de Lotes, bem, com o BN, o processo de otimização é menos sensível à inicialização, portanto, é apenas uma convenção que eu diria.


Eu interpretei isso errado. Você está certo de que o ResNet não usa nenhuma inicialização uniforme. Eu estou corrigido.
rilut

0

11
Por favor, evite postar apenas links. Qualquer link pode ficar morto depois de um tempo e novos leitores não poderão verificar a resposta. Você pode postar um link, mas sempre adicione um resumo da parte mais importante como texto.
Tasos

Comentário @Tasos bem observado. Havia muita informação para resumir e é por isso que eu postei o link e entendi seu ponto de vista. Obrigado.
rocksyne
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.