Я построил искусственную нейронную сеть в Python, используя функцию оптимизации scipy.optimize.minimize (Conjugate Gradient).
Я реализовал проверку градиента, дважды проверил все и т.д., и я уверен, что он работает правильно.
Я запускал его несколько раз, и он достигает «Оптимизация успешно завершена», однако, когда я увеличиваю количество скрытых слоев, стоимость гипотезы увеличивается (все остальное остается неизменным) после ее успешного завершения.
Интуитивно кажется, что при увеличении количества скрытых слоев стоимость должна уменьшиться, поскольку она способна генерировать более сложную гипотезу, которая может лучше соответствовать данным, однако, похоже, это не так.
Мне было бы интересно понять, что здесь происходит, или я неправильно внедрил нейронную сеть?
источник
Увеличение количества скрытых слоев для стандартной нейронной сети фактически не улучшит результаты в большинстве случаев. Изменение размера скрытого слоя будет.
Этот факт (что количество скрытых слоев делает очень мало) на самом деле был отмечен исторически и является мотивацией для области глубокого обучения. Глубокое обучение - это эффективный способ обучения многослойных нейронных сетей, например, путем выделения подмножеств функций при обучении разных слоев.
Хорошее вступительное видео на эту тему на YouTube
источник