Vários filtros em uma camada convolucional não aprenderiam o mesmo parâmetro durante o treinamento?

11

Com base no que aprendi, usamos vários filtros em uma camada Conv de uma CNN para aprender diferentes detectores de recursos. Mas como esses filtros são aplicados de maneira semelhante (ou seja, deslizados e multiplicados pelas regiões da entrada), eles não aprenderiam os mesmos parâmetros durante o treinamento? Portanto, o uso de vários filtros seria redundante?

cjbayron
fonte

Respostas:

6

Eu tive a mesma confusão ao entender esse fato. A confusão surge para os iniciantes, porque a explicitação do livro não menciona que os filtros são diferentes.

já que esses filtros são aplicados de maneira semelhante

Os filtros são aplicados de maneira semelhante, mas o valor da célula na matriz é diferente um do outro. Então eles extraem diferentes recursos da imagem.

eles não aprenderiam apenas os mesmos parâmetros durante o treinamento

Não, eles não aprendem o mesmo parâmetro, já que os filtros são diferentes agora. Portanto, o uso de vários filtros não é redundante.

homem de Ferro
fonte
Obrigado por responder. O que exatamente os torna diferentes? Como garantimos que eles aprendam parâmetros diferentes durante o treinamento? São seus valores iniciais?
cjbayron
11
Valores diferentes de cada célula os tornam diferentes. Como alguns detectam uma linha inclinada, outros detectam uma linha curva de 45 graus, etc. Portanto, todos são diferentes.
ironman
11
Sim, eu entendo que valores diferentes fazem com que os filtros detectem recursos diferentes. Mas como esses filtros aprendem de maneira diferente durante o treinamento?
Cjbayron
3
Se todos os filtros começarem da mesma forma, eles permanecerão assim. A inicialização aleatória significa que eles começam diferentes e a partir daí aprendem coisas diferentes. Procure quebra de simetria em redes neurais para obter mais informações.
Aaron
4

Encontrei a resposta para esta pergunta: https://www.quora.com/Why-does-each-filter-learn-different-features-in-a-convolutional-neural-network

Ele diz aqui: "... O algoritmo (de otimização) descobre que a perda não diminui se dois filtros tiverem pesos e desvios semelhantes; portanto, eventualmente mudará um dos filtros (pesos e desvios) para reduzir a perda. aprendendo um novo recurso ".

Obrigado pelas respostas. Aprecie :)

cjbayron
fonte