Введение 3
Постановка задачи 10
Проблематика и обзор литературы 10
1 Описание экспериментов 14
1.1 Выбор нейронной сети, алгоритма обучения и других параметров 15
1.2 Выбор метрик 19
2 Программная реализация, тестирование и анализ результатов 22
2.1 Инфраструктура 22
2.2 Результаты тестирования, выбор метрик 23
2.3 Эволюция выбранных параметров во время обучения 25
2.4 Анализ результатов 27
3 Применение разработанных критериев и перспективы 30
3.1 Динамическое расширение слоя 31
3.2 Многослойные сети 31
Заключение 33
Литература 35
В последние годы наблюдается активной рост интереса к искусственным нейронным сетям (ИНС) как к методу решения многих практических задач. Этот интерес связан с разработкой новых архитектур и методов обучения, которые позволили преодолеть основные проблемы ИНС и значительно расширить круг решаемых ими задач. Также актуальность исследований нейронных сетей дополняется стремительным увеличением вычислительных мощностей, доступных исследователям, а в частности распространением графических процессоров, которые в последнее время стали основным средством для обучения сложных ИНС.
Такие авторы как Джеффри Хинтон и Ян Лекун своими работами (например, [1, 2]) внесли большой вклад в процесс выхода нейросетевых исследований из зимы (период с 1990 по 2010 гг. [3]). Описанные в этих и последующих работах методы позволили обучать действительно глубокие нейронные сети (ранее ИНС с 8 слоями считалась очень глубокой, в то время как современная сеть ResNET использует 150 слоев [4], и это не предел) для более глубокого анализа информации. Также стало возможно эффективное обучение рекуррентных ИНС, позволяющих обрабатывать временные ряды данных (например аудио, видео, тексты).
Столь стремительное расширение возможностей нейронных сетей требует проведения дополнительных исследований по выявлению применимости данного подхода к той или иной задаче, разработке новых архитектур и преодолению существующих ограничений. Подобные исследования позволят эффективно использовать столь мощный инструмент как ИНС и предотвратить наступление еще одного периода застоя.
Одной из важнейших проблем, возникающих при проектировании ИНС, является выбор ее архитектуры (глубина, ширина, тип слоев нейронов). Для каждой задачи требуется индивидуальный подход, и часто выбор архитектуры сводится к обучению множества нейронных сетей с различной архитектурой в поисках оптимальной. Поскольку обучение даже одной нейронной сети является вычислительно дорогим (требуется оптимизация градиентными методами до миллиарда параметров), такой перебор представляется очень неэффективным. В рамках данной работы проводится исследование и разработка методов для оптимизации выбора количества нейронов в полносвязном слое ИНС.
Введение в теорию искусственных нейронных сетей
Исследование искусственных нейронных сетей началось с работ У. Мак- каллока и У. Питса на стыке нейробиологии и математики [5], в которых они предложили математическую модель биологического нейрона как взвешенного порогового сумматора входных сигналов. Нейрон такого типа изображен на рисунке 1, и результат его работы можно представить в виде y = F(X • w), где x = (x1, x2,..., xn) — вектор входных сигналов, w = (w1,w2, ...,wn) — строка-вектор весовых коэффициентов, F : R ! R — функция нелинейного преобразования. Функцию F принято называть активационной, и в случае нейрона Маккаллока-Питса она равна
I 1, если x > 0;
F (z ) =
I 0, если x <= 0
Рис 1. Математическая модель нейрона Маккаллока-Питса.
Позже были разработаны и другие модели, более точно повторяющие свойства нейронов, но именно простые модели типа Маккаллока-Питса с некоторыми изменениями до сих пор широко используются в ИНС. При правильном выборе весовых коэффициентов нейрон такого типа может использоваться для линейного разделения n-мерного пространства, а объединение нескольких нейронов (путем подачи выхода одного нейрона на вход другого) может использоваться в задачах классификации и аппроксимации. Итерационный процесс выбора весовых коэффициентов (оптимизации) принято называть обучением.
На сегодняшний день наиболее распространена следующая модель нейрона:
y = F (X • w + b), (2)
не сильно отличающаяся от модели Маккаллока-Питса. Здесь b — дополнительное смещение (bias) полученной суммы, которое применяется в некоторых задачах. b не является фиксированным параметром и также подвергается оптимизации при обучении. В качестве активационной функции F на данный момент распространены:
• функции сигмоидального типа (сглаженные пороговые). В качестве такой функции часто применяется
F (z) = ■.) = —1-; (3)
-L I —
и гиперболический тангенс;
• функции типа ReLU (rectified linear unit). За основу таких функций взята F(z) = max(0, z), к которой могут применяться различные модификации: сглаженный ReLU F(z) = log(1 + exp(z)), ReLU с утечкой F(z) = max(z,az),a < 1 и другие;
• в задачах классификации распространено использование функции softmax
-zi
Fi(zi,z2,...,zK) = —^ ,i = 1,2,...,K (4)
Ek=i -
для сравнения выходов K нейронов. В результате применения softmax выходы всех участвующих нейронов находятся в интервале от 0 до 1, а их сумма равна 1. Использование такой активационной функции является расширением описанной модели нейрона, так как подразумевает взаимную зависимость выходов нескольких нейронов.
Столь простые вычислительные элементы как нейроны могут давать интересные результаты при объединении их в сети и применении различных алгоритмов обучения. Первой нейронной сетью, которая могла распознавать визуальные образы стал перцептрон Розенблата [6], изображенный на рисунке 2.
Рис. 2. Однослойный перцептрон Розенблата со многими выходами [7].
Со времен этой нейронной сети было разработано множество методов соединения нейронов в сети, среди которых можно выделить два класса: сети прямого распространения и сети, имеющие обратные связи (рекуррентные). В процессе прохождения сигнала от входа сети прямого распространения к выходу, каждый нейрон производит вычисления только один раз. Пример такой ИНС приведен на рисунке 3.
Рис. 3. Архитектурный граф многослойного персептрона с двумя скрытыми слоями [8].
В рекуррентных нейронных сетях сигнал может образовывать циклы, проходя несколько раз через один нейрон. На рисунке 4 приведен пример сложной рекуррентной нейронной сети АРТ со множественными обратными связями [9]. Для простоты в данной работе будут рассматриваться только нейронные сети прямого распространения, однако рекуррентные также очень эффективны в некоторых задачах и широко используются [11, 12].
Рис. 4. Схема нейронной сети с обратными связями АРТ-1 [10].
Еще одним широко распространенным приемом упрощения нейронных сетей является объединение схожих нейронов в группы. В частности, если несколько нейронов имеют одно множество входных сигналов и одну активационную функцию, такую группу называют нейронным слоем. Результат работы слоя из m нейронов можно представить в виде матричного умножения
У[т] F(x[n] ' W[mxn])- (5)
Здесь y = (у1;У2; ...yym) — выходной вектор-строка, элементами которой являются выходы нейронов, входящих в слой; W = (wi,W2, ...,wm)T — весовая матрица, строками которой являются весовые вектор-строки входящих в слой нейронов; F(У) = (F(z1),F(z2),...,F(zm)) — функция отображающая F : Rm ! Rm путем поэлементного применения одной скалярной функции F к каждому элементу аргумента; для удобства размерности векторов и матриц приведены в квадратных скобках. Вычисленный таким образом выход у передается на вход следующему слою. Матричный подход широко используется в ИНС, поскольку облегчает вычисления, анализ и проектирование нейронных сетей. Благодаря этим преимуществам объединение нейронов в слои получило очень широкое распространение и применяется практически во всех современных ИНС (как прямого распространения, так и рекуррентных).
Использование концепции нейронных слоев позволяет перейти от нейрона как элементарной единицы нейронной сети к нейронному слою как основному структурному элементу. Таким образом, проектирование архитектуры нейронной сети прямого распространения сводится к выбору количества последовательно идущих слоев (глубина), количества нейронов в каждом слое (ширина слоя) и типа слоя. Например, могут использоваться следующие типы слоев:
• может варьироваться активационная функция слоя;
• при обработке изображений применяются сверточные слои. Основной идеей является использование общих весов для нескольких нейронов и выборочная связность нейронов с предыдущим слоем (в отличии от обычных, полносвязных слоев, в которых каждая компонента входного вектора подается на каждый нейрон слоя);
• вспомогательные слои, в которых вместо нейронов используется алгоритмическое преобразование входного вектора. Примерами являются слои нормализации, сокращения размерности (subsampling) и слой добавления шума (dropout). Использование таких модулей позволяет решить ряд существенных проблем, возникающих при обучении нейронной сети.
Примером сложной ИНС является GoogLeNet [13], схема которой приведена на рисунке 5. Эта нейронная сеть является одной из лучших в задаче классификации изображений и, несмотря на значительную сложность приведенного графа, полностью состоит из описанных выше слоев.
Рис. 5. Граф глубокой нейронной сети GoogLeNet [13].
Существуют различные подходы к классификации слоев нейронной сети. В данной работе будут использоваться следующие определения:
• вектор, который подлежит обработке нейронной сетью и подается на вход первому нейронному слою, обозначим как входной вектор;
• нейронный слой, стоящий в конце сети прямого распространения, выходом которого является результат обработки всей нейронной сети, обозначим как выходной слой;
• все нейронные слои, которые стоят перед выходным слоем, будем называть скрытыми.
Классической задачей, в которой нейронные сети превзошли другие алгоритмы, является распознавание рукописных цифр. Для настройки и сопоставления методов распознавания изображений Национальным институтом стандартов и технологий США была составлена выборка рукописных цифр из 70000 изображений в градациях серого размером 28*28 пикселей [14]. В данной задаче наилучший результат показал ансамбль из нескольких нейронных сетей с ошибкой 0.23% неверно классифицированных изображений [15]. Для сравнения, лучший результат без использования нейронных сетей показал метод k ближайших соседей с размером ошибки 0.52%.
В работе предложены несколько критериев, с помощью которых возможно выбрать ширину нейронного слоя близкую к оптимальной на начальных этапах обучения ИНС. Предложенные методы позволяют в некоторых задачах значительно укорить процесс выбора архитектуры нейронных сетей с одним скрытым слоем, а также открывают широкие возможности для исследований проблемы выбора оптимальной архитектуры на более сложных сетях: многослойных и сверточных.
[1] Hinton G. E., Osindero S., Teh Y.-W. A fast learning algorithm for deep belief nets // Neural Computation. 2006. V. 18, issue 7. P. 1527-1554.
[2] LeCun Y., Bottou B., Orr G. B., Muller K.-B. Efficient BackProp // Neural Networks: Tricks of the Trade. 1996. P. 9-50.
[3] AI winter // Wikipedia URL: https://en.wikipedia.org/wiki/AI_winter (дата обращения: 05.05.2018).
[4] He K., Zhang X., Ren S., Sun J. Deep residual learning for image recognition // IEEE Conference on Computer Vision and Pattern Recognition. 2016. P. 770-778.
[5] McCulloch W. S., Pitts W. A logical Calculus of Ideas Immanent in Nervous Activity // The bulletin of mathematical biophysics. 1943. P. 115-133.
[6] Rosenblatt F. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain // Psychological Review. 1958. V. 65. No. 6. P. 386-408.
[7] Уоссермен Ф. Нейрокомпьютерная техника. М.: Мир, 1992. 184 с.
[8] Хайкин C. Нейронные сети: полный курс. 2-e изд. M.: Вильямс, 2008.
[9] Carpenter G., Grossberg S. A Massively Parallel Architecture for a SelfOrganizing Neural Pattern Recognition Machine // Computer vision, graphics, and image processing. 1987. No. 37. P. 54-115.
[10] Ращенко Д. В. Модификация нейронной сети АРТ-1, направленная на сокращение фазы поиска // Процессы управления и устойчивость. 2016. T. 3. № 1. С. 477-481.
[11] Karpathy A., Fei-Fei L. Deep visual-semantic alignments for generating image descriptions // IEEE Transactions on Pattern Analysis and Machine Intelligence. 2017. V. 39. P. 664-676.
[12] Rashchenko D. V. Elimination of the search phase in the neural network ART-1 by changing the criterion of vectors similarity // IEEE 2015 International Conference «Stability and Control Processes» in memory of V. I. Zubov (SCP). 2015. P. 661-662.
[13] Szegedy C., Liu W., Jia Ya., Sermanet P., Reed S., Anguelov D., Erhan D., Vanhoucke V., Rabinovich A. Going deeper with convolutions // IEEE Conference on Computer Vision and Pattern Recognition. 2015. P. 1-9.
[14] THE MNIST DATABASE of handwritten digits // Yann LeCun URL: http://yann.lecun.com/exdb/mnist/index.html (дата обращения: 06.05.2018).
[15] Ciresan D., Meier U., Schmidhuber J. Multi-column deep neural networks for image classification // IEEE Conference on Computer Vision and Pattern Recognition. 2012. P. 3642-3649.
...