Задача классификации рукописных цифр на примере набора данных MNIST
Автор: Дмитрий Богатырёв • Май 8, 2023 • Лабораторная работа • 1,953 Слов (8 Страниц) • 171 Просмотры
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
Кафедра проблемно-ориентированных вычислительных комплексов |
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ № 1 Задача классификации рукописных цифр на примере набора данных MNIST |
по курсу: СОВРЕМЕННЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № | |||||
номер группы | подпись, дата | инициалы, фамилия | |||
Студенческий билет № |
Санкт-Петербург
2022
Цель работы: решить задачу классификации изображений рукописных цифр в упрощенном варианте - для трех разных рукописных цифр.
Таблица 1. Варианты заданий
№ Варианта | Перечень распознаваемых рукописных цифр | Фамилия И.О | ||
1 | 1 | 3 | 5 | Богатырев Д.В |
Создадим выборку обучающих и тестовых примеров:
[pic 1]
Рисунок 1 - Визуализация тестового набора
[pic 2]
Рисунок 2 – Визуализация тренировочного набора
Загрузим тестовые файлы и алгоритм нейронной сети на Google Disk
[pic 3]
Рисунок 3 – Файлы на Google Drive
Поменяем пути в файле
[pic 4]
Рисунок 4 – Путь к тренировочному файлу
Выполним все алгоритмы и получим первые результаты
. [pic 5]
Рисунок 5 – Определенные неправильные ответы
Как видно из рисунка 5 неправильных ответов крайне мало. Всего один раз нейросеть приняла тройку за единицу. Проверим коэффициент правильных ответов:
[pic 6]
Рисунок 6 - Коэффициент правильных ответов
Коэффициент равняется 0,96. Этот результат близок к идеальному, поэтому дальнейшее обучение не требуется.
Построим график ошибки обучения для нашей нейронной сети. Для этого необходимо изменить код программы добавив в него возможность отображения графиков. Добавим в функцию train возврат ошибок и создадим пустой массив error_epochs в который будем передавать точки для нашего графика.
[pic 7]
Рисунок 7 - Код для отображения графика
[pic 8]
Рисунок 8 – График ошибок
Из данного графика видно, что с количеством пройденных эпох обучения, количество ошибок уменьшается.
ВЫВОД
В ходе выполнения лабораторной работы была произведена тренировка нейросети на обучающем наборе данных. После обучения в нейросеть были загружены тестовые данные. Нейросеть проверку прошла успешно и ошиблась всего один раз. Коэффициент правильных ответов составил 0.96.
Листинг 1 – Листинг программы
# Load the Drive helper and mount
from google.colab import drive
# This will prompt for authorization.
drive.mount('/content/drive')
# Создание двуслойной нейронной сети
# для обучения с помощью набора MNIST.
# пример из книги "Создаем нейронную сеть"
# (c) Tariq Rashid, 2016
import numpy
# библиотека scipy.special содержит сигмоиду - expit ()
import scipy.special
# библиотека для графического отображения массивов import
import matplotlib.pyplot
# размещение графики в данном блокноте, а не в отдельном окне
...