Построение и обучение нейросети для распознавания рукописных цифр¶
В данном примере будет рассмотрена обработка данных и обучение на их основе нейросетевой модели для классификации изображений. В качестве набора объектов наблюдений выбран датасет MNIST, в котором содержатся 70000 размеченных изображений рукописных цифр. В примере будет использоваться файл формата .csv, в котором изображения развёрнуты в виде табличных данных, содержащих значения яркости для каждого пикселя.
Подключение библиотек для обработки данных:¶
Загрузка данных в переменную:¶
Вывод первых пяти строк датафрейма:¶
Out[0]:
5×785 DataFrame
685 columns omitted
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ |
5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ |
Вывод первых пяти строк и последнего столбца с данными, который говорит о том, к какому классу пренадлежит объект наблюдения:¶
Out[0]:
1 | 0 | 0 | 0 | 0 | 0 | 5 |
2 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 | 0 | 4 |
4 | 0 | 0 | 0 | 0 | 0 | 1 |
5 | 0 | 0 | 0 | 0 | 0 | 9 |
Разбиение набора данных на тренировочную и тестовую выборку в соотношении 8 к 2:¶
Out[0]:
([0 0 … 0 0; 0 0 … 0 0; … ; 0 0 … 0 0; 0 0 … 0 0], [1, 8, 5, 9, 8, 0, 3, 1, 3, 2 … 7, 8, 9, 0, 1, 2, 3, 4, 5, 6])
Конвертация выборок в форматы, приемлимые для обработки нейросетью:¶
Out[0]:
(Float32[5.0, 0.0, 4.0, 1.0, 9.0, 2.0, 1.0, 3.0, 1.0, 4.0 … 4.0, 0.0, 9.0, 0.0, 6.0, 1.0, 2.0, 2.0, 3.0, 3.0], Float32[1.0, 8.0, 5.0, 9.0, 8.0, 0.0, 3.0, 1.0, 3.0, 2.0 … 7.0, 8.0, 9.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0])
Подключение библиотеки для визуализации данных:¶
Отображение объекта и его класса:¶
Итоговое преобразование данных для обработки нейросетью:¶
Out[0]:
(Float32[5.0 0.0 … 3.0 3.0], Float32[1.0 8.0 … 5.0 6.0])
Подключение библиотеки машинного обучения:¶
Определение структуры нейросети:¶
Out[0]:
Chain(
Dense(784 => 15, elu), # 11_775 parameters
Dense(15 => 10, σ), # 160 parameters
NNlib.softmax,
) # Total: 4 arrays, 11_935 parameters, 46.871 KiB.
Тестовый результат распознавания (до обучения модели):¶
Определение параметров обучения:¶
Out[0]:
loss (generic function with 1 method)
Определение функции для подсчёта точности модели:¶
Out[0]:
accuracy (generic function with 1 method)
Итеративный процесс обучения модели:¶
Epoch 1: Training Loss = 0.08964709, Accuracy = 12.314285714285713%
Epoch 2: Training Loss = 0.08764407, Accuracy = 13.814285714285715%
Epoch 3: Training Loss = 0.08620157, Accuracy = 14.399999999999999%
Epoch 4: Training Loss = 0.08494053, Accuracy = 14.371428571428572%
Epoch 5: Training Loss = 0.08356112, Accuracy = 15.828571428571427%
Epoch 6: Training Loss = 0.082328424, Accuracy = 19.071428571428573%
Epoch 7: Training Loss = 0.08158612, Accuracy = 23.864285714285714%
Epoch 8: Training Loss = 0.08063085, Accuracy = 28.221428571428568%
Epoch 9: Training Loss = 0.07972546, Accuracy = 31.321428571428573%
Epoch 10: Training Loss = 0.078886844, Accuracy = 34.30714285714286%
Epoch 11: Training Loss = 0.07808643, Accuracy = 38.44285714285714%
Epoch 12: Training Loss = 0.077700436, Accuracy = 41.84285714285714%
Epoch 13: Training Loss = 0.07742899, Accuracy = 44.48571428571428%
Epoch 14: Training Loss = 0.07700219, Accuracy = 47.35714285714286%
Epoch 15: Training Loss = 0.07660475, Accuracy = 49.471428571428575%
Epoch 16: Training Loss = 0.07617868, Accuracy = 51.41428571428571%
Epoch 17: Training Loss = 0.07569719, Accuracy = 53.22857142857143%
Epoch 18: Training Loss = 0.07526767, Accuracy = 54.478571428571435%
Epoch 19: Training Loss = 0.07488683, Accuracy = 55.72142857142857%
Epoch 20: Training Loss = 0.074611954, Accuracy = 56.57142857142857%
Epoch 21: Training Loss = 0.07444562, Accuracy = 57.107142857142854%
Epoch 22: Training Loss = 0.074215636, Accuracy = 58.25714285714285%
Epoch 23: Training Loss = 0.073985055, Accuracy = 59.58571428571429%
Epoch 24: Training Loss = 0.07374545, Accuracy = 60.621428571428574%
Epoch 25: Training Loss = 0.07343423, Accuracy = 61.76428571428572%
Epoch 26: Training Loss = 0.07313286, Accuracy = 63.29285714285714%
Epoch 27: Training Loss = 0.0728745, Accuracy = 64.26428571428572%
Epoch 28: Training Loss = 0.0726323, Accuracy = 64.92142857142858%
Epoch 29: Training Loss = 0.0724468, Accuracy = 65.7%
Epoch 30: Training Loss = 0.07231355, Accuracy = 66.12857142857142%
Epoch 31: Training Loss = 0.07217003, Accuracy = 66.67142857142856%
Epoch 32: Training Loss = 0.07196423, Accuracy = 67.48571428571428%
Epoch 33: Training Loss = 0.07176558, Accuracy = 68.5%
Epoch 34: Training Loss = 0.07160473, Accuracy = 69.43571428571428%
Epoch 35: Training Loss = 0.07146187, Accuracy = 70.53571428571429%
Epoch 36: Training Loss = 0.0712925, Accuracy = 71.92857142857143%
Epoch 37: Training Loss = 0.07111777, Accuracy = 73.78571428571429%
Epoch 38: Training Loss = 0.07095047, Accuracy = 75.75714285714285%
Epoch 39: Training Loss = 0.07079176, Accuracy = 77.77857142857142%
Epoch 40: Training Loss = 0.07066103, Accuracy = 79.02142857142857%
Epoch 41: Training Loss = 0.070562966, Accuracy = 80.27142857142857%
Epoch 42: Training Loss = 0.070510894, Accuracy = 80.86428571428571%
Epoch 43: Training Loss = 0.070434295, Accuracy = 81.25%
Epoch 44: Training Loss = 0.07028215, Accuracy = 81.69285714285715%
Epoch 45: Training Loss = 0.070133194, Accuracy = 82.0%
Epoch 46: Training Loss = 0.07004519, Accuracy = 82.07142857142857%
Epoch 47: Training Loss = 0.06997859, Accuracy = 82.39999999999999%
Epoch 48: Training Loss = 0.06991084, Accuracy = 82.95%
Epoch 49: Training Loss = 0.06985075, Accuracy = 83.32857142857144%
Epoch 50: Training Loss = 0.06978005, Accuracy = 83.51428571428572%
Epoch 51: Training Loss = 0.0697167, Accuracy = 83.62857142857143%
Epoch 52: Training Loss = 0.069677204, Accuracy = 83.85000000000001%
Epoch 53: Training Loss = 0.06961788, Accuracy = 83.77857142857142%
Epoch 54: Training Loss = 0.069562666, Accuracy = 83.89999999999999%
Epoch 55: Training Loss = 0.069532044, Accuracy = 84.07857142857142%
Epoch 56: Training Loss = 0.069504425, Accuracy = 84.26428571428572%
Epoch 57: Training Loss = 0.06948212, Accuracy = 84.41428571428573%
Epoch 58: Training Loss = 0.06941597, Accuracy = 84.68571428571428%
Epoch 59: Training Loss = 0.06936886, Accuracy = 84.85714285714285%
Epoch 60: Training Loss = 0.06936117, Accuracy = 85.07142857142857%
Epoch 61: Training Loss = 0.069321334, Accuracy = 85.28571428571429%
Epoch 62: Training Loss = 0.06929054, Accuracy = 85.22857142857143%
Epoch 63: Training Loss = 0.069279574, Accuracy = 85.21428571428571%
Epoch 64: Training Loss = 0.069251925, Accuracy = 85.13571428571429%
Epoch 65: Training Loss = 0.069236554, Accuracy = 84.95714285714286%
Epoch 66: Training Loss = 0.06921506, Accuracy = 84.95714285714286%
Epoch 67: Training Loss = 0.069184825, Accuracy = 85.15%
Epoch 68: Training Loss = 0.06915006, Accuracy = 85.5142857142857%
Epoch 69: Training Loss = 0.06913231, Accuracy = 85.75%
Epoch 70: Training Loss = 0.06910449, Accuracy = 85.93571428571428%
Epoch 71: Training Loss = 0.069074914, Accuracy = 86.15%
Epoch 72: Training Loss = 0.069066346, Accuracy = 86.05714285714285%
Epoch 73: Training Loss = 0.06902928, Accuracy = 86.27857142857142%
Epoch 74: Training Loss = 0.06902256, Accuracy = 86.4857142857143%
Epoch 75: Training Loss = 0.06904491, Accuracy = 86.77857142857142%
Epoch 76: Training Loss = 0.069038324, Accuracy = 86.9%
Epoch 77: Training Loss = 0.06900674, Accuracy = 86.6%
Epoch 78: Training Loss = 0.068971805, Accuracy = 86.35000000000001%
Epoch 79: Training Loss = 0.0689787, Accuracy = 86.33571428571429%
Epoch 80: Training Loss = 0.06896412, Accuracy = 86.24285714285715%
Epoch 81: Training Loss = 0.06892337, Accuracy = 86.3%
Epoch 82: Training Loss = 0.068898536, Accuracy = 86.49285714285713%
Epoch 83: Training Loss = 0.068888664, Accuracy = 86.70714285714286%
Epoch 84: Training Loss = 0.06886721, Accuracy = 86.74285714285715%
Epoch 85: Training Loss = 0.06888327, Accuracy = 86.67857142857143%
Epoch 86: Training Loss = 0.06883431, Accuracy = 86.78571428571429%
Epoch 87: Training Loss = 0.06884734, Accuracy = 86.87857142857143%
Epoch 88: Training Loss = 0.06882276, Accuracy = 86.92142857142858%
Epoch 89: Training Loss = 0.06881059, Accuracy = 87.02857142857144%
Epoch 90: Training Loss = 0.06878725, Accuracy = 87.13571428571429%
Epoch 91: Training Loss = 0.06878075, Accuracy = 87.15%
Epoch 92: Training Loss = 0.06877423, Accuracy = 87.17857142857143%
Epoch 93: Training Loss = 0.068756245, Accuracy = 87.17857142857143%
Epoch 94: Training Loss = 0.06874979, Accuracy = 87.16428571428571%
Epoch 95: Training Loss = 0.06873655, Accuracy = 87.12142857142857%
Epoch 96: Training Loss = 0.06873606, Accuracy = 87.15%
Epoch 97: Training Loss = 0.06871858, Accuracy = 87.28571428571429%
Epoch 98: Training Loss = 0.068701506, Accuracy = 87.52142857142857%
Epoch 99: Training Loss = 0.06870646, Accuracy = 87.68571428571428%
Epoch 100: Training Loss = 0.06867965, Accuracy = 87.8%
Визуализация изменения функции потерь на каждом шаге обучения:¶
Отображение результатов:¶
Известный класс объекта: 4
Распознанная нейросетью цифра: 4
В данном примере были предобработаны данные о яркостях пикселей, а также определена архитектура нейросети, параметры оптимизатора и функция потерь.
Модель была обучена и показала достаточно точное, но не идеальное разбиение по классам. Для улучшения качества распознавания нейросеть может быть модифицирована путём изменения архитектуры слоёв и увеличения обучающей выборки.
{"id": "42a1414f-8e2a-48a5-97f1-93fe52edcb2d", "data": [{"showlegend": false, "xaxis": "x", "colorbar": {"y": 0.513888888888889, "title": {"text": ""}, "len": 0.9525371828521435, "x": 0.9934383202099738}, "name": "y1", "colorscale": [[0, "rgba(0, 0, 0, 1)"], [1, "rgba(255, 255, 255, 1.000)"]], "yaxis": "y", "zmin": 0, "z": [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2578125, 0.5546875, 0.3515625, 0.1015625, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.51171875, 0.81640625, 0.9921875, 0.9921875, 0.89453125, 0.28515625, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0234375, 0.4296875, 0.9921875, 0.59765625, 0.64453125, 0.68359375, 0.97265625, 0.75390625, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.30078125, 0.9921875, 0.6015625, 0.07421875, 0, 0, 0.6875, 0.76953125, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.09765625, 0.39453125, 0.65234375, 0.75, 0.7421875, 0.5078125, 0.5078125, 0.953125, 0.8515625, 0.109375, 0.07421875, 0.0546875, 0.0703125, 0.8671875, 0.5234375, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0.34765625, 0.84765625, 0.99609375, 0.953125, 0.47265625, 0.765625, 0.87890625, 0.9921875, 0.9921875, 0.9921875, 0.83203125, 0.91015625, 0.84375, 0.89453125, 0.953125, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.26171875, 0.85546875, 0.9453125, 0.359375, 0.16015625, 0, 0.0546875, 0.27734375, 0.9921875, 0.6328125, 0.453125, 0.3359375, 0.234375, 0.65234375, 0.359375, 0.171875, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.2421875, 0.671875, 0.9921875, 0.359375, 0, 0, 0, 0.0078125, 0.703125, 0.8984375, 0.015625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.37890625, 0.9921875, 0.37890625, 0.015625, 0, 0, 0.0078125, 0.37890625, 0.90625, 0.1796875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.7734375, 0.9921875, 0.26171875, 0, 0, 0, 0.24609375, 0.9921875, 0.70703125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0.1484375, 0.94921875, 0.87890625, 0.0546875, 0, 0, 0.02734375, 0.703125, 0.984375, 0.234375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0.1875, 0.9921875, 0.8515625, 0, 0, 0, 0.296875, 0.9921875, 0.5703125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0.1875, 0.9921875, 0.8515625, 0, 0, 0, 0.77734375, 0.91015625, 0.203125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0.0859375, 0.828125, 0.92578125, 0.359375, 0.015625, 0.41015625, 0.9296875, 0.4921875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.10546875, 0.96875, 0.90234375, 0.57421875, 0.9921875, 0.93359375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.15625, 0.4765625, 0.98828125, 0.9921875, 0.3671875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0.08984375, 0.9375, 0.69140625, 0.0390625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.08203125, 0.79296875, 0.90625, 0.04296875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.640625, 0.921875, 0.359375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.73046875, 0.23046875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], "zmax": 0.99609375, "y": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "type": "heatmap", "showscale": false, "x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 5, 10, 15, 20, 25], "range": [0, 29], "domain": [0.03619130941965587, 0.9934383202099738], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "5", "10", "15", "20", "25"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 400, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 5, 10, 15, 20, 25], "range": [29, 0], "domain": [0.03762029746281716, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "5", "10", "15", "20", "25"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 730.859375}}
{"id": "8a12972d-d9be-4948-b774-f03aafd5a4ea", "data": [{"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.5086805555555556, "title": {"text": ""}, "len": 0.8657316272965879, "x": 0.9934383202099737}, "name": "y1", "yaxis": "y", "legendgroup": "y1", "line": {"color": "rgba(0, 154, 250, 1.000)", "shape": "linear", "dash": "solid", "width": 1}, "y": [0.0896470919251442, 0.0876440703868866, 0.08620157092809677, 0.08494053035974503, 0.08356112241744995, 0.0823284238576889, 0.08158612251281738, 0.0806308463215828, 0.07972545921802521, 0.07888684421777725, 0.07808642834424973, 0.07770043611526489, 0.07742898911237717, 0.07700219005346298, 0.07660474628210068, 0.07617867738008499, 0.07569719105958939, 0.07526767253875732, 0.07488682866096497, 0.07461195439100266, 0.07444562017917633, 0.07421563565731049, 0.07398505508899689, 0.07374545186758041, 0.07343423366546631, 0.07313285768032074, 0.07287450134754181, 0.07263229787349701, 0.0724468007683754, 0.07231354713439941, 0.07217002660036087, 0.07196422666311264, 0.07176557928323746, 0.07160472869873047, 0.07146187126636505, 0.07129249721765518, 0.07111777365207672, 0.0709504708647728, 0.07079175859689713, 0.0706610307097435, 0.07056296616792679, 0.07051089406013489, 0.07043429464101791, 0.07028214633464813, 0.07013319432735443, 0.07004518806934357, 0.06997858732938766, 0.06991083920001984, 0.06985075026750565, 0.06978005170822144, 0.06971669942140579, 0.0696772038936615, 0.06961788237094879, 0.06956266611814499, 0.06953204423189163, 0.06950442492961884, 0.06948211789131165, 0.06941597163677216, 0.0693688616156578, 0.06936117261648178, 0.06932133436203003, 0.06929054111242294, 0.06927957385778427, 0.06925192475318909, 0.06923655420541763, 0.06921505928039551, 0.06918482482433319, 0.06915006041526794, 0.06913231313228607, 0.06910449266433716, 0.06907491385936737, 0.06906634569168091, 0.06902927905321121, 0.06902255862951279, 0.06904491037130356, 0.06903832405805588, 0.06900674104690552, 0.06897180527448654, 0.0689786970615387, 0.06896411627531052, 0.06892336905002594, 0.06889853626489639, 0.06888866424560547, 0.06886720657348633, 0.0688832700252533, 0.06883431226015091, 0.06884734332561493, 0.06882275640964508, 0.0688105896115303, 0.06878724694252014, 0.06878075003623962, 0.06877423077821732, 0.06875624507665634, 0.0687497928738594, 0.06873655319213867, 0.06873606145381927, 0.06871858239173889, 0.06870150566101074, 0.0687064602971077, 0.06867965310811996], "type": "scatter", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 25, 50, 75, 100], "range": [-1.970000000000006, 102.97], "domain": [0.10609871682706327, 0.9934383202099737], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "25", "50", "75", "100"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "Шаг обучения", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [{"yanchor": "top", "xanchor": "center", "rotation": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 20}, "yref": "paper", "showarrow": false, "text": "Изменение функции потерь", "xref": "paper", "x": 0.5497685185185185}], "height": 400, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0.07, 0.075, 0.08, 0.085, 0.09], "range": [0.06805062994360923, 0.09027611508965493], "domain": [0.07581474190726165, 0.9415463692038496], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0.070", "0.075", "0.080", "0.085", "0.090"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "Функция потерь", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 730.859375}}
{"id": "3da8bf8a-557c-4bed-83b2-08aabd37e2d9", "data": [{"showlegend": false, "xaxis": "x", "colorbar": {"y": 0.513888888888889, "title": {"text": ""}, "len": 0.9525371828521435, "x": 0.9934383202099738}, "name": "y1", "colorscale": [[0, "rgba(0, 0, 0, 1)"], [1, "rgba(255, 255, 255, 1.000)"]], "yaxis": "y", "zmin": 0, "z": [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.06640625, 0.99609375, 0.99609375, 0.0625, 0, 0, 0, 0.2109375, 0.34375, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3203125, 0.98828125, 0.8828125, 0.04296875, 0, 0, 0.03515625, 0.76953125, 0.5859375, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.30078125, 0.98046875, 0.98828125, 0.44140625, 0, 0, 0, 0.30859375, 0.98828125, 0.5859375, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.03515625, 0.62890625, 0.98828125, 0.953125, 0.17578125, 0, 0, 0.23046875, 0.97265625, 0.98828125, 0.5859375, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.50390625, 0.98828125, 0.98828125, 0.77734375, 0, 0, 0, 0.515625, 0.98828125, 0.98828125, 0.45703125, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.078125, 0.953125, 0.98828125, 0.93359375, 0.08203125, 0, 0, 0.11328125, 0.890625, 0.98828125, 0.8515625, 0.08984375, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0625, 0.90625, 0.98828125, 0.98828125, 0.58203125, 0, 0, 0, 0.49609375, 0.98828125, 0.98828125, 0.31640625, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0.05859375, 0.546875, 0.98828125, 0.98828125, 0.73046875, 0.01953125, 0, 0, 0.2109375, 0.9140625, 0.98828125, 0.91015625, 0.07421875, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.00390625, 0.40625, 0.98828125, 0.98828125, 0.6875, 0.15234375, 0, 0, 0, 0.5078125, 0.98828125, 0.98828125, 0.47265625, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0.29296875, 0.98828125, 0.98828125, 0.98828125, 0.76953125, 0.4921875, 0.21484375, 0.078125, 0.16796875, 0.79296875, 0.98828125, 0.98828125, 0.0390625, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0.265625, 0.82421875, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.85546875, 0.9453125, 0.98828125, 0.98828125, 0.98828125, 0.38671875, 0.36328125, 0.7109375, 0.78125, 0.78125, 0.1171875, 0, 0, 0], [0, 0, 0, 0, 0, 0.11328125, 0.859375, 0.98828125, 0.98828125, 0.92578125, 0.72265625, 0.90625, 0.93359375, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.98828125, 0.96484375, 0.1328125, 0, 0, 0], [0, 0, 0, 0, 0, 0.5703125, 0.98828125, 0.98828125, 0.77734375, 0.0859375, 0, 0, 0.1171875, 0.36328125, 0.90625, 0.98828125, 0.98828125, 0.93359375, 0.7578125, 0.7578125, 0.7578125, 0.7578125, 0.34375, 0.2421875, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0.171875, 0.609375, 0.59765625, 0.078125, 0, 0, 0, 0, 0.0546875, 0.921875, 0.98828125, 0.921875, 0.14453125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.109375, 0.98828125, 0.98828125, 0.45703125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.08984375, 0.796875, 0.98828125, 0.98828125, 0.0625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.33984375, 0.98828125, 0.98828125, 0.515625, 0.01171875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.75390625, 0.98828125, 0.98828125, 0.265625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.76171875, 0.98828125, 0.98828125, 0.3359375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.40234375, 0.9609375, 0.48046875, 0.03125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], "zmax": 0.99609375, "y": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "type": "heatmap", "showscale": false, "x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 5, 10, 15, 20, 25], "range": [0, 29], "domain": [0.03619130941965587, 0.9934383202099738], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "5", "10", "15", "20", "25"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 400, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 5, 10, 15, 20, 25], "range": [29, 0], "domain": [0.03762029746281716, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "5", "10", "15", "20", "25"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 730.859375}}