Skip to content

Marat1234qwer/NeuralNetwork_Digit_recognizer

Repository files navigation

Нейросеть распознования рукописных цифр.

Нейросеть состоит из 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).

  1. Умножаем каждый нейрон первого слоя(64 нейрона) на веса первого слоя нейронных связей, получаем значение второго слоя нейронов(20 нейронов).
  2. Умножаем каждый нейрон второго слоя на веса второго слоя нейронных связей, получаем значение выходных нейронов(10 нейронов).
  3. Считаем ошибку - разницу между ожидаемым и полученным результатом, умножаем на learning-rate.
  4. Считаем на сколько нужно откоректировать веса.
  5. Корректирум веса. Повторяем все действия необходимое количество раз - количество эпох.

predict.py Предсказание нейронной сети. Выбираем изображения из тестового набора. Загружаем веса нейронных связей, полученных после обучения нейросети. Проводим проверку - перемножаем значения нейронов с весами нейронных связей. Выводим на печать выбранную цифру, цифру в виде матрицы чисел - оттенков серого цвета, предсказание нейросети, показываем изображение.

Releases

No releases published

Packages

No packages published

Languages