Skip to content

AnglewoodJack/yet_another_mnist_recognizer

Repository files navigation

yet_another_mnist_recognizer

Распознавание рукописных цифр из датасета MNIST с помощью простейшей нейросети.

Описание

Реализовано распознавание рукописных цифр на наборе данных MNIST с помощью базовой
нейронной сети, созданной без использования специализированных библиотек:

  1. На основе двухслойной нейросети (скрытый и выходной слои), подробно описанной в книге
    "Make Your Own Neural Network" (Tariq Rashid). Ссылка на соответсвующий рпозитрий автора.

    Тренировочный и тестовый датасеты взяты с сайта автора в формате .csv.

    В качестве препроцессинга данных использовано "выравнивание" (deskew) - источник
    - с некоторыми модификациями.

    Лучший результат на тестовом датасете: accuracy = 0.9838 (error = 1.62 %)

  2. На основе двухслойной нейросети из курса «Профессия Data Scientist‌» от онлайнн унниверситета Skillbox.

    Тренировочный и тестовый датасеты загружены из библиотеки TensorFlow.
    В качестве препроцессинга также использован deskew.

    Лучший результат на тестовом датасете: accuracy = 0.9873 (error = 1.27 %)

  3. На основе двухслойной нейросети с использованием библиотеки keras.

    Лучший результат на тестовом датасете: accuracy = 0.9874 (error = 1.26 %)

  4. На основе свёрточной пятислойной нейросети (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 - зависимости

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published