Em uma rede neural normal, cada neurônio tem seu próprio peso.
Isso não está correto. Toda conexão entre neurônios tem seu próprio peso. Em uma rede totalmente conectada, cada neurônio será associado a muitos pesos diferentes. Se houver n0
entradas (isto é, n0
neurônios na camada anterior) para uma camada com n1
neurônios em uma rede totalmente conectada, essa camada terá n0*n1
pesos, sem contar com qualquer termo de viés.
Você deve conseguir ver isso claramente neste diagrama de uma rede totalmente conectada do CS231n . Cada borda que você vê representa um peso treinável diferente:
As camadas convolucionais são diferentes, pois possuem um número fixo de pesos governados pela escolha do tamanho e do número de filtros, mas independentemente do tamanho da entrada.
Cada filtro tem um peso separado em cada posição de sua forma. Portanto, se você usar dois filtros 3x3x3, terá 54 pesos, novamente sem contar o viés. Isso é ilustrado em um segundo diagrama do CS231n :
Os pesos do filtro absolutamente devem ser atualizados na retropropagação, pois é assim que eles aprendem a reconhecer os recursos da entrada. Se você ler a seção "Visualizando redes neurais" aqui , verá como as camadas de uma CNN aprendem recursos cada vez mais complexos da imagem de entrada à medida que você se aprofunda na rede. Tudo isso é aprendido ajustando os pesos do filtro através da retropropagação.
Durante a propagação de retorno, as camadas densa e de convolução são atualizadas, mas as camadas de pool máximo não têm nenhum peso a ser atualizado. Camadas densas são atualizadas para ajudar a rede a se classificar. As camadas de convolução são atualizadas para permitir que a rede aprenda os próprios recursos. Como você não fez a pergunta, basta adicionar um link para você, se quiser saber mais. Há uma explicação muito boa para propagação traseira aqui, que pode ser útil para você.
fonte