Eu construí uma rede neural artificial em python usando a função de otimização scipy.optimize.minimize (Conjugate gradient).
Eu implementei a verificação de gradiente, verifiquei tudo, etc, e tenho certeza de que está funcionando corretamente.
Eu o executei algumas vezes e ele alcança 'Otimização finalizada com êxito', no entanto, quando eu aumento o número de camadas ocultas, o custo da hipótese aumenta (todo o resto é mantido o mesmo) após a finalização com êxito.
Intuitivamente, parece que o custo deve diminuir quando o número de camadas ocultas é aumentado, pois é capaz de gerar uma hipótese mais complexa que pode ajustar melhor os dados, mas isso parece não ser o caso.
Eu estaria interessado em entender o que está acontecendo aqui, ou se eu implementei a rede neural incorretamente?
fonte
Aumentar o número de camadas ocultas para uma rede neural padrão, na verdade, não melhora os resultados na maioria dos casos. Alterar o tamanho da camada oculta será.
Esse fato (que o número de camadas ocultas faz muito pouco) foi observado historicamente e é a motivação por trás do campo da aprendizagem profunda. O aprendizado profundo é formas efetivamente inteligentes de treinar redes neurais multicamadas, por exemplo, isolando subconjuntos de recursos ao treinar diferentes camadas.
Bom vídeo introdutório sobre este tópico no YouTube
fonte