Широкое распространение информационных технологий, усовершенствование архитектур нейронных сетей (НС), методов их обучения и разнообразие их программных реализаций [1–3], рост производительности компьютеров, в том числе GPU, способствуют использованию НС для решения задач в области распознавания образов. При наличии других инструментов для решения задач распознавания [4–6], в том числе с использованием машинного обучения, перечисленные факторы позволили глубоким нейронным сетям (ГНС) занять одну из значимых позиций за счет большей точности распознавания. В частности, ГНС хорошо себя зарекомендовали в компьютерном зрении, распознавании речи, биоинформатике и пр.
Вопросами разработки и использования ГНС для решения задач распознавания образов занимались многие российские и зарубежные специалисты [7–9].
В статье представлено современное состояние проблемы распознавания образов, определено место НС в решении задачи, описаны история возникновения и виды архитектур НС, методы обучения сетей, а также их программные реализации. Предложено решение задачи распознавания лиц по фотоизображению на основе ГНС.
Современное состояние проблемы распознавания образов с использованием нейронных сетей
Для этапа принятия решений в системах распознавания образов характерны такие задачи, как распознавание и классификация, математические постановки которых приведены на рис. 1.
Согласно [10] алгоритм распознавания – есть некоторая абстрактная система R: R= <A, S, P>, где A – множество классов, S – множество признаков для классификации, P – правила принятия решения при отнесении образа к классу.
Для рассматриваемых задач в настоящее время разработано множество методов и их реализация. Лопатина А.Д. [4] рассматривает решение задачи с использованием метода алгоритмических композиций. В публикациях Зенина А.В. [11], Туркова П.А., Красоткиной О.В. [12] приведен байесовский подход к распознаванию образов, Фомина А.Я., Каркищенко А.Н. [13] – методы статистической классификации, Симакова В.С., Луценко Е.В. [5] – методы классификации по сходству / разделимости и др. Как уже отмечено ранее, одним из средств решения задачи распознавания образов выступают НС (рис. 2) [7–9; 14].
Модель искусственного нейрона Маккаллока-Питтса, предложенная в 1943 г. [15], имеет N входных бинарных величин x1,..., xn, трактующихся как импульсы, и веса ω1,..., ωn [8]. Связи могут быть возбуждающими (вес положительный), тормозящими (вес отрицательный). Выходной сигнал нейрона определяется как где φ – функция активации преобразует суммарный импульс в выходное значение нейрона [16]. В НС нейроны соединяются между собой определенным образом, сети имеют входной и выходной слои. При наличии нескольких слоев между ними можно говорить о многослойной НС.
Рис. 1. Задачи системы распознавания образов и их математическая постановка
Рис. 2. Место НС в системе распознавания образов
Рис. 3. Развитие архитектур НС
Среди трендов нынешнего времени в области нейронных сетей следует отметить сложность их архитектур («глубина», «ветвление слоев», «блочность», «структура»). Другими характеристиками как решаемой задачи, так и НС являются число описываемых нейронной сетью параметров, а также количество данных для обучения. С обучением также связана проблема «затухающего градиента».
Начало создания архитектур НС относят к 1980 г. Была предложена архитектура НС – неокогнитрон (рис. 3, 4). Во второй половине 80-х годов прошлого столетия Д. Баллард предложил подход к обучению НС без учителя на основе автокодировщика [17].
В 1992 г. появилась архитектура НС кресцептрон, в основу которого положен неокогнитрон. Наличие проблемы исчезающего градиента при обучении привело к новым архитектурам: очень глубокий обучатель (1992 г., сотни слоев) [18] направлен на применение предварительного обучения без учителя иерархии рекуррентных НС; НС – сеть долго-краткосрочной памяти. В 2006 г. Дж. Хинтоном и Р. Салахутдиновым была создана архитектура НС – глубокие сети доверия. Компанией Google в 2014 г. предложена архитектура сверточных НС Inception, которые начали активно развиваться [19].
Также предложена архитектура рекуррентных НС – управляемые рекуррентные НС. К 2017 г. НС имеют от нескольких тысяч до нескольких миллионов единиц и миллионы соединений. В 2017 г. Дж. Хинтоном описаны капсульные НС, позволяющие снижать ошибку распознавания объекта в другом ракурсе на 45 %, для обучения предложен алгоритм динамической маршрутизации между капсулами [7].
Процесс обучения НС направлен на настройку ее параметров посредством моделирования среды, в которую эта сеть встроена. Ниже представлены несколько методов обучения ГНС (рис. 5) [20–22]. Для указанных методов часто используются модификации, которые описаны далее при рассмотрении конкретной задачи.
Библиотеки глубокого машинного обучения
За последнее время создано множество библиотек для обучения НС, среди них можно отметить ApacheMXNet, Caffe, Keras, Theano и др. (рис. 6). Сравним наиболее популярные библиотеки (табл. 1) Theano, Caffe, Keras.
Рис. 4. Архитектуры НС
Библиотека Theano написана на Python. Вычисления в Theano выражаются синтаксисом NumPy и компилируются для эффективных параллельных вычислений. Keras, надстройка над Theano, позволяет настраивать гиперпараметры, предоставляет богатый выбор таких необходимых средств, как функции потерь, алгоритмы оптимизации, инструменты визуализации и загрузки популярных датасетов.
Caffe обеспечивает сверточные нейронные сети, долго-краткосрочную память и полностью соединенные НС.
Рис. 5. Методы обучения ГНС
Таблица 1
Сравнение наиболее популярных библиотек
Наименование библиотеки Критерии |
Theano |
Caffe |
Keras |
Язык |
Python |
C++ |
Python |
Интерфейс |
Python |
Python, MATLAB |
Python |
API |
+ (Python) |
+ (C++, Python) |
+ (Python) |
Открытый исходный код |
+ |
+ |
+ |
ОС |
межплатформенность |
Linux, Mac OS X, Windows |
Linux, macOS, Windows |
Точность на многослойном перцептроне Румельхарта, % |
97.42 |
98.26 |
Нет данных |
сверточной НС, % |
99.16 |
99.1 |
Нет данных |
Возможность создания сверточные НС |
+ |
+ |
+ |
глубокие сети доверия |
+ |
– |
+ |
ограниченные машины Больцмана |
+ |
– |
+ |
Решение задачи распознавания лиц по фотоизображению
Методика решения задачи распознавания лиц по фотоизображению включает пять этапов. Первые два этапа направлены на подготовку данных с использованием методов выравнивания гистограммы, сегментации цветного изображения в цветовом пространстве RGB на основе цветопередачи [8; 25]. Два следующих этапа – поиск «точек интереса», дальнейшее нахождение расстояний между ними и их отношениями – выполняются с целью обнаружить черты лица с использованием алгоритма ближайшего соседа. Заключительным этапом в распознавании лиц в методике на основе фотографий является процесс идентификации, когда классифицируются точки интереса, изображенные на фотографии, полученной на предыдущих этапах с использованием НС.
Используются в эксперименте библиотеки Theano, Keras. Взаимодействие с Theano осуществлялось посредством библиотеки Keras, включающей ряд алгоритмов, в частности RMSProp, Adagrad, Adam и др. Обучение сверточной нейронной сети проведено с их использованием на базе 3 наборов по 1000 изображений различных размеров формата JPEG (табл. 2). Предложенный подход к решению проблемы в виде набора методов, реализованных на разных этапах, дает хороший результат.
Рис. 6. Библиотеки глубокого машинного обучения
Таблица 2
Анализ характеристик методов
Наименование метода |
Точность, % |
Характеристики метода |
RMSProp |
83 |
+* решение нестационарных задач |
Метод адаптивного градиента (Adagrad) |
81 |
+ отсутствие необходимости точно подбирать скорость обучения, –** сумма квадратов обновлений может увеличиваться сколько угодно, что может привести к параличу алгоритма |
Adadelta |
73 |
+* сумма градиентов заменяется на экспоненциально затухающее среднее квадратов градиентов, полученных на предыдущих шагах |
Метод адаптивной оценки моментов (Adam) |
76 |
+* способность справляться с разреженными градиентами, +* способность решать нестационарные задачи |
Метод стохастического градиентного спуска (SGD) |
78 |
+* легко реализуется, легко добавить регуляризацию, +* функция потерь и семейство алгоритмов могут быть любыми, +* возможно потоковое обучение, +* подходит для задач с большими данными, –** нет универсального набора эвристик, их нужно выбирать для конкретной задачи отдельно |
*достоинства, ** недостатки методов |
Добавление этапа предварительной обработки, в частности использование метода выравнивания гистограммы, может значительно улучшить качество распознавания. В сложных наборах данных могут быть некоторые ошибки, которые могут быть обнаружены только в экспериментальных условиях.
Программная реализация подхода демонстрирует устойчивость к горизонтальному и вертикальному повороту изображения на углы 10 и 5 градусов соответственно. Некоторые проблемы возникают при нанесении различных посторонних предметов на лицо (очки, усы, синяки).
Выводы
Результаты анализа современного состояния проблемы распознавания образов с использованием нейронных сетей показывают, что на этапе принятия решений характерны задачи непосредственно распознавания и кластеризации. Широкий спектр архитектур нейронных сетей, методов их обучения и готовых библиотек позволяет выявить наиболее приспособленные для конкретной задачи и типа данных.
Предложенный подход к решению проблемы в виде набора методов (выравнивание гистограммы; сегментация цветного изображения в цветовом пространстве RGB на основе цветопередачи; измерение расстояний между маркерами, прикрепленными к ориентирам на лице; алгоритм ближайшего соседа), реализованных на разных этапах, дает хороший результат.
Результаты исследований, приведенные в статье, получены в рамках выполнения грантов РФФИ 18-07-00193, 19-07-00709 и государственного задания № FEUE-2020-0007.