Распознавание рукописных цифр из датасета MNIST с помощью простейшей нейросети.
Реализовано распознавание рукописных цифр на наборе данных MNIST с помощью базовой
нейронной сети, созданной без использования специализированных библиотек:
- На основе двухслойной нейросети (скрытый и выходной слои), подробно описанной в книге
"Make Your Own Neural Network" (Tariq Rashid). Ссылка на соответсвующий рпозитрий автора.
Тренировочный и тестовый датасеты взяты с сайта автора в формате .csv.
В качестве препроцессинга данных использовано "выравнивание" (deskew) - источник
- с некоторыми модификациями.
Лучший результат на тестовом датасете:accuracy = 0.9838 (error = 1.62 %)
- На основе двухслойной нейросети из курса «Профессия Data Scientist» от онлайнн унниверситета Skillbox.
Тренировочный и тестовый датасеты загружены из библиотеки TensorFlow.
В качестве препроцессинга также использован deskew.
Лучший результат на тестовом датасете:accuracy = 0.9873 (error = 1.27 %)
- На основе двухслойной нейросети с использованием библиотеки keras.
Лучший результат на тестовом датасете:accuracy = 0.9874 (error = 1.26 %)
- На основе свёрточной пятислойной нейросети (3 свёрточных слоя с 2-мя max pooling, 2 полносвязных слоя) с использованием библиотеки keras.
Лучший результат на тестовом датасете:accuracy = 0.9940 (error = 0.6 %)
Метод deskew применялся для всех нейросетей выше.
Папка simple_nn
:
nn_2_layer.py
- двухслойная нейросеть (один скрытий и выходной слой)nn_3_layer.py
- трехслойная нейросеть (два скрытых и один выходной слой)FitPred.py
- функции для тренировки и опроса нейросетиbest_model.py
- скрипт с реализацией лучшей модел из ноутбука "research.ipynb"model.pickle
- обученная модель с лучшими показателями
Папка advanced
:
layer.py
- определение слоев нейросетиloss.py
- функции для нахожденния потерьbatch.py
- раазбиение на минибатчиnetwork.py
- создание нейросетиbest_model.py
- скрипт с реализацией лучшей моделиmodel.pickle
- обученная модель с лучшими показателями
Папка benchmark
:
keras_mnist.py
- нейросеть с использованием библиотеки keras- Папка
model_trained
:
best_checkpoint.hdf5
- модель с лучшим показателем точности
Папка convolution
:
conv.py
- свёрточная нейросеть с использованием библиотеки keras- Папка
conv_trained
:
best_checkpoint.hdf5
- модель с лучшим показателем точности
Папка preprocess
:
deskew.py
- функции для прероцессинга данных - "выравнивание"elastic.py
- функции для прероцессинга данных - упругое искажение
research.ipynb
- ноутбук с подборов наилучших параметров модели
requirements.txt
- зависимости