Я хочу написать свою нейронную сеть с 0 которая распознавала бы числа от 0-9, для этого я скачал базы картинок MNIST и начал писать код. Саму нейронную сеть я реализовал довольно быстро, а вот с обучением проблемы. По книге "Создаём нейронную сеть" Тарик Рашид, использовал формулу получения ошибки и получения нового значения весов
На очень простой сети (1 вход 1 скрытый слой и 1 выход), я подавал на вход 1, а на выходе требовал 0 или 1, и оно приводило веса так, чтобы выдавалось верное значение. Но когда я взял 786 входных (картинки с цифрами 28х28) 2 скрытых слоя по 16 нейронов и 10 выходных, то почему, то она не обучается и спустя 60тыщ. картинок из базы выдаёт на любую картинку всюду на выходе почти 1. Давал я ей эти картинки в случайном порядке по 100 штук.
Вот исходный код:
GitHub
Почему она не обучается и что я делаю не так?