DeepDigits_AI

Нейронная сеть для классификации цифр с точностью 99.4%

image

Введение

Цель данной работы - создание нейронной сети для распознавания цифр с предельно высокой точностью. Была выбрана задача многоклассовой классификации, на выходном слое содержится десять нейронов, представляющие цифры от "0" до "9".

Архитектура сети

Нейронная модель основана на архитектуре свёрточной сети (Convolutional Neural Network, CNN). В качестве тренировочного набора данных использовался набор рукописных цифр MNIST. Модель предназначена для работы на тензорных процессорах (TPU). За счёт этого, и отсутствия переобучения достигается предельно высокая точность на валидационных данных. model (1)

Сверточный слой с 32 фильтрами размера (3, 3) и функцией активации ReLU, который принимает на вход изображения размера (28, 28, 1).

Общее количество параметров 2,624,394.

Функция потерь и оптимизатор

<img width="639" alt="Screenshot_6" src="https://user-images.githubusercontent.com/101829424/235925205-8a17223b-e1e4-4b03-a45f-eb3a35b77eeb.png"> Для задачи многоклассовой классификации была выбрана функция потерь SparseCategoricalCrossentropy, в качестве оптимизатора используется Adam. Для оценки качества используется метрика sparse_categorical_accuracy.

Результат

<img width="781" alt="Screenshot_5" src="https://user-images.githubusercontent.com/101829424/235924949-10dc4a1c-1ad1-42d8-bcc5-98d4ed2d2dc0.png"> Модель имеет защиту от переобучения и имееет совершенную точность для многоклассовой классификации цифр. Модель доступна для скачивания на huggingface: https://huggingface.co/Innokentiy/DeepDigits_AI

Программа предоставляется в виде открытого исходного кода.