УДК 004.272
МНОГОСЛОЙНАЯ НЕЙРОННАЯ СЕТЬ РОЗЕНБЛАТТА И ЕЕ ПРИМЕНЕНИЕ ДЛЯ РЕШЕНИЯ ЗАДАЧИ РАСПОЗНАВАНИЯ
ПОДПИСЕЙ
А.С.Новиков, A.A. Ежов
Рассмотрена архитектура многослойного персептрона Розенблатта. Описан алгоритм обучения нейронной сети методом обратного распространения ошибки, указаны достоинства и недостатки данного метода обучения, приведено описание программы, использующей алгоритм обратного распространения для решения задачи распознавания подписей, продемонстрированы результаты распознавания подписей.
Ключевые слова: многослойный персептрон, нейронная сеть, алгоритм обратного распространения ошибки, синоптическая связь, распознавание образов.
Одним из типичных представителей класса сетей прямого распространения является классический многослойный персептрон Розенблатта [1, 2]. На рис. 1 приведена архитектура данной сети.
Рис. 1. Архитектура многослойного персептрона Розенблатта
Из рис. 1 видно, что в используемой нейронной сети всего имеются три слоя: входной слой, состоящий из п нейронов (Х7-, 1=1,2,...,п), скрытый слой, включающий в себя ш нейронов {2 ^, ]=1,2,...,т), и выходной слой, состоящий из р нейронов (1^, к=1,2,...,р). Нейроны входного слоя представляют собой набор признаков некоторого объекта, а нейроны выходного слоя - отклик сети на этот набор признаков. Все нейроны связаны между собой синаптическими связями, которые фактически являются элементами матриц: связь между нейроном \ входного слоя и нейроном] скрытого слоя обозначается через элемент матрицы XV - , а связь между нейро-
ном ] скрытого слоя и нейроном к выходного слоя обозначается через элемент матрицы V - уд. Значения весов связей являются произвольными
действительными числами.
Выходные значения нейронов каждого из слоев вычисляются при помощи так называемых функций активации. Для многослойного персеп-трона обычно выбирают такие функции активации, как бинарный сигмоид, биполярный сигмоид или гиперболический тангенс. В случае использования бинарного сигмоида выходные значения нейронов лежат в диапазоне [0,1], в случае биполярного сигмоида и гиперболического тангенса - [-1,1].
Задача обучения многослойного персептрона - это задача подстройки весов синаптических связей между нейронами таким образом, чтобы при подаче на вход сети некоторого набора признаков объекта сеть давала правильный отклик.
Для обучения многослойного персептрона обычно используется так называемый алгоритм обратного распространения ошибки (Backpropaga-Поп). Суть этого метода заключается в вычислении ошибок нейронов выходного слоя и их использовании при корректировке весов нейронных связей предыдущих слоев. Таким образом, получается, что ошибка передается от выхода ко входу, тем самым изменяя связи между нейронами всех слоев, отсюда и название метода обучения.
Приведем поэтапно алгоритм метода обратного распространения ошибки [3,4].
1. Проводится инициализация весов связей нейронов небольшими случайными значениями.
2. Пока не выполнено условие выхода из алгоритма, выполняются шаги 3-18.
3. Для каждой пары {данные, целевое значение} выполняются шаги
4-17.
4. Каждый входной нейрон (X1, 1= 1,2,___,п) отправляет полученный
сигнал X; всем нейронам в последующем (скрытом) слое.
5. Каждый скрытый нейрон (, ]=1,2,_,ш) суммирует взвешенные входные сигналы, вычисляя величину г д по формуле
п
2Ьит = + X ХЩд, (1)
г =1
где г д - взвешенная сумма входных сигналов, поступивших в скрытый
«■' зит
нейрон}; ^од - смещение скрытого нейрона; м>у - значение весовой связи
между нейроном 1 входного и нейроном ] скрытого слоя.
6. Каждый скрытый нейрон (, ]=1,2,_,ш) вычисляет значение
функции активации по формуле
= ?(г3иит ), (2)
где гд - значение функции активации нейрона f (х) - функция активации нейронов.
7. Каждый выходной нейрон (У^, к=1,2,_,р) суммирует взвешенные входящие сигналы, вычисляя значение величины у^ по формуле
т
Укшт = vok + I zjvjk, (3)
j=1
где yk - взвешенная сумма входных сигналов, поступивших в выходной
Лsum J J
нейрон k; vok - смещение выходного нейрона к; vjk - значение весовой
связи между нейроном j скрытого слоя и нейроном к выходного слоя.
8. Каждый выходной нейрон (Yk, k=1,2,...,p) вычисляет значение функции активации yk по формуле
yk = f (yksum ). (4)
9. Каждый выходной нейрон (Yk, k=1,2,...,p) получает целевое значение, то есть такое значение отклика, которое является правильным для текущего набора входных переменных, и вычисляет ошибку по формуле
dk = (tk - yk) f \yksum X (5)
где dk - ошибка выходного нейрона k; tk - целевое значение функции ак-
I
тивации выходного нейрона k; f (x) - первая производная от функции активации.
10. Каждый выходной нейрон (Yk, k=1,2,...,p) вычисляет величину, на которую изменится вес связи vjk по формуле
D vjk = h dkzj, (6)
где D vjk - приращение веса синаптической связи между нейроном j скрытого слоя и нейроном k выходного слоя; h - коэффициент обучения.
11. Каждый выходной нейрон (Yk, k=1,2,...,p) вычисляет величину корректировки своего смещения Dvok по формуле
Avok = h dk. (7)
12. Каждый скрытый нейрон (Zj, j=1,2,...,m) суммирует входящие ошибки нейронов выходного слоя, вычисляя значение величины d j по
sum
формуле
5^ = £ , (8) к=1
где - суммарная ошибка нейронов выходного слоя, поступившая в
скрытый нейрон ].
13. Каждый скрытый нейрон (Zj, ]=1,2,... ,т) вычисляет значение
ошибки по формуле
87 = 5j,mJ(Zj„m ). (9)
14. Каждый скрытый нейрон (Zj, ]=1,2,...,т) вычисляет величину
корректировки весовой связи по формуле
А = к 5 7X1. (10)
15. Каждый скрытый нейрон (Z 7, ]=1,2,. ,т) вычисляет величину
корректировки смещения по формуле
А7 = к 57. (11)
16. Каждый выходной нейрон (У к, к=1,2,...,р) обновляет значения весовых связей по формуле
7 = . (12)
17. Каждый скрытый нейрон (Zj, ]=1,2,...,т) обновляет значения весовых связей по формуле
Пу = +Ам>у. (13)
18. Проверяются условия выхода из алгоритма. Условием выхода может являться достижение заданного значения суммарной квадратичной ошибки или выполнение заданного количества итераций.
Суммарная квадратичная ошибка вычисляется по формуле
1 Р Л о
Е = - ££(ук - $)2, (14)
2 к=15=1
где Л- количество образов для распознавания. Преимущества данного метода обучения:
1) возможно динамическое (потоковое) обучение сети;
2) имеется возможность распараллеливания;
3) на сверхбольших выборках необязательно брать все значения входных признаков.
Недостатки метода обучения Backpropagation следующие:
1) возможна медленная сходимость;
2) в данном алгоритме присутствует проблема переобучения сети;
3) застревание в локальных минимумах.
На основе приведенного выше метода обучения многослойного персептрона была написана и отлажена программа, позволяющая обучать нейронную сеть на выборке из подписей различных людей и проверять результаты путем распознавания образцов подписей, схожих с теми, которые имелись в обучающей выборке.
Разработанная программа анализирует попиксельно все поданные ей на вход изображения и конвертирует каждое из них в черно-белый формат. В дальнейшем значение яркости каждого пикселя изображения в градациях серого будет использовано в качестве элемента вектора признаков этого изображения.
Конвертация цветного КвВ-изображения в черно-белое осуществляется по формуле [5]
7 = О,ЗД+ 0,590+ 0,11 В. (15)
После того, как изображение переведено в черно-белый формат, необходимо произвести нормировку полученных значений яркостей пикселей для приведения всех значений к единому масштабу. Для проведения нормировки будет использовано выражение
(16)
где х^ - среднее значение признака х},
- 1
*г=-т2>?, (П)
<* 5=1
Gj - среднеквадратическое отклонение признака х{,
(18)
Для того, чтобы все полученные нормированные значения гарантированно попадали в диапазон значений, определяемый функцией активации нейронов, необходимо вычислить новые значения путем пропускания имеющихся через эту функцию активации нейронов:
*/ = /(**)• (19)
На рис. 2 показано главное окно программы распознавания подписей.
Как видно из рис. 2, в программе предусмотрено обучение сети максимум на шести образцах подписей. После обучения сети имеется возможность посмотреть график суммарной квадратичной ошибки.
На рис. 3 показано окно параметров сети, которые можно изменять в зависимости от результатов распознавания.
192
5 Система распо»наваиия подписей — □ X
Операции Настройки Ввкод
Текущие насттмйки се™ Количество нейссноа в скрытом сгке 5 Количество псйсспоо а ськодгюм слое: 2 Количество ггтереи>1Й обучо-мя ¿0 Коэфо/циеит об/чемис мНУзснсв скрытсго слов 0.2 Коэфед/чигитоб/чгнявмНУзснсе вьосод-ого слов 0.25 1Л|**лэльная ошибка сети: 0,001
Рис. 2. Главное окно программы распознавания подписей
Ü0 Наггрэйки □ X
Структура сета тункция «tiscU/w ьелсонсв
Количество нейронов в скрытом слое Е: 3 О Сигмоид О Гиперболический тангенс
Количество нейронов в вэосодном слое П- -1 ® Бипэлфньй сагмэид
i_
Обучение №"од обучения
Нсйрснэ! скрытого стоя |0.2 (g) Классический BackPropagation
Нейроны выходного споя |0.25 -1 С1 ВасКРгорэдасюп с учегем моментеьх характеристик
Ксличзство итераций обучения 40 "Я
1 МоментныА пераметр 0.9
Млжма/ъная ошибка 10.001 щ
Сохранить Отмена
Рис. 3. Окно настройки параметров нейронной сети
Обучим нейронную сеть на некоторой выборке изображений. Пусть в обучающую выборку войдут изображения, показанные на рис. 4.
Рис. 4. Подписи для обучения сети
Загрузим подписи на рис. 4 в программу и выберем для каждой из них свой класс (рис. 5). В данном случае примем, что будут два класса: будем распознавать различные вариации четвертой подписи (отнесем эту
193
подпись к первому классу), а на остальные подписи сеть должна давать отклик, информирующий о том, что принадлежность текущей подписи к какому-либо классу не определена (второй класс). Будем использовать параметры сети, указанные в окне на рис. 3.
Рис. 5. Загруженные и классифицированные подписи для обучения сети
Теперь запустим процесс обучения. После того, как он завершится, можно просмотреть график изменения суммарной квадратичной ошибки, показанный на рис. 6. Из рис. 6 видно, что процесс обучения методом обратного распространения ошибки сошелся.
Ц Суммарная квадратичная ошибка — □ X
Зависимость суммарной квадратичной ошибки от количества итераций 2-1----
■ I
1 ■ \
■ \ ■ ч,
и-1
О 10 20 30 40
Итерации
Рис. 6. График изменения суммарной квадратичной ошибки
194
Теперь проверим, насколько эффективно сеть может распознавать подписи одного и того же человека. Для этого подадим на входы изображения подписи, показанные на рис. 7.
Рис. 7. Эталонная подпись, использованная при обучении сети (а), и подписи, используемые для распознавания (б, в, г)
В табл. 1 сведены результаты распознавания подписей, показанных на рис. 7. В графе «Эталонные значения» указываются значения выходов сети, заданные при обучении, в графе «Полученные значения» - значения выходов, полученные при распознавании соответствующих подписей.
Таблица 1
Результаты распознавания различных вариантов подписи одного и того же человека
Подпись Эталонные значения Полученные значения
7а {0,668, -0,755}
76 {1,-1} {0,216, -0,673}
7 в {0,487, -0,721}
7 г {0,216, -0,678}
Как видно из табл. 1, нейронная сеть справилась с задачей распознавания: были соблюдены знаки соответствующих выходных значений, поэтому определить принадлежность подписей к заданному классу не представляется сложным. Все подписи были отнесены к первому классу. За принадлежность к классу в данном случае отвечает номер позиции положительного значения выхода.
Теперь подадим на вход сети изображения, на которые она должна выдавать отклик, информирующий о неопределенности класса образа. Эти изображения были использованы при обучении (рис. 4). На вход подадим все эти изображения по порядку, кроме четвертого. В табл. 2 сведены результаты распознавания поданных на вход подписей.
Таблица 2
Результаты распознавания подписей, принадлежащих _разным людям_
№ п/п Эталонные значения Полученные значения
1 {-0,276, -0,557}
2 {-0,182, -0,591}
3 {-0,5, -0,5} {-0,252, -0,693}
4 {-0,199, -0,559}
5 {-0,319, -0,541}
Как видно из табл. 2, по полученным значениям выхода вполне можно сделать вывод о том, что поданные на вход соответствующие подписи не были отнесены сетью ни к одному из классов, что и было необходимо.
В данной работе была рассмотрена многослойная нейронная сеть Розенблатта, позволяющая решать различные задачи распознавания образов. Приведено описание алгоритма обучения этой нейронной сети методом обратного распространения ошибки, отмечены достоинства и недостатки этого метода. На основе алгоритмического описания разработано программное обеспечение, позволяющее решать задачу распознавания подписей разных людей. Была продемонстрирована работа программы на примере конкретной выборки подписей. Программное обеспечение показало хорошие результаты распознавания различных вариантов подписи одного человека, а также подписей разных людей. Многослойные нейронные сети могут применяться для решения и других задач, так как являются практически универсальным инструментом.
Список литературы
1. Розенблатт Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга. Principles of Neurodynamic: Perceptions and the Theory of Brain Mechanisms. М.: Мир, 1965. 480 с.
2. Хайкин, С. Нейронные сети: Полный курс. Neural Networks: A Comprehensive Foundation. М.: Вильямс, 2006. 1104 с.
3. Habrahabr [Электронный ресурс]. Режим доступа: http://habrahabr.ru/, свободный.
4. Wikipedia: свободная энциклопедия [Электронный ресурс]. Режим доступа: http://ru.wikipedia.org/, свободный.
5. Гонсалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2012. 1104 с.
Новиков Александр Сергеевич, канд. техн. наук, доц., [email protected], Россия, Тула, Тульский государственный университет,
Ежов Александр Александрович, san4o.lexter2011 @yandex.ru, Россия, Тула, Тульский государственный университет
ROSENBLATT MULTILAYER NEURAL NETWORKS AND ITS APPLICATION FOR SOL VING PROBLEMS OF RECOGNITION SIGNA TURES
A.S. Novikov, A.A. Ezhov
The architecture of the multi-layer perceptron of Rosenblatt is described, learning algorithm of neural network Backpropagation is listed, the advantages and disadvantages of this method of study is mentioned, the program that uses the back-propagation algorithm for solving the problem of recognition of signatures is described, the results of recognition of signatures is demonstrated.
Key words: multilayer perceptron, neural network, algorithm of back propagation, synaptic communication, pattern recognition.
Novikov Alexander Sergeyevich, сandidate of technical sciences, docent, [email protected], Russia, Tula, Tula State University,
Ezhov Alexander Alexandrovich, san4o.lexter2011 @yandex.ru, Russia, Tula, Tula State University
УДК 004.272
БИОМЕТРИЧЕСКАЯ СИСТЕМА АУТЕНТИФИКАЦИИ С ИСПОЛЬЗОВАНИЕМ ГОЛОСОВЫХ ДАННЫХ
А.С. Новиков, К.С. Нестеров
Рассмотрен один из способов построения биометрической системы идентификации пользователя по голосу, которая является независимой от ключевой парольной фразы. Основными преимуществами используемого подхода является простота реализации и высокая надежность.
Ключевые слова: биометрическая система, голосовые данные, аутентификация.
Идентификация человека по голосу является одной из биометрических систем аутентификации. Биометрическая система аутентификации -система проверки личности (аутентификации) человека по его биометрическим показателям. Биометрический параметр - параметр, являющийся частью самого человека.