Em alguns tutoriais, constatei que a inicialização do peso "Xavier" (artigo: Entendendo a dificuldade de treinar redes neurais profundas de avanço ) é uma maneira eficiente de inicializar os pesos das redes neurais.
Para camadas totalmente conectadas, havia uma regra prática nesses tutoriais:
em que representa a variação das ponderações para uma camada, inicializadas com uma distribuição normal e n i n , n o u t é a quantidade de neurónios no pai e na camada corrente.
Existem regras práticas semelhantes para as camadas convolucionais?
Estou lutando para descobrir o que seria melhor inicializar os pesos de uma camada convolucional. Por exemplo, em uma camada em que a forma dos pesos é (5, 5, 3, 8)
, então o tamanho do kernel é 5x5
, filtrando três canais de entrada (entrada RGB) e criando 8
mapas de recursos ... seria 3
considerada a quantidade de neurônios de entrada? Ou melhor 75 = 5*5*3
, porque a entrada são 5x5
patches para cada canal de cores?
Eu aceitaria ambos, uma resposta específica que esclareça o problema ou uma resposta mais "genérica" que explique o processo geral de encontrar a inicialização correta dos pesos e, de preferência, vincular fontes.
Eu segundo a resposta de Eric aqui. Eu também tomo o "sqrt" do termo e não apenas esse termo. Apesar disso, quando você conecta o sigmóide na sua rede à saída "RelU" ..., isso pode causar a paralisação do treinamento. Isso ocorre devido à saída "Relu" ilimitada, que pode fazer com que o gradiente no sigmóide caia para 0 e nenhum aprendizado acontece. Portanto, nos casos, tenho um fator "scaleDown" para minha rede que pesará o desvio de inicialização por esse fator. Eu continuo ajustando empiricamente os pesos até que o aprendizado aconteça. Uma maneira simples de encontrar é salvar o modelo imediatamente após 1 iteração e dar uma olhada na saída RELU (conectada ao sigmoid). Continue ajustando os pesos até que esta saída RELU seja razoável. E então use esses pesos para o treinamento. É um bom começo. Se ainda entrar em colapso após algumas iterações, pesá-los um pouco mais até alcançar a estabilidade. É apenas um truque que eu usei. Funcionou para mim na minha configuração. Então, compartilhando minha experiência. Coisas diferentes funcionam para configurações diferentes.
Então boa sorte!
fonte