Construí una red neuronal artificial en Python usando la función de optimización scipy.optimize.minimize (gradiente conjugado).
Implementé la verificación de gradiente, verifiqué todo, etc., y estoy bastante seguro de que funciona correctamente.
Lo he ejecutado varias veces y llega a 'Optimización finalizada con éxito', sin embargo, cuando aumento el número de capas ocultas, el costo de la hipótesis aumenta (todo lo demás se mantiene igual) después de que finalizó con éxito.
Intuitivamente, parece que el costo debería disminuir cuando se aumenta el número de capas ocultas, ya que es capaz de generar una hipótesis más compleja que puede ajustarse mejor a los datos, sin embargo, este no parece ser el caso.
Me interesaría saber qué está pasando aquí, o si he implementado la red neuronal de manera incorrecta.
fuente
Aumentar el número de capas ocultas para una red neuronal estándar en realidad no mejorará los resultados en la mayoría de los casos. Cambiar el tamaño de la capa oculta lo hará.
Este hecho (que el número de capas ocultas hace muy poco) se ha observado históricamente y es la motivación detrás del campo del aprendizaje profundo. El aprendizaje profundo es una forma inteligente de entrenar redes neuronales multicapa, por ejemplo, al aislar subconjuntos de características al entrenar diferentes capas.
Buen video introductorio sobre este tema en YouTube
fuente