Treinando uma rede neural de convolução

11

Atualmente, estou trabalhando em um software de reconhecimento de rosto que usa redes neurais de convolução para reconhecer rostos. Com base nas minhas leituras, concluí que uma rede neural convolucional compartilhou pesos, para economizar tempo durante o treinamento. Mas como adaptar a retropropagação para que possa ser usada em uma rede neural de convolução. Na retropropagação, utiliza-se uma fórmula semelhante a essa para treinar os pesos.

New Weight  = Old Weight +  LEARNING_RATE * 1 * Output Of InputNeuron * Delta

No entanto, como nas redes neurais convolucionais, os pesos são compartilhados, cada peso é usado com vários neurônios, então como eu decido qual Output of InputNeuroné usado?

Em outras palavras, uma vez que os pesos são compartilhados, como decido quanto alterar os pesos?

diwgan32
fonte

Respostas:

13

Você precisa primeiro calcular todas as suas atualizações como se os wieghts não fossem compartilhados, mas apenas armazená-las, ainda não faça nenhuma atualização.

WkEuk={(Eu,j):WEu,j=Wk}ΔWEu,j=-ηJWEu,jηJWEu,j

WEu,j=WEu,j+ΔWEu,j.
ΔWk=(Eu,j)EukΔWEu,j
Wk=Wk+ΔWk.
alto
fonte
11
Você tem alguma referência para isso? Para uma leitura mais aprofundada
Jon