Автор: Колбасов С.Ю., Сорокин Р.А.
Источник: Материалы Х Международной научно-технической конференции Информатика, управляющие системы, математическое и компьютерное
моделирование
(ИУСМКМ - 2019) - Донецк: ДонНТУ, 2019. - с. 111-114.
Колбасов С.Ю, Сорокин Р.А. Решение проблемы распознавания образов при помощи сверточных нейронных сетей. Работа посвящена обзору решения проблемы распознавания образов при помощи сверточных нейронных сетей. Приведены основные проблемы задачи распознавания образов, описаны основные шаги работы сверточных нейронных сетей.
В веке цифровых технологий с каждым годом совершаются значительные открытия и достижения, которые бесспорно улучают, облегчают и продлевают человеческую жизнь. В попытке достичь поставленных задач иногда уходит несколько поколений научной деятельности ученых, связано это со многими причинами, такими как отсутствие различных технологий, способов наблюдения, ведения, которые позволят собирать огромные статистические данные при эмпирических наблюдениях. Одной из таких проблем является распознавание образов. Необходимость в таком распознавании возникает в самых разных областях – от военного дела и систем безопасности до оцифровки аналоговых сигналов [1]. Существует огромное множество задач, решение которых затруднительно, а порой и невозможно без участия специализированных программ для распознавания образов:
Изучение особенностей решения проблемы распознавания образов при помощи сверточных нейронных сетей.
Создание устройств, выполняющих функции распознавания объектов в видеопотоке, в большинстве случаев позволит заменить человека специализированным автоматом. В настоящее время множество ученых работают в сфере исследований для решения проблемы автоматического распознавания объектов в видеопотоке. Это стимулируется практическими требованиями, связанными с созданием систем военного и коммерческого назначения.
В задаче распознавания объектов существует несколько серьезных проблем:
Для достижения поставленной цели решены следующие задачи:
Основной задачей распознавания является необходимость ответить на вопрос Где на изображении (и есть ли) искомый объект?
. Структурный подход
предполагает ответ в виде ограничивающего прямоугольника вокруг объекта. Задача осложняется сложными фонами на изображениях и достаточно большой
внутриклассовой изменчивостью объектов. Например, существуют сотни видов обычного кресла.
Формально задачу распознавания шаблонов можно описать двумя устройствами: датчик и классификатор. Датчик преобразует физические характеристики объекта, подлежащего распознаванию в набор признаков x = (x1…xn), которые характеризуют данный объект.
Пусть X – множество описаний объектов. W=(w1…wm) – конечное множество номеров классов. Будем считать, что система распознавания допускает ошибку в том случае, если она относит к классу wi объект, на самом деле принадлежащий классу отличному от wi. Система распознавания R1 лучше системы R2, в том случае, если вероятность совершения ошибки для системы R1 меньше, чем для системы R2. Датчик выдает информацию в виде вектора x=(x1,x2,…xn), где n – число измеренных характеристик каждого физического объекта. Предполагается, что вектор измерений (признаков) x принадлежит одному из M классов образов w1…wm.
Решающая функция представляет собой функцию y(x), относящую x точно к одному из M заданных классов. Оптимальной считается функция, которая дает наименьшую вероятность ошибки при всех допустимых значениях x.
Функция y относит набор x к классу wi в том и только в том случае, если выполняется неравенство p(x|wi) > p(x|wj) ∀i ? j.
Наилучшие результаты в области распознавания лиц показала Convolutional Neural Network или сверточная нейронная сеть (далее – СНС), которая является логическим развитием идей таких архитектур НС как когнитрона и неокогнитрона. Успех обусловлен возможностью учета двумерной топологии изображения, в отличие от многослойного персептрона.
Сверточные нейронные сети обеспечивают частичную устойчивость к изменениям масштаба, смещениям, поворотам, смене ракурса и прочим искажениям. Сверточные нейронные сети объединяют три архитектурных идеи, для обеспечения инвариантности к изменению масштаба, повороту, сдвигу и пространственным искажениям:
На данный момент сверточная нейронная сеть и ее модификации считаются лучшими по точности и скорости алгоритмами нахождения объектов на сцене. Начиная с 2012 года, нейросети занимают первые места на известном международном конкурсе по распознаванию образов ImageNet.
Сверточная нейронная сеть – это такой особый вид нейросетей прямого распространения, под прямым распространением понимается то, что переменные нейроны в этой сети разбиты на группы, называемые слоями [3]. И когда такая слоистая нейронная сеть применяется к данным, то активация слоев (значение этих переменных) подсчитывается последовательно: сначала значение активации первого слоя, потом значение активации второго слоя, и так до последнего слоя. Активация последнего слоя и служит выходами нейронной сети, и в этой нейросети есть много параметров, в каждом слое есть какие-то свои параметры, которые определяют, как активация следующего слоя зависит от активации предыдущего слоя. И что еще важно, активации внутри одного слоя могут подсчитываться параллельно, одновременно, они друг от друга не зависят, и это приводит к тому, что такие нейросети можно очень удобно и эффективно обсчитывать на современных процессорах, в том числе на графических сопроцессорах.
Архитектура СНС может содержать большое количество различных слоев, однако основными слоями, которые присутствуют практически всегда, считаются слои свертки, пулинга (иначе подвыборки или субдискретизации) и полносвязные [2,3].
Слой свертки назван так из-за операции свертки, которая является основным процессом данного слоя. Работа слоя заключается в использовании фильтра (обычно матрица размером 3х3), значения которого умножаются на исходные значения пикселей изображения, после чего эти значения суммируются. Каждая уникальная позиция исходного изображения производит число, совокупность таких чисел называется картой признаков [2].
Слой пулинга (субдискретизации) выполняет операцию по понижающей дискретизации пространственных размеров (ширина и высота) исходного изображения, в результате чего объем сокращается. То есть, выполняется нелинейное уплотнение карты признаков. Обычно слой пулинга использует окно размером 2х2 с шагом 2, то есть на каждом шаге в окно попадают только уникальные пиксели. Однако в различных архитектурах могут использоваться другие значения шага и размера окна. Уплотнение производится отбором пикселей, попавших на текущем шаге в окно, для отбора используются такие основные способы: выбор пикселя с максимальным значением или нахождение среднего значения среди всех пикселей, попавших в окно. Основная логика слоя субдискретизации заключается в том, что, если, на предыдущем слое свертки были выявлены некоторые признаки, то для дальнейшей обработки не требуется настолько подробное изображение, поэтому оно уплотняется до менее подробного.
Полносвязный слой выводит N-мерный вектор (N – число классов) для определения нужного класса, то есть выполняет классификацию. Работа данного слоя организуется путем обращения к выходу предыдущего слоя (карте признаков) и определения свойств, которые наиболее характерны для определенного класса. Полносвязный слой, по своей сути, является многослойным персептроном. СНС обычно содержат несколько таких слоев. Однако использование полносвязных слоев также накладывается ограничение на размер входных изображений – они все должны быть одинакового размера, поэтому некоторые современные СНС не используют данный слой и выполняют классификацию другими способами, что позволяет использовать изображения любого размера как во время обучения, так и во время классификации.
Обучение нейросети, то есть настройка ее параметров, происходит на большом количестве обучающих данных следующим образом: для каждого обучающего примера известно, что необходимо получить на выходе. Берется текущее состояние нейросети, применяется такая нейросеть к конкретному обучающему примеру, смотрится, что получилось на выходе и как отличается от того, что ожидалось. Дальше путем концептуально несложных математических манипуляций, называющихся методом обратного распространения ошибки, можно понять, как именно нужно модифицировать параметры каждого слоя, чтобы на выходе стало получаться что-то более похожее на то, что ожидается. И вот нейросеть поочередно смотрит на отдельные примеры или чаще на наборы примеров одновременно, чтобы увеличить правильность вычислений, и, глядя на эти отдельные примеры или пакеты примеров, она постепенно подстраивает свои параметры и добивается того, что на обучающих примерах она начинает предсказывать то, что нужно.
Достоинствами данного подхода является ряд признаков [3].
Однако, при столь огромных преимуществах существует ряд весомых недостатков:
В ходе данного исследования была представлена проблема распознавания образов, как одного из методов классификации и индентификации предметов, важность решения данной проблемы для развития современной науки. В качестве решения данной проблемы были представлены сверточные нейронные сети, было приведено подробное описание алгоритма, достоинств и недостатков данного подхода к распознаванию образов.