РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЙ НА ОСНОВЕ НЕЙРОННОЙ СЕТИ ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ - Студенческий научный форум

XIII Международная студенческая научная конференция Студенческий научный форум - 2021

РАСПОЗНАВАНИЕ ИЗОБРАЖЕНИЙ НА ОСНОВЕ НЕЙРОННОЙ СЕТИ ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ

Набиев В.Р. 1, Репинский В.Н. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

Обратное распространение ошибки – это нейронная сеть, предполагающая наличие «учителя», то есть процесс обучения, в котором обучение происходит путем предоставления сети последовательности обучающих примеров с верными откликами. Цель нейронной сети состоит в обучении сети таким образом, чтобы достичь баланса между способностью давать верный отклик на входные данные и способностью выводить правильные результаты в ответ на входные данные, которые схожи, но неидентичные тем, что используются при обучении. [1]. Основной принцип обратного распространения заключается в сравнении выходных значений с правильным ответом для вычисления значений некоторой предопределенной функции ошибки. При помощи различных методов ошибка затем передается обратно через сеть. Используя эту информацию, алгоритм корректирует вес каждого соединения, чтобы уменьшить значение функции ошибки на некоторое небольшое количество. После повторения этого процесса в течении достаточно большого количества учебных циклов сеть обычно сближается с некоторым состоянием, где погрешность вычислений невелика. В этом случае можно сказать, что сеть узнала определенную целевую функцию [2].

Подготовка набора данных для обучения и тестирования сети

В работе используется набор данных, состоящий из 1,000 изображений с 3-мя категориями: треугольник, прямоугольник и эллипс. На каждом изображении содержится по одной фигуре 30x30 пикселей. Необходимо определить, что за фигура изображена на картинке: треугольник, прямоугольник или эллипс. Пример изображения для распознавания:

Рисунок 1. Изображение

Моделирование

На рисунке n = 900 – количество пикселей изображения. Нам необходимо определить, что за фигура изображена на картинке. Сначала нужно сформировать случайным образом m обучающих примеров. Обучить модель трёхклассовой классификации. На втором рисунке показана архитектура разрабатываемой нейронной сети.[3].

Рисунок 2. Архитектура разрабатываемой нейронной сети

Таким образом, имеем:

входной слой, состоящий из 900 нейронов;

первый скрытый слой, состоящий из того же количества нейронов, что и во входном;

второй скрытый слой, состоящий из 51 нейрона;

выходной слой, состоящий из трёх нейронов (количество классов в нашей задаче).

Имеем многослойную нейронную сеть с обратным распространением ошибки и одним скрытым слоем.

Для генерации тренировочного набора использовались библиотеки:

random – библиотека, предоставляющая возможность генерации случайных чисел, что было необходимо для получения случайных точек координат, по которым в дальнейшем строились фигуры;

Image – библиотека, предоставляющая возможность открывать, изменять, создавать и сохранять изображения [4];

ImageDraw – библиотека, предоставляющая возможность строить простые двухмерные объекты в открытом изображении [5].

На рисунке 3 показана блок-схема процесса генерации изображений.

Рисунок 3. Генерация изображения

Обучение и исследование результатов

Процесс генерации происходил следующим образом:

Создание файла “out.txt”, который используется для хранения выходных значений.

Создание изображения в цветовой палитре RGB размерностью 30х30 пикселей.

Генерация случайного числа от 1 до 3, значение которого определяло, что за фигура будет изображена на картинке (1 – прямоугольник, 2 – эллипс, 3 – треугольник).

Генерация случайным образом координат фигуры.

Рисование фигуры в файле изображения.

Занесение данных в файл “out.txt” о том, какому классу принадлежит фигура.

Сохранение файла изображения.

Так как процесс обучения реализуемой нейронной сети требует больших объемов вычислений, использование всего обучающего набора и большого количества итераций прохождений по нему требует большого количества времени. Поэтому, в качестве примера, были рассмотрены первые 50 изображений, а количество итераций было сокращено до 100.

В результате работы программы получаем следующие результаты:

Progress: 99.0, Training loss: 0.00104557

Арх.

Опис.

О/С

О/ Т

Т/С

Т/Т

1

3 слоя, 4-3-3

0,568

0,645

0,3946

0,6632

2

3 слоя 4-4-3

0,3238

0,858

0,468

0,8523

3

4 слоя 4-4-4-3

0,234

0,879

0,398

0,8623

Где:

Арх. – Архитектура

Опис. – Описание

О/С – Обучение/Стоимость

О/Т – Обучение/Точность

Т/С – Тест/Стоимость

Т/Т – Тест/Точность

Из чего можно сделать вывод, что процесс обучения прошел успешно.

При проведении классификации тренировочного набора, разработанная нейронная сеть точно определяет класс объекта, находящегося на изображении. Однако при выходе за пределы тренировочного набора, нейронная сеть начинает ошибаться примерно в 30% случаев, что говорит о необходимости ее обучения на всем тренировочном наборе при большем количестве итераций.

Заключение

В статье описано создание нейронной сети для классификации изображений на основе технологии обратного распространения ошибки. Разработаны, изучены и протестирована сеть.

На основе выполненной работы можно сделать вывод, что использование технологии обратного распространения ошибки при разработке нейронной сети позволяет создать оптимальную архитектуру, позволяет правильно выбрать число нейронов, количество слоев и связей между ними. Оптимально подобранная архитектура сети обеспечивает гарантированной качество результатов распознавания.

Литература

1. Л.И.Воронова, В.И.Воронов Machine Learning: регрессионные методы интеллектуального анализа данных: учебное пособие / МТУСИ.– М., 2017.- 92с.

2. Вьюгин В.В. Математические основы машинного обучения и прогнозирования. Москва, МЦНМО, 2018. -384 с.

3. Головко В. А. Нейронные сети: обучение, организация и применение. - М.: ИПР- ЖР, 2001.

4. PythonRu [Электронный ресурс]. – Режим доступа: https://pythonru.com/biblioteki/osnovnye-vozmozhnosti-biblioteki-python-imaging-library-pillow-pil (дата обращения 20.01.21)

5. Pillow [Электронный ресурс]. – Режим доступа: https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html (дата обращения 20.01.21)

Просмотров работы: 13