Статья опубликована в рамках: CXXIX Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 18 ноября 2021 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
АНАЛИЗ ИСПОЛЬЗОВАНИЯ СВЁРТОЧНОЙ АРХИТЕКТУРЫ ДЛЯ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ
ANALYSIS OF USING CONVENTIONAL ARCHITECTURE FOR IMAGE RECOGNITION
Egor Dryuchin
student, Department t of Economic Mathematics, Informatics and Statistics, Tomsk State University of Control Systems and Radioelectronics,
Russia, Tomsk
АННОТАЦИЯ
Цель данной статьи – проанализировать модель свёрточной архитектуры для создания нейронной сети, нацеленной на распознавание изображений. Методы – анализ и синтез. Результаты – выявлены преимущества свёрточной архитектуры, позволяющей создать нейросеть для выполнения необходимой задачи.
ABSTRACT
The purpose of this article is to analyze a convolutional architecture to create a neural network targeted at image recognition. Methods - analysis and synthesis. Results - the advantages of the convolutional architecture were revealed, which allows you to create a network to perform the required task.
Ключевые слова: нейронная сеть, свёрточная архитектура, субдискретизация, классификация.
Keywords: neural network, convolutional architecture, pooling, classification.
Существующие на данный момент нейросети, созданные для работы с изображениями, справляются с такими задачами, как определение, распознавание, и классификация объектов, с высокой точностью. В рамках данной статьи рассматривается свёрточная архитектура строения нейронных сетей.
Стандартная архитектура подразумевает собой набор слоёв, состоящих из нейронов, причём каждый нейрон одного слоя имеет связь с нейронами из предыдущего слоя, учитывая факт того, что каждая связь содержит в себе определённый набор «весовых» коэффициентов.
Подняв тему слоёв, важно упомянуть, что любая архитектура содержит в себе минимум два обязательных слоя: входной, в котором задаётся поступающая информация, и выходной слой, который принимает данные, полученные в результате работы скрытых слоёв. Скрытые слои нейронной сети содержат ненаблюдаемые обрабатывающие блоки (нейроны). Значение каждого скрытого нейрона — это некоторая функция предикторов; точная форма этой функции частично зависит от типа сети [1].
Существующие скрытые слои и количество имеющихся в них нейронов определяют общую загруженность сети, время её обучения, количество затрачиваемых ресурсов вычислительной техники и результат её работы.
Таким образом, имея общие характеристики архитектуры нейронных сетей, возникает вопрос: «В чём же преимущество использования свёрточной архитектуры?».
К примеру, в многослойном перцептроне, представляющим собой полносвязную нейронную сеть, каждый нейрон связан со всеми нейронами предыдущего слоя, со своим персональным весовым коэффициентом. Рассматривая свёрточную нейронную сеть в контексте операции свёртки, используется лишь ограниченная матрица весов небольшого размера, которую передвигают по всему обрабатываемому слою. В самом начале она формируется из данных, полученных из входного изображения. Формируя из карты значений предыдущего слоя ядро весов, и после каждого сдвига сигнал активации для нейрона следующего слоя с аналогичной позицией и новым значением. Пример работы данного свёрточного слоя представлен на рисунке 1.
Рисунок 1. Операция свертки и получение значений сверточной карты
Таким образом, общее количество весов в нейронной сети будет снижено, что значительно ускорит процесс обучения сети.
Для наглядной демонстрации «облегчённости» работы нейронной сети, сравним общее количество весов у многослойного перцептрона и свёрточной архитектуры.
Начнём с рассмотрения перцептрона. Создадим ситуацию, когда на вход подаётся небольшое изображение 100 на 100. В таком случае, входной и выходной слой (при условии, что эти слои должны иметь одинаковое количество весов) имеют 100 на 100 – это 10000 нейронов. К тому же, для точности определения изображения, мы хотим выделять 40 признаков, что требует 40 нейронов в скрытом слое. Таким образом, мы получаем 800000 весов в нашей нейронной сети.
По-другому дела обстоят при обучении нейронной сети с использованием технологии свёртки. На вход подаётся не вся информация об изображении, как в случае с перцептроном, где оно имеет размер 100 на 100 пикселей, а лишь малая её часть. Данный «фильтр» свёртки, допустим, его размер 5 на 5, перемещается по всему изображению, выделяя необходимые значения. Свёрточная нейронная сеть имеет фиксированное количество нейронов на входных и выгодных слоях, а их общее количество равняется 5 х 5 =25. С учётом того же числа выделяемых признаков, общее количество весов составит всего 2000.
В данной архитектуре количество небольших фрагментов для обучения рассчитывается по следующей формуле 1.
(1)
– размеры изображения, подающегося на вход;
– размеры фрагментов для обучения.
Даже несмотря на малое количество весов в общей структуре сети, проблемой данной архитектуры является огромное количество выделяемых признаков. Их общее количество рассчитывается по формуле 2.
(2)
– количество выделяемых признаков;
- размеры изображения, подающегося на вход;
– размеры фрагментов для обучения [2].
Если использовать данные из описанного ранее примера, то в конце сеть выделит 368640 признаков. Использование такого количества выделяемых признаков, окажет пагубное влияние на время обучения сети и её точность распознавания.
Для решения данной проблемы необходимо добавить в архитектуру сети дополнительный слой с операцией подвыборки, называемый subsampling или субдискретизация. Имея карту признаков, сформированную во время работы нейронной сети, в данном слое происходит разделение полученных данных на фиксированные части [3]. В качестве нового значения карты признаков выделяется максимальное или среднее значение одного участка, пример операции субдискретизации представлен на рисунке 2. Полученное количество признаков окажется в несколько раз меньше, что позволит значительно ускорить процесс обучения сети.
Рисунок 2. Операция субдискретизации
Для наглядного сравнения скорости и точности обучения двух архитектур, проведено тестирование классификации изображений на основе библиотеки Keras и набора данных CIFAR-10, состоящего из 10 классов, содержащих 6000 изображений в классе. Для обучения будет доступно 50000 обучающих и 10000 тестовых изображений.
Параметры архитектуры персептрона: 1024 нейрона, число эпох обучения 200.Параметры свёрточной архитектуры: 128 фильтров размером 3 на 3, число эпох обучения 200. Результаты обучения представлены в таблице 1.
Таблица 1
Сравнение результатов обучения архитектур
|
Персептрон |
Свёрточная архитектура |
Точность |
75,26% |
89,59% |
Время |
76 минут |
49 минут |
Таким образом, построение нейронной сети, с использованием рассмотренной в данной статье архитектуры, позволяет ускорить процесс обучения и увеличить точность прогнозов нейросети.
Список литературы:
- IBM Corporation 1994, 2021. Основные параметры (нейросети) // [электронный ресурс] – Режим доступа. – URL: https://www.ibm.com/docs/ru/spss-modeler/SaaS?topic=networks-basics-neural (дата обращения 29.10.2021)
- Гафаров Ф.М., Галимянов А.Ф. Искусственные нейронные сети и их приложения: учебное пособие: Изд-во: Казан. ун-та, 2018. – 121 с.
- Поташников А.М., Романов С.Г. Методы субдискретизации цветоразностных компонент в системах цифрового телевидения // CyberLeninka. – 2012. [электронный ресурс] – Режим доступа. – URL: https://cyberleninka.ru/article/n/metody-subdiskretizatsii-tsvetoraznostnyh-komponent-v-sistemah-tsifrovogo-televideniya (дата обращения 02.11.2021)
дипломов
Оставить комментарий