Нейросеть состоит из 64 входных нейрона, 20 нейронов - внутренний слой, 10 выходных нейрона - соответствуют 10 цифрам. Данные для обучения - 1500 изображений рукописных цифр, каждое изображение размером 8х8 пикселов(64 входных нейрона). Тестовые данные - 297 изображений.
Присваиваем нейронным связям рандомные веса: weight_0_1 = np.random.normal(0.0, 2 ** -0.5, (20, 64)) weight_1_2 = np.random.normal(0.0, 1, (10, 20))
training.py Обучить нейросеть - присвоить правильные веса нейронным связям(значение от 0 до 1).
- Умножаем каждый нейрон первого слоя(64 нейрона) на веса первого слоя нейронных связей, получаем значение второго слоя нейронов(20 нейронов).
- Умножаем каждый нейрон второго слоя на веса второго слоя нейронных связей, получаем значение выходных нейронов(10 нейронов).
- Считаем ошибку - разницу между ожидаемым и полученным результатом, умножаем на learning-rate.
- Считаем на сколько нужно откоректировать веса.
- Корректирум веса. Повторяем все действия необходимое количество раз - количество эпох.
predict.py Предсказание нейронной сети. Выбираем изображения из тестового набора. Загружаем веса нейронных связей, полученных после обучения нейросети. Проводим проверку - перемножаем значения нейронов с весами нейронных связей. Выводим на печать выбранную цифру, цифру в виде матрицы чисел - оттенков серого цвета, предсказание нейросети, показываем изображение.