Донецкий национальный технический университет
wwwalex_96@mail.ru, fedyaev@donntu.org
Медведев А.С., Федяев О.И. Логическая модель свѐрточной нейронной сети для распознавания лица человека.
В статье рассмотрена задача распознавания лица человека на основе свѐрточной нейронной сети.
Выполнен анализ параметров структуры свѐрточной нейронной сети и модели нейронов для разных слоѐв.
На основе объектно-ориентированного анализа разработана логическая структура свѐрточной нейронной сети в виде диаграммы классов на языке UML.
Распознавание образов в настоящее время встречается во многих прикладных задачах. Наиболее актуальной и сложной является задача распознавания лица человека.
Необходимость в еѐ решении возникает при проектировании систем контроля за людьми, систем безопасности и многих других [1].
Несмотря на актуальность компьютерного зрения, качественного решения задачи распознавания нет. Основные трудности компьютерногораспознавания лиц, которые необходимо
преодолеть, состоят в том, чтобы распознать человека по изображению лица независимо от изменения ракурса и условий освещѐнности при съѐмке, а также при различных изменениях,
связанных с возрастом, причѐской и т. д. [1].
В последнее время большие перспективы в решении данной проблемы связывают с применением глубинных нейронных сетей. К этому классу относится многослойная свѐрточная нейронная
сеть [1]. В отличие от известных классических архитектур нейронных сетей данный тип построен и функционирует на принципах
зрительной системы человека. В последнее время известными фирмами предложены мощные библиотеки, в которых реализованы модели глубоких нейронных сетей, позволяющие решать
сложные задачи распознавания. Однако, использование сторонних библиотек может иметь недостаточно оптимизированное решение или нарушать информационную безопасность по
отношению к распознаваемым изображениям.
Исходя из этого, в статье рассматривается разработка собственной системы распознавания лиц на основе свѐрточной нейронной сети.
При этом возникает задача построения такой программной модели нейронной сети, которая позволяла бы исследовать особенности еѐ работы в реальных условиях.
Архитектура свѐрточной нейронной сети как объект исследования характеризуется наличием большого набора настраиваемых параметров и сложностью функционирования.
Поэтому в начале целесообразно провести системный анализ объекта и построить логические модели свѐрточной нейронной сети, что и является целью данной работы.
Convolutional Neural Network или свѐрточная нейронная сеть (СНС) показала лучшие результаты в области распознавания лиц.
Она является развитием идей таких архитектур нейронных сетей, как многослойные сети типа когнитрон и неокогнитрон [2].
Преимущества обусловлены своеобразной архитектурой СНС, позволяющей детально выделять особенности двумерной топологии изображения в отличие от многослойного персептрона.
К достоинствам СНС можно такжеотнести обеспечение частичной устойчивости к изменениям масштаба, смещениям, поворотам, смене ракурса и прочим искажениям.
Свѐрточные нейронные сети объединяют в себе три архитектурных идеи:
локальные рецепторные поля, которые обеспечивают локальную двумерную связность нейронов;
общие синаптические коэффициенты для обеспечения детектирования некоторых черт в любом месте изображения и уменьшение общего числа весовых коэффициентов;
иерархическая организация с пространственными подвыборками.
На данный момент свѐрточная нейронная сеть и еѐ модификации считаются лучшими по точности и скорости распознавания объектов на изображении.
Структура и функционирование свѐрточной нейронной сети
Сверточная нейронная сеть состоит из слоев нескольких видов таких как сверточные (convolutional), подвыборочные (subsampling) и слои персептрона
[6]. В общей архитектуре многослойной нейросети свѐрточные слои и слои подвыборки, чередуясь между собой, формируют
входной вектор признаков для выходного слоя - многослойного персептрона (см. рис. 1). Свое название свѐрточная сеть получила по операции с названием «свѐртка»,
суть которой будет описана в следующем разделе.
Основной причиной эффективности СНС является концепция общих весов. Они имеют меньшее количество настраиваемых параметров по сравнению с неокогнитроном.
Имеются варианты СНС похожие на неокогнитрон. В таких сетях происходит частичный отказ от связанных весов, но алгоритм обучения остаѐтся тот же и основывается
на обратном распространении ошибки. СНС могут быстро работать на последовательной машине и быстро обучаться за счѐт эффективного распараллеливания процесса свѐртки
по каждой карте, а также обратной свѐртки при распространении ошибки по сети.
Рисунок 1 – Структура свѐрточной нейронной сети
В последние годы в СНС очень часто применяется функция активации под названием «выпрямитель» (см. рис 2). Нейроны с данной функцией активации называются ReLU
(rectified linear unit). ReLU имеет следующую формулу f(x) = max(0, x) и реализует простой пороговый переход в нуле [5].
Положительные стороны такой функции:
1. Вычисление сигмоиды и гиперболического тангенса требует выполнения ресурсоѐмких операций, таких как возведение в степень, в то время как ReLU может быть реализован
с помощью простого порогового преобразования матрицы активаций в нуле. Кроме того, функция ReLU не подвержена насыщению.
1. Вычисление сигмоиды и гиперболического тангенса требует выполнения ресурсоѐмких операций, таких как возведение в степень, в то время как ReLU может быть реализован
с помощью простого порогового преобразования матрицы активаций в нуле. Кроме того, функция ReLU не подвержена насыщению.
2. Применение ReLU существенно повышает скорость сходимости стохастического градиентного спуска по сравнению с сигмоидой и гиперболическим тангенсом.
Считается, что это обусловлено линейным характером и отсутствием насыщения данной функции.
Отрицательной стороной этой функции является то, что ReLU не всегда достаточно надѐжна при аппаратной реализации и в процессе обучения может выходить из строя.
Например, большой градиент, проходящий через ReLU, может привести к такому обновлению весов, что данный нейрон никогда больше не активируется.
Если это произойдет, то, начиная с данного момента, градиент, проходящий через этот нейрон, всегда будет равен нулю.
Соответственно, данный нейрон будет необратимо выведен из строя. Например, при слишком большой скорости обучения может оказаться, что до 40% нейронов станут «мертвыми»
(то есть, никогда не активируются). Эта проблема решается посредством выбора надлежащей скорости обучения.
Рисунок 2 – Функция активации ReLU
На этапе анализа структуры СНС возникает важная задача, связанная с определением характеристик еѐ архитектуры: количество слоев, размеры полносвязного слоя, характер
связей между нейронами и др.
Функции и параметры свѐрточного слоя
Слой свѐртки — это основной слой СНС, который выполняет большинство основных вычислений. Он представляет из себя набор матриц (карт), у каждой матрицы
есть синаптическое ядро (фильтр).
Количество таких матриц определяется требованиями к задаче, если взять большое количество карт, то повысится качество распознавания, но увеличится вычислительная сложность.
Опираясь на анализ научных статей, предлагается брать соотношение один к двум, то есть каждая матрица предыдущего слоя связана с двумя матрицами свѐрточного слоя
[2].
Размеры всех карт свѐрточного слоя одинаковы и вычисляются по формуле:
(1)
где w – новая ширина свѐрточной карты; h – новая высота свѐрточной карты; mW – ширина предыдущей карты; mH – высота предыдущей карты; kW – ширина ядра; kH – высота ядра.
Ядро является системой разделяемых весов или синапсов - это одна из главных особенностей свѐрточной нейронной сети.
Обычная нейронная сеть имеет очень много связей между нейронами, что весьма замедляет процесс детектирования.
В свѐрточной сети – наоборот, общие веса позволяют сократить число связей, а также находить один и тот же признак по всей области изображения
[5].
Ядро представляет из себя матрицу весов, которая скользит по всей области предыдущей карты и находит определѐнные признаки объектов на изображении.
Например, если сеть обучали на множестве лиц, то одно из ядер могло бы в процессе обучения выдавать наибольший сигнал в области глаза,
рта, брови или носа, другое ядро могло бы выявлять другие признаки. Размер ядра обычно колеблется в пределах от 3х3 до 7х7 пикселей.
Если размер ядра маленький, то оно не сможет выделить какие-либо признаки, если слишком большое, то увеличивается количество связей между нейронами.
Функции и параметры подвыборочного слоя
Подвыборочный слой также, как и слой свѐртки имеет матрицы и их количество совпадает с предыдущим слоем. Задача слоя состоит в уменьшении размерности карт предыдущего слоя.
Если с помощью операции свѐртки уже были выявлены некоторые признаки, то для дальнейшей обработки настолько подробное изображение уже не нужно, и оно уплотняется
(по определѐнному принципу) до менее подробного (см. рис. 3).
В процессе сканирования ядром подвыборочного слоя матрицы предыдущего слоя, сканирующее ядро не пересекается в отличие от свѐрточного слоя.
Обычно, каждая карта имеет ядро размером 2x2, что позволяет уменьшить предыдущие матрицы сверточного слоя в 2 раза.
Вся карта признаков разделяется на ячейки 2х2 элемента, из которых выбираются максимальные по значению.
Рисунок 3 – Процесс подвыборки
Структура последнего слоя свѐрточной нейронной сети
На выходе СНС установлен слой обычного многослойного персептрона (см. рис. 4). Он служит для определения класса, к которому относится распознаваемый образ лица.
Работа слоя организуется путѐм обращения к выходу предыдущего слоя и определения свойств, которые наиболее характерны для определенного класса
[4].
Рисунок 4 – Структура полносвязного слоя
Нейросеть данного слоя является полносвязной, т.е. нейроны каждой карты предыдущего подвыборочного слоя связаны с одним нейроном скрытого слоя.
Таким образом, число нейронов скрытого слоя равно числу матриц подвыборочного слоя, но связи могут быть не обязательно полными.
Например, только часть нейронов какой-либо из матриц подвыборочного слоя может быть связана с первым нейроном скрытого слоя, а оставшаяся часть - со
вторым, либо все нейроны первой карты связаны с нейронами первого и второго скрытого слоя. Вычисление значений нейрона описывается формулой
[5]:
(2)
где xlj- карта признаков j (выход слоя l); f() – функция активации; bl – коэффициент сдвига слоя l; w(l-1)i, j – матрица весовых коэффициентов первого слоя.
Объектно-ориентированная структура свѐрточной нейронной сети
Выполненный анализ параметров СНС, позволил построить логическую модель нейронной сети, которая будет содержать следующие основные классы, представленные на языке UML
(см. рис. 5):
нейронная система – основной класс, который содержит в себе все слои и параметры СНС;
входной слой – класс, которые отвечает за первоначальную обработку изображения, для дальнейшей работы в СНС;
слой свѐртки – класс, обеспечивающий функциональные возможности слоя свѐртки;
слой подвыборки – класс, обеспечивающий функциональные возможности слоя подвыборки;
слой полносвязный – класс, обеспечивающий функционал последнего слоя нейронной сети;
активация – класс, содержащий различные функции активации;
параметры – класс, содержащий в себе все настройки нейронной сети.
Рисунок 5 – Диаграмма классов свѐрточной нейронной сети
Заключение
В работе проведен параметрический и функциональный анализ архитектуры свѐрточной нейронной сети.
Установлено, что она имеет ряд важных достоинств: ускоренное обучения сети и уменьшение необходимого количества обучающих данных за счѐт уменьшенного количества
обучаемых нейронов и за счѐт большого количества абстрактных слоѐв. Слои обеспечивают частичную устойчивость к изменениям масштаба, смещениям, поворотам,
смене ракурса и прочим искажениям. Архитектура СНС позволяет осуществить распараллеливание вычислений, а, следовательно, имеется возможность реализации
алгоритмов работы и обучения сети на графических процессорах. Но при этом у СНС есть и недостатки: слишком много варьируемых параметров сети.
Медведев А.С., Федяев О.И. Логическая модель свѐрточной нейронной сети для распознавания лица человека.
В статье рассмотрена задача распознавания лица человека на основе свѐрточной нейронной сети. Выполнен анализ параметров структуры свѐрточной нейронной сети и модели
нейронов для разных слоѐв. На основе объектно-ориентированного анализа разработана логическая структура свѐрточной нейронной сети в виде диаграммы классов на языке UML.
Medvedev A.S., Fedyaev O.I. A convolutional neural network logical model for recognizing human faces.
The article deals with the problem of recognizing a human face based on a convolutional neural network.
Performs an analysis of the parameters of the structure of the convolutional neural network and the model of neurons for different layers.
Based on object-oriented analysis and the logical structure of the convolutional neural network in the form of a class diagram in the UML language.
Keywords: convolutional neural network, face recognition, class diagram, artificial neuron.