Innokentiy commited on
Commit
2028705
1 Parent(s): 6de9bc7

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +44 -0
README.md CHANGED
@@ -1,3 +1,47 @@
1
  ---
2
  license: gpl-2.0
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: gpl-2.0
3
  ---
4
+ # DeepDigits_AI
5
+ ## Нейронная сеть для классификации цифр с точностью 99.4%
6
+ ![image](https://user-images.githubusercontent.com/101829424/235917558-4b4642e8-8808-4938-84bf-27de5592b442.png)
7
+
8
+ ## Введение
9
+ Цель данной работы - создание нейронной сети для распознавания цифр с предельно высокой точностью. Была выбрана задача многоклассовой классификации, на выходном слое содержится десять нейронов, представляющие цифры от "0" до "9".
10
+
11
+
12
+ ## Архитектура сети
13
+ Нейронная модель основана на архитектуре свёрточной сети (Convolutional Neural Network, CNN). В качестве тренировочного набора данных использовался набор рукописных цифр
14
+ [MNIST](https://www.tensorflow.org/datasets/catalog/mnist?hl=ru). Модель предназначена для работы на тензорных процессорах (TPU). За счёт этого, и отсутствия переобучения достигается предельно высокая точность на валидационных данных.
15
+ ![model (1)](https://user-images.githubusercontent.com/101829424/235922343-c069317a-0b61-44dd-b518-83c24ebe336b.png)
16
+
17
+ Сверточный слой с 32 фильтрами размера (3, 3) и функцией активации ReLU, который принимает на вход изображения размера (28, 28, 1).
18
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
19
+ - Сверточный слой с 64 фильтрами размера (3, 3) и функцией активации ReLU.
20
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
21
+ - Слой MaxPooling2D с размером пула (2, 2).
22
+ - Слой Dropout с коэффициентом 0.25 для регуляризации.
23
+ - Сверточный слой с 128 фильтрами размера (3, 3) и функцией активации ReLU.
24
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
25
+ - Сверточный слой с 256 фильтрами размера (3, 3), функцией активации ReLU и регуляризацией L2 со значением 0.001.
26
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
27
+ - Слой MaxPooling2D с размером пула (2, 2).
28
+ - Слой Dropout с коэффициентом 0.25 для регуляризации.
29
+ - Слой Flatten для преобразования выходов сверточных слоев в одномерный вектор.
30
+ - Полносвязный слой с 512 нейронами и функцией активации ReLU, а также регуляризацией L2 со значением 0.001.
31
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
32
+ - Слой Dropout с коэффициентом 0.5 для регуляризации.
33
+ - Полносвязный слой с 256 нейронами и функцией активации ReLU, а также регуляризацией L2 со значением 0.001.
34
+ - Слой BatchNormalization для нормализации выходов предыдущего слоя.
35
+ - Слой Dropout с коэффициентом 0.5 для регуляризации.
36
+ - Полносвязный слой с 10 нейронами и функцией активации softmax для классификации изображений на 10 классов, т. е. для цифр от '0' до '9'.
37
+
38
+ Общее количество параметров 2,624,394.
39
+
40
+ ## Функция потерь и оптимизатор
41
+ <img width="639" alt="Screenshot_6" src="https://user-images.githubusercontent.com/101829424/235925205-8a17223b-e1e4-4b03-a45f-eb3a35b77eeb.png">
42
+ Для задачи многоклассовой классификации была выбрана функция потерь SparseCategoricalCrossentropy, в качестве оптимизатора используется Adam. Для оценки качества используется метрика sparse_categorical_accuracy.
43
+
44
+ ## Результат
45
+ <img width="781" alt="Screenshot_5" src="https://user-images.githubusercontent.com/101829424/235924949-10dc4a1c-1ad1-42d8-bcc5-98d4ed2d2dc0.png">
46
+ Модель имеет защиту от переобучения и имееет совершенную точность для многоклассовой классификации цифр.
47
+ <Программа предос��авляется в виде открытого исходного кода.