DeepDigits_AI / README.md
Innokentiy's picture
Update README.md
2028705
|
raw
history blame
5.13 kB
metadata
license: gpl-2.0

DeepDigits_AI

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

image

Введение

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

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

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

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

  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Сверточный слой с 64 фильтрами размера (3, 3) и функцией активации ReLU.
  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Слой MaxPooling2D с размером пула (2, 2).
  • Слой Dropout с коэффициентом 0.25 для регуляризации.
  • Сверточный слой с 128 фильтрами размера (3, 3) и функцией активации ReLU.
  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Сверточный слой с 256 фильтрами размера (3, 3), функцией активации ReLU и регуляризацией L2 со значением 0.001.
  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Слой MaxPooling2D с размером пула (2, 2).
  • Слой Dropout с коэффициентом 0.25 для регуляризации.
  • Слой Flatten для преобразования выходов сверточных слоев в одномерный вектор.
  • Полносвязный слой с 512 нейронами и функцией активации ReLU, а также регуляризацией L2 со значением 0.001.
  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Слой Dropout с коэффициентом 0.5 для регуляризации.
  • Полносвязный слой с 256 нейронами и функцией активации ReLU, а также регуляризацией L2 со значением 0.001.
  • Слой BatchNormalization для нормализации выходов предыдущего слоя.
  • Слой Dropout с коэффициентом 0.5 для регуляризации.
  • Полносвязный слой с 10 нейронами и функцией активации softmax для классификации изображений на 10 классов, т. е. для цифр от '0' до '9'.

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

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

Screenshot_6 Для задачи многоклассовой классификации была выбрана функция потерь SparseCategoricalCrossentropy, в качестве оптимизатора используется Adam. Для оценки качества используется метрика sparse_categorical_accuracy.

Результат

Screenshot_5 Модель имеет защиту от переобучения и имееет совершенную точность для многоклассовой классификации цифр. <Программа предоставляется в виде открытого исходного кода.