Почему ошибка сети всегда растет и сеть предсказывает один и тот же класс?
Добрый день ! сделал реализацию нейронные сети как в книге Tariq Rashid .
Два слоя (200x784 и 10x200) . сигмойд как функция активации .
Во время тренировки сети ошибка с каждой итерацией растет , а так же сеть всегда предсказывает один и тот же класс .
Причем при прямом проходе сеть так же предсказывает один и тот же класс ( входящие данные разные ) . Ошибка так же растет в небеса .
Реализация была написана на Rust . веса заполнены Normal distribution .
Код проверил , умножение матриц ,реализация sigmoid работает как в книге Tariq Rashid .
Здравствуйте ! Я уменьшил Learning rate до 0.00003 . loss стал в районе = 0.13 (cross entropy), но сеть так же предсказывает одно и то же значение . Я уже полысел , усложнил сеть, но ничего не помогает . Самое смешное что веса при обновлениях имеют те же значения что из примера на python . Я веса считал из numpy .
Было что нибудь похоже из опыта у Вас ?
Я использую PyTorch (Python), Rust не знаю. Самое простое - кардинально уменьшить число нейронов, допустим, 2 на входе, 2 на выходе. Тогда на калькуляторе можно проверить все операции. Для простоты ещё занулить bias.
Если начальные веса случайны, то генератору сл. чисел подсовывать одно и то же семя.