Глубокая нейронная сеть не обучается

Я тренирую MNIST на 8 слоях (1568-784-512-256-128-64-32-10) полносвязной глубокой нейронной сети с вновь созданной функцией активации, как показано на рисунке ниже. Эта функция немного похожа на ReLU, однако, дает кривую помета на «изломе».

Он работал нормально, когда я использовал его для обучения 5 слоев, 6 слоев и 7 слоев полносвязных нейронных сетей. Проблема возникает, когда я использую его в 8-слойных полносвязных нейронных сетях. Где он будет учиться только в первые несколько эпох, а затем перестанет учиться (потеря при тестировании дает «нан», а точность теста падает до 9,8%). Почему это происходит?

Мои другие конфигурации следующие: отсев = 0,5, инициализация веса = инициализация Xavier, скорость обучения = 0,1.

введите здесь описание изображения

введите здесь описание изображения




Ответы (1)


Я считаю, что это называется проблемой исчезновения градиента, которая обычно возникает в глубокой сети. Не существует жесткого и быстрого правила для ее решения. Мой совет будет изменить вашу сетевую архитектуру

См. здесь [Избегание исчезающего градиента в глубоких нейронных сетях

person Akshay Bahadur    schedule 25.04.2018
comment
Привет, как я могу узнать, что он страдает от исчезновения или взрыва градиента? Есть ли способ его идентифицировать? - person Joshua; 25.04.2018
comment
да... Если ваш проигрыш будет нан с каким-то сообщением об ошибке. Это означает, что ваши градиенты исчезают. Сначала попробуйте уменьшить скорость обучения. Сделайте скорость обучения очень маленькой. Попробуйте гонг для снижения скорости обучения. Если ничего из вышеперечисленного не работает, перейдите на другую архитектуру. - person Akshay Bahadur; 25.04.2018