Como encontrar o número ideal de neurônios por camada?

28

Ao escrever seu algoritmo, como você sabe quantos neurônios você precisa por camada única? Existem métodos para encontrar o número ideal deles ou é uma regra de ouro?

kenorb
fonte

Respostas:

7

Para uma abordagem mais inteligente do que pesquisas aleatórias ou exaustivas, você pode tentar um algoritmo genético como o NEAT http://nn.cs.utexas.edu/?neat . No entanto, isso não garante que encontre um ótimo global, é simplesmente um algoritmo de otimização baseado no desempenho e, portanto, vulnerável a ficar preso em um ótimo local.

Tim Atkinson
fonte
1
De qualquer forma, chegará bem perto de um ótimo global.
jjmerelo
4

Papel Szegedy C, Vanhoucke V, Ioffe S, et al. Repensando a arquitetura inicial para visão computacional [J]. pré-impressão do arXiv arXiv: 1512.00567, 2015. fornece alguns princípios gerais de design:

  1. Evite gargalos representacionais, especialmente no início da rede;

  2. Equilibre a largura e a profundidade da rede. O desempenho ideal da rede pode ser alcançado equilibrando o número de filtros por estágio e a profundidade da rede. Aumentar a largura e a profundidade da rede pode contribuir para redes de maior qualidade. No entanto, a melhoria ideal para uma quantidade constante de computação pode ser alcançada se ambos forem aumentados em paralelo. O orçamento computacional deve, portanto, ser distribuído de maneira equilibrada entre a profundidade e a largura da rede.

Porém, essas sugestões não oferecem o número ideal de neurônios em uma rede.

No entanto, ainda existem algumas pesquisas de compressão de modelos, por exemplo, Structured Sparsity Learning (SSL) da Deep Neural Networks , SqueezeNet , rede de poda que podem lançar alguma luz sobre como otimizar os neurônios por camada única.

Especialmente no aprendizado de escassez estruturada de redes neurais profundas , ele adiciona um Group Lassotermo de regularização na função de perda para regularizar as estruturas (ou seja, filtros, canais, formas de filtro e profundidade da camada) de DNNs, que é zerar alguns componentes ( isto é, filtros, canais, formas de filtro e profundidade da camada) da estrutura da rede e obtém uma notável compactação e aceleração da rede, enquanto mantém uma pequena perda de precisão na classificação.

Dale
fonte
3

Você sabe que quando você tem muitos neurônios, é quando você supera o ajuste. Isso significa que não está funcionando bem porque o NN está tentando ativar a correspondência mais perfeita possível. Como dois gatos diferentes com a mesma quantidade de átomos, ou seja, é um detector NN que só é ativado em uma foto do seu gato de estimação e nada mais. Você deseja uma faixa mais ampla para o nn ativar. Como em qualquer foto de gato.

Overfitting é um problema que não tem uma solução rápida real. Você pode começar com muito poucos e continuar adicionando mais. Ou comece com muito e remova-os até que funcione corretamente.


fonte