ВЕСТН. САМАР. ГОС. ТЕХН. УН-ТА. СЕР. ТЕХНИЧЕСКИЕ НАУКИ. 2017. № 4 (56)
Информатика, вычислительная техника и управление
УДК 004.89
ДВУХСТАДИЙНАЯ НОРМАЛИЗАЦИЯ ВЫХОДНЫХ СИГНАЛОВ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
Р.В. Гирин1, С.П. Орлов2
1 ООО «ИнтеллектСофт»
Россия, 443096, г. Самара, ул. Мичурина, 52
2 Самарский государственный технический университет Россия, 443100, г. Самара, ул. Молодогвардейская, 244
E-mail: [email protected]
Рассматривается проблема интерпретации выходных сигналов искусственных нейронных сетей при применении нелинейной нормализации, вычисляемой с помощью часто применяемых на практике эвристик. Предложено использование в искусственной нейронной сети многосверточной функции активации на основе двустадийной нормализации, выполняющей категоризацию объектов. Показано, что выходные значения, получаемые при использовании данной функции, можно интерпретировать как вероятности полной группы событий. При этом вид распределения позволяет выполнять оценку точности полученного прогноза. На основе реализованной искусственной нейронной сети, выполняющей распознавание рукописных символов от 0 до 9, произведена экспериментальная проверка предложенного подхода.
Ключевые слова: категоризация объектов, искусственные нейронные сети, нормализация.
Введение
Задача категоризации некой сущности по известному перечню ее атрибутов актуальна во многих случаях. Во многих практических задачах важно оценить не только принадлежность сущности к заданной категории, но и найти вероятность данной принадлежности [1]. В настоящей статье описано решение данной задачи применительно к оптическому распознаванию символов с использованием нейронной сети. Применение нейронной сети для категорирования тесно связано с формированием распределения вероятностей принадлежности сущности к заданному перечню категорий [1].
При решении этой задачи важную роль играет алгоритм нормализации выходных значений [2]. В статье рассмотрены теоретические аспекты различных подходов к нормализации совокупности значений, а также применение этих подходов для преобразования выходных сигналов нейронных сетей. Заложенные принципы и разработанные программные библиотеки, использованные в ходе описанных экспериментов, могут быть применены в различных технических приложениях.
Роман Викторович Гирин, ведущий инженер-программист.
Сергей Павлович Орлов (д.т.н., проф.), заведующий кафедрой «Вычислительная техника».
Двухстадийная нормализация
В общем случае под нормализацией значений понимают приведение совокупности некоторых значений к заданному диапазону [3]. Наиболее известные подходы нормализации - это линейная нормализация, нелинейная нормализация, а также нормализация по диапазону [4].
Пусть имеется совокупность каких-либо значений, далее именуемая выборкой, которую нам надо нормализовать. Линейная нормализация задается формулой (1), а нелинейная нормализация - формулой (2):
Да) =
1=1
Цт (а) = ~„-
(1)
а, -В е 1
I е
1=1 (2)
где а - значение переменной из исходной выборки; I - индекс переменной а в выборке; п - число значений в выборке; В = тах {а1, а2,..., ап}.
В случае линейной нормализации после ее применения все нормализованные значения находятся в диапазоне от 0 до 1 и сумма этих значений равна 1. Подобное свойство позволяет трактовать полученные значения как вероятности, а всю выборку - как вероятности полной группы событий. Однако следует отметить, что линейная нормализация в случае применения к выборкам, содержащим отрицательные значения, теряет данное свойство.
После применения нелинейной нормализации все значения находятся в диапазоне от 0 до 1 и сумма всех значений, входящих в выборку, равна 1. Это справедливо и в случае присутствия в выборке отрицательных чисел.
Обладая описанными выше свойствами, этот вид нормализации в некоторых случаях прекрасно подходит. Однако у нелинейной нормализации есть одна важная особенность, из-за которой часто нормализованная выборка представлена единственным значением 1 (соответствующей максимальному значению переменной до нормализации) или 0. Подобный тип векторов называют 1-Ьо1 вектор.
Это происходит в силу следующих причин. Если не использовать корректирующую константу В , то из-за экспоненциального роста при вычислении могут быть получены очень большие значения функции. При этом их будет невозможно сохранить в используемом в программе типе данных даже при достаточно
умеренных значениях а. Однако при использовании В легко заметить, что вы-
0 1
числение сводится к манипуляции значением е = 1 и значениями экспоненты от отрицательных аргументов. Как известно, функция экспоненты в области отрицательных аргументов асимптотически стремится к 0.
Полученный таким образом 1-Ьо1 вектор интерпретировать как распределение вероятностей будет проблематично.
Нормализация по диапазону задается формулой следующего вида:
■Ш1П, {а}}
Ъ (а) =
_I_
тах, {а }- т1п, {а,}' (3)
где а - значение переменной из заданной выборки;
1 - индекс переменной в выборке;
, - индекс выборки;
т1п, и тах, - минимальное и максимальное значения в /-той выборке.
Подобный подход к нормализации приводит все значения в диапазон между 0 и 1, даже если в исходную выборку входили отрицательные числа. Однако недостаток заключается в том, что подобная нормализованная выборка не суммируется в единицу, что не позволяет интерпретировать ее как распределение вероятностей полной группы событий.
В данной статье предлагается двухстадийная нормализация, применимая в случаях, когда нужно получить выборку, представляющую собой множество значений в диапазоне от 0 до 1, сумма которых равна 1, не имеющих предрасположенности приобретать вид 1-Ьо1 вектора. Для этого предлагается последовательно применять нормализацию по диапазону и линейную нормализацию.
Двухстадийная нормализация в искусственных нейронных сетях
Искусственная нейронная сеть (ИНС) - это математическая модель, а также ее программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей, сетей нервных клеток живого организма [5]. Говоря о задачах классификации, решаемых нейронными сетями, важно отметить, что выходы сети можно интерпретировать как оценки вероятности того, что элемент принадлежит некоторому классу. В этом случае методы нормализации выходных значений нейронной сети играют ключевую роль.
Для обучения нейронной сети применяется подход, при котором выходные значения сети сопоставляются с известными значениями ожидаемых выходных сигналов. Эти значения нам известны, т. к. обучающая выборка сопровождается экземплярами наборов входных сигналов, аннотированных с ожидаемым выходным сигналом. Задание функции ошибки, выражающей различие ожидаемого и фактического выходных сигналов, служит индикатором того, насколько точно работает ИНС [8, 10].
Процесс обучения нейронной сети можно сформулировать как нахождение производной заданной целевой функции потерь и движение против градиента роста данной функции с целью повышения точности сети. В свою очередь, при нахождении градиента находятся частные производные целевой функции потерь и, по правилу цепи, производные соответствующих функций, входящих в нее [7]. Процесс обучения нейронной сети представлен на рис. 1.
Рассмотрим производную функции потерь сети, использующей двустадий-ную нормализацию. При получении сигнала активации в нейронной сети он передается функции активации, которая представляет собой последовательность нормализации по диапазону (3), а затем к полученным результатам применяется линейная нормализация (1). Это позволяет получить выборку с суммой значений, равной 1, которую можно трактовать как распределение вероятностей полной группы событий.
Функция двухстадийной нормализации - это функция, принимающая вектор из п элементов и возвращающая вектор из п нормализованных элементов как результат:
а1 " Ь (К (а)) "
а2 Ь (К (а ))2
_ ап _ _ Ь (К (а )) п _
Ь ( (а )):
где Ь^^а))^ Ь(Я^а(а))2, ... Ь(В.а(а))п вычисляются по формулам (1) и (3).
Выходные данные И НС
Рис. 1. Общая схема процесса обучения ИНС
В случае нахождения производной функции, принимающей вектор значений и возвращающей вектор в качестве результата, необходимо специфицировать: а) по какому выходному компоненту находится производная; б) по какой входной переменной находится частная производная. Двухстадийная нормализация заключается в последовательном применении двух функций, и тогда производная определяется по правилу цепи. Определим выражение для производной /-того выходного компонента по 1-той входной переменной для нормализации по диапазону:
ак,
Эа.
э (
а1 - тт к {а,
{а,}
тахк {а}- т'пк {а}
Эа,
)
где а - значение переменной из заданной выборки; / - индекс переменной в исходной выборке;
. - индекс компоненты выходного вектора, возвращаемого функцией; штк и шахк - минимальное и максимальное значения в к-той выборке. Получаем:
ЭЯ
—^ = 1 / (шахк [аг} - ш1пк [аг }Х ": I = j, Эа. (6) ЭЯ
—А = 0, "/ : / ф j, Эaj.
где использованы те же переменные, что и в выражении (5).
Для производной /-того выходного компонента по .-той входной переменной при линейной нормализации имеем:
п
-а + V а, ЭТ г ^
— =-"/: / = У,
Эа. (±акУ
к=1 (7)
^ = --0—, "/: / Ф . (±Ъ )2
к=1 (8) Важно заметить, что в искусственной нейронной сети функции активации передают значения входных сигналов, скорректированные в зависимости от весов, что можно выразить следующим образом:
£ (Ж.) = Ж,х, + Ж2х2 +... + ж,х ,
о/\ у/ /11 г 22 ///'
где Ж. - вес связиу-того входа ИНС и /-того нейрона; х - входной сигнал, поступивший в ИНС; ^ - число входных сигналов. Вся цепочка преобразований, выполняемая в искусственной нейронной сети (обозначим ее как фунцию Р(№)), может быть выражена следующим образом:
Р(Ш) = Т(Я ())),
где функции Ь(а), Яй(а) и £(Ж) определены в (1), (3) и (9) соответственно.
Поскольку оценка точности результатов, выдаваемых нейронной сетью, по сравнению с известным правильным ответом в ходе обучения выполняется с использованием кросс-энтропии [2], получаем следующие формулы для определения значений ее частных производных:
п п
V а, (V а,) - а ЭЕ(Ж) = £ к ^ к) у х, у.: . =
Щ ау £ак )2 шах - &}- ш1п * &}
к=1 (10) ЭЕ(Ж) х
у
"г: г Ф у,
(шах - [Ъ-}- шт - [Ъ, }^ак
к=1 (11)
где j - индекс, нумерующий столбец матрицы весов (совпадает с индексом, нумерующим элемент входного сигнала);
i - индекс, нумерующий строку матрицы весов;
n - число компонент в векторе, возвращаемом функциями L(a), Rd(a) и g(W); y - индекс элемента в векторе, который соответствует известному нам результату, отмеченному в обучающем нейронную сеть примере как верный (ожидаемый) результат;
a - аргумент функции линейной нормализации;
b - аргумент функции нормализации по диапазону;
min, и max, - минимальное и максимальное значения в s-ной выборке.
Анализируя (10) и (11), легко заметить, что значения, которые корректируют веса нейронной сети, отличны от 0 не только для нейрона, соответствующего известному нам результату, который отмечен в обучающем примере как верный (ожидаемый) результат. Таким образом, выполняется корректировка всех весов в процессе обучения, а не отдельно взятых, как это имеет место в случае применения только нормализации по диапазону.
Построение нейронной сети с двухстадийной нормализацией в качестве
функции активации
Для сравнения различных подходов нормализации были проведены эксперименты с ИНС, в которых в качестве функций активации применялась в одном случае нелинейная нормализация, а в другом - двухстадийная нормализация. Подобная нормализация часто применяется как завершающий слой нейронных сетей, которые выполняют категорирование.
Структура искусственных нейронных сетей, применявшихся в экспериментах, изображена на рис. 2.
Параметры сетей, использовавшихся в экспериментах, приведены в табл. 1.
Для экспериментов выбран тестовый набор (датасет) Национального института стандартизации NIST США. Содержание базы датасетов, как указано в [6], представляет собой 814 255 сегментированных рукописных цифр и букв из специально заполненных форм. Эти символы представлены в виде растровых изображений размером 128*128 пикселей и снабжены маркером, показывающим, какой именно символ изображен в виде 62 ASCII кодов, соответствующих цифрам и символам: 0-9,А-/иа-2.
Соответственно, структура ИНС, обрабатывающих данный датасет, имеет 4900 входных сигналов. Такое число входов необходимо для передачи в сеть изображения размером 70*70. На каждый из входов подавалось значение, соответствующее значению пиксела. Все растровые изображения в базе NIST черно-белые, поэтому для передачи входного сигнала пикселы интерпретировали следующим образом: пикселу черного цвета соответствовала единица, передаваемая на соответствующий вход нейронной сети, а пикселу белого цвета соответствовал ноль. Перед началом обучения веса сетей инициализировались случайными значениями, находящимися в диапазоне от -2.0 до 2.0.
Растровое изображение, каждый пиксел которого инициализирует соответствующий вход нейронной сети значением, пропорциональным интенсивности цвета
а2 а3 а4 а5 а6 а7 .... а10
Сигналы активации (ненормализованные значения)
Функция активации (нормализация)
Нейроны
••••••• •
Выходной сигнал нейронной сети (нормализованные значения)
Рис. 2. Структура нейронных сетей
Таблица 1
Параметры ИНС
Параметр Значение
Число слоев 1
Число нейронов 10
Число входов 4900
Число связей 49000
Сети обучались на части базы, которая содержит цифры. Подходы, изложенные в данной работе, применимы и для сетей, выполняющих категорирова-ние (распознавание) не только цифр, но и всех остальных символов, представленных в базе датасетов.
Результаты экспериментов применения двухстадийной нормализации
Были построены нейронные сети, в одной из которых качестве функций активации применялась нелинейная нормализация, а в другой - двухстадийная нормализация. После обучения сети были протестированы на выборке, представленной в директории в базе датасетов.
Искусственные нейронные сети активно применяются для распознавания образов на изображениях [9].
Рассмотрим пример обработки изображения с цифрами. Выполним сравнение двух методов: нелинейной нормализации и двухстадийной нормализации. Распределение значений, полученных на выходе искусственной нейронной сети, в качестве функции активации, в которой применена двухстадийная нормализация, приведено в табл. 2. В этой же таблице для сравнения приведены выходные сигналы ИНС, в которой применялась нелинейная нормализация.
Оба распределения характерны для каждой из использованных в эксперименте ИНС. Как видно при сопоставлении этих распределений, в случае применения нелинейной нормализации на выходе наблюдается 1-Ьо1 вектор. При применении двухстадийной нормализации выходные значения представляют собой значения в диапазоне от 0 до 1, которые являются долей единицы.
Подобные значения можно интерпретировать как вероятность принадлежности распознаваемого символа к той или иной категории. Категория может быть оценена по наибольшему значению, при этом его абсолютная величина может служить оценкой степени точности результата.
Кроме проверки работы обученных нейронных сетей на тестовой выборке целесообразно получить визуализацию весов связей сети. Подобная визуализация может быть получена следующим образом. Если взять матрицу весов и выбрать из нее все веса связей от всех входов сети к первому нейрону (нейрону, ответственному за категоризацию изображения, на котором цифра «0»), то получаются веса связей сети, которые ИНС «выучила» для того, чтобы распознавать 0. Аналогично можно выбрать все веса, соответствующие другим категориям (в нашем случае - другим цифрам, представленным на растровых изображениях). При применении подобной группировки будет получено 10 групп (по числу категорий) весов, при этом в каждой группе будет 4900 связей. Если полученные 4900 связей изобразить на растровом изображении 70*70 пикселей, присвоив каждому пикселю значение цвета тем темнее, чем более больший вес мы имеем, то будет получена наглядная визуализация весов сети. При этом черному цвету соответствует большое значение веса, а белому - малое.
Результат такой визуализации представлен на рис. 3. Легко видеть, что искусственная нейронная сеть в процессе обучения выделила позиции пикселов, наиболее характерные для каждой из цифр. Этим позициям и соответствующим связям от данных входов искусственной нейронной сети присвоены наибольшие веса. Одновременно с этим для каждой из цифр в процессе обучения ИНС выделились позиции пикселов, наименее характерные для данной цифры. Таким позициям соответствуют наименьшие веса.
Полученное распределение значений весов и анализ его визуализации подтверждают корректность функционирования искусственной нейронной сети, в качестве функции активации в которой применена двухстадийная нормализация, при распознавании рукописных символов от 0 до 9. Однако важно отметить, что двухстадийная нормализация, примененная в качестве функции активации искусственной нейронной сети, применима для выполнения категоризации и в других предметных областях, в которых доступна репрезентативная обучающая выборка.
Таблица 2
Распределение на выходе ИНС
Цифра на изображении Имя файла базы данных Ш8Т (в поддиректории Ъу_с1а88) Вектор выходного сигнала искусственной нейронной сети
Нелинейная нормализация Двустадийная нормализация
0 30\Ь8Г_4\Ъ8Г_4_00000.р^ 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0,16; 0; 0,1; 0,1; 0,09; 0,1; 0,1; 0,09; 0,1; 0,09;
2 32\Ь8Г_4\Ь8^4_00000.р^ 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0,02; 0,03; 0,2; 0,05; 0,17; 0,1; 0,1; 0; 0,16; 0,18;
7 37\Ь8Г_4\Ь8^4_00000.р^ 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0,1; 0; 0,1; 0,14; 0,1; 0,09; 0,06; 0,15; 0,09; 0,13;
5 35\Ь8Г_4\Ь8^4_00000.р^ 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0,12; 0; 0,08; 0,1; 0,13; 0,13; 0,1; 0,07; 0,13; 0,14;
3 33\Ь8Г_4\И8^4_00000.р^ 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0,06; 0; 0,11; 0,2; 0,1; 0,1; 0,05; 0,07; 0,1; 0,14;
Рис. 3. Визуализация весов сети, использующей двустадийную нормализацию в качестве функции активации
Заключение
В заключение стоит отметить, что применение двухстадийной нормализации на нейронной сети подобной архитектуры может производить категорирование в широком спектре предметных областей. С развитием облачных технологий по-
15
добные реализации нейронных сетей, выполняющих экспертные оценки, будут размещаться на сервере приложений ИНС. Это позволит клиентским устройствам со значительными ограничениями в вычислительной мощности отправлять необходимые запросы на сервер и получать результаты с искомыми оценками и значениями метрик.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. NorvigP., Rassell S. Artificial Intelligence: A Modern Approach, Edition: 3rd, Pearson, 2010.
2. Nielsen M. Neural Networks and Deep Learning, free online book. -http:// neuralnetworksanddeeplearning.com, 2017.
3. Dodge Y. The Oxford Dictionary of Statistical Terms, OUP, 2003.
4. Goodfellow I., Bengio Y., Courville A. Deep learning. - http://www.deeplearningbook.org, 2017.
5. Мак-Каллок У.С., Питтс В. Логическое исчисление идей, относящихся к нервной активности // Автоматы / Под ред. К.Э. Шеннона и Дж. Маккарти. - М.: Изд-во иностр. лит., 1956. - С. 363-384.
6. Grother P., Hanaoka K. NIST Special Database 19 Handprinted Forms and Characters, 2nd Edition, National Institute of Standards and Technology, September 13, 2016.
7. Rumelhart D.E., Hinton G.E., Williams R.J. Learning Internal Representations by Error Propagation // Parallel Distributed Processing. Vol. 1. - Cambridge, MA: MIT Press, 1986.
8. Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры. - М.: МГТУ им. Н.Э. Баумана, 2004.
9. Галушкин А.И. Синтез многослойных систем распознавания образов. - М.: Энергия, 1974.
10. Барцев С.И., Охонин В.А. Адаптивные сети обработки информации. - Красноярск: Ин-т физики СО АН СССР, 1986.
Статья поступила в редакцию 11 сентября 2017 г.
TWO-STAGE NORMALIZATION OF OUTPUT SIGNALS OF ARTIFICIAL NEURAL NETWORKS
R. Girin1, S.P. Orlov2
1 OOO 'IntellectSoft'
52, Michurina st., Samara, 443096, Russian Federation
2 Samara State Technical University
244, Molodogvardeyskaya st., Samara, 443100, Russian Federation
In the article the problem of interpretation output signals of artificial neural networks was considered in cases when softmax regression is used in them which calculated with heuristics often applied in practice. To use alternative multi-fold activation function in artificial neural network for objects categorizing is proposed. It is shown that output signals, that can be get in case of using the function, possible to be interpreted as probability of full group of events. Additionally, the form of distribution allows to estimate how precise the proposition is. With aim of developed artificial neural net that recognizes hand-written characters from 0 through 9 experiments were made that checks proposed approach.
Keywords: categorization, artificial neural networks, normalization of values.
Roman V. Girin, Lead Software Engineer. Sergey P. Orlov (Dr. Sci. (Techn.)), Professor.