ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 УДК 004.822 МЕТОДЫ И АЛГОРИТМЫ СОЗДАНИЯ СТРУКТУРЫ НЕЙРОННОЙ СЕТИ В КОНТЕКСТЕ УНИВЕРСАЛЬНОЙ АППРОКСИМАЦИИ ФУНКЦИЙ Т.А. Калистратов Ключевые слова: аппроксимация; нейронные сети; структура нейронной сети. В данной статье дан обзор наиболее часто использующихся методов и алгоритмов создания нейронной сети. Дана их оценка с точки зрения использования нейронной сети как универсального аппроксиматора. Предлож ены свои алгоритмы для создания оптимальной многослойной нейронной сети без ограничения на количество скрытых слоев, а также сети с двумя скрытыми слоями. Искусственную нейронную сеть (ИНС), обучаемую согласно алгоритму обратного распространения, можно рассматривать как практический механизм реализации нелинейного отображения «вход-выход» общего вида. Построение подобного отображения является основным шагом как в области нейросетевого управления, так и в области идентификации систем. При этом с точки зрения идентификации систем важно не только низкое значение ошибки аппроксимации, но и максимально возможная простота структуры сети. На данный момент существует множество типов нейронных сетей, различных по своему строению и передаточным функциям [1]. Остановимся на рассмотрении многослойного персептрона. Многослойный персептрон есть сеть с прямым распространением сигнала и, как следует из названия, несколькими скрытыми слоями. В качестве функции активации будем рассматривать сигмоидальную функцию. Сигмоида (сигмоидальная функция) – это гладкая монотонная нелинейная S-образная функция. В семейство функций класса сигмоид также входят такие функции, как логистическая функция, арктангенс, гиперболический тангенс и другие функции подобного вида. Ниже представлено уравнение экспоненциальной сигмоиды (логистической функции). . (1) Выбор сигмоидальной функции как основной активационной функции нейрона при построении нейронной сети объясняется следующим: 1) вид сигмоидальной функции позволяет снизить шумы сети; 2) выбор одной конкретной нелинейной функции не уменьшает способности нейронных сетей к подстройке и обучению. Фактически в нейронных сетях используются следующие преобразования входных сигналов для получения выходных: a) линейная комбинация сигналов; b) активационная функция нейрона (любой непрерывный нелинейный элемент, в нашем случае – сигмоидальная функция); 3) суперпозиция функций. В [2] доказано, что для сколь угодно точной аппроксимации любой функции многих переменных достаточно трех операторов, перечисленных выше. При этом в качестве второго оператора может использоваться любой нелинейный элемент. Перед рассмотрением алгоритмов создания структуры нейронной сети необходимо определиться с функциональными возможностями нейронов как элементов сети, а также их простейших соединений. На вход каждому нейрону подается сумма сигналов, пришедших по его синапсам, умноженных на соответствующий синаптический вес. Как говорилось выше, функция активации нейрона в общем виде определяется следующим образом: , (2) где . (3) В данном случае под вектором X понимается входные сигналы непосредственно для рассматриваемого нейрона, а не для всей нейронной сети. Рассмотрим произвольный нейрон первого внутреннего слоя нейронной сети. Входными сигналами для каждого такого нейрона являются непосредственно входные сигналы нейронной сети. Входная функция (3) задает некоторую плоскость в n-мерном пространстве (входов). Заметим, что частная производная весовой функции v(X) по xi равна , (4) тогда производная функции активации будет иметь следующий вид: , (5) откуда значение градиента функции активации определяется формулой 1845 ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 grad(y) = . (6) То есть градиент функции активации постоянен по модулю и перпендикулярен плоскости входов. Из вышесказанного следует, что моделирующие возможности нейронов первого скрытого слоя ограничены выбором плоскости и скоростью возрастания самой функции. Нейроны второго слоя имеют гораздо больший «аппроксимационный потенциал». Ответ на вопрос о минимальном количестве скрытых слоев, достаточном для сколь угодно точной аппроксимации любой непрерывной функции, дает теорема об универсальной аппроксимации [3]: Пусть fi(x) – ограниченная, не постоянная монотонно возрастающая непрерывная функция. Пусть – mо-мерный единичный гиперкуб . Пусть пространство непрерывных на функций обозначается символом C( ). Тогда для любой функции F( ) и Е > 0 существует такое целое число m1 и множество действительных констант ai, bi и wij, где i = 1, …, m1, j = 1, ..., m0, что (7) является реализацией аппроксимации функции f(X), т. е. |F( ) – f( )| < Е (8) для всех , принадлежащих входному пространству. Заметим, что данная теорема применима к многослойным персептронам, т. к. ее условия описывают нейронную сеть вида: 1) сеть содержит входных узлов и один скрытый слой, состоящий из m1 нейронов. Входы обозначены ; 2) скрытый нейрон i имеет синаптические веса wi1, ..., wmo и порог bi; 3) выход сети представляет собой линейную комбинацию выходных сигналов скрытых нейронов, взвешенных синаптическими весами выходного нейрона . В контексте обычного многослойного персептрона Цыбенко [4] впервые строго продемонстрировал, что одного скрытого слоя достаточно для аппроксимации произвольной непрерывной функции, заданной на единичном гиперкубе. Эта работа была опубликована в Техническом отчете университета штата Иллинойс в 1988 г. и вышла отдельным изданием год спустя [5–6]. В 1989 г. независимо друг от друга были опубликованы две работы по использованию персептронов в качестве универсальных аппроксиматоров [7–8]. Другие вопросы аппроксимации описаны в [3; 9]. Из приведенной теоремы не следует, что один скрытый слой является оптимальным в смысле времени обучения, простоты реализации и, что более важно, качества обобщения. Проблема многослойного персептрона с одним скрытым слоем состоит в том, что нейроны могут взаимодействовать друг с другом на глобальном уровне. В сложных задачах такое взаимодействие усложняет задачу повышения качества аппроксимации в одной точке без явного ухудшения в другой. С другой сторо1846 ны, при наличии двух скрытых слоев процесс аппроксимации становится более управляемым. В частности, можно утверждать следующее [7; 10]. 1. Локальные признаки извлекаются в первом скрытом слое. 2. Глобальные признаки извлекаются во втором скрытом слое. В частности, нейрон второго скрытого слоя «обобщает» выходные сигналы нейронов первогo скрытого слоя, относящихся к конкретной области входногo пространства. Таким образом, персептроны с 2 внутренними слоями справляются с задачей аппроксимации лучше, однако подобная структура может не являться оптимальной. В качестве критерия оптимальности нейронной сети можно использовать минимизацию общего риска: R(w) = Es(w) + λЕс(w), (9) где Es(w) – стандартная мера эффективности. При обучении методом обратного распространения она обычно определяется как среднеквадратическая ошибка, которая вычисляется по всем выходным нейронам сети на всем обучающем множестве примеров для каждой эпохи. Второе слагаемое Ec(w) – штраф за сложность, который зависит исключительно от самой сети (модели). λ – параметр регуляризации, который описывает относительную значимость слагаемого штрафа за сложность относительно меры эффективности [3]. Количество нейронных сетей, имеющих n скрытых нейронов, равно 2(n–1). Для поиска оптимальной нейронной сети можно искать наилучшую сеть среди сетей с одинаковым количеством скрытых нейронов (i), а затем сравнивать ее с наилучшей из сетей, имеющих на один скрытый нейрон больше (i+1). Функция ошибки Es(w) является убывающей, асимптотически стремящейся к нулю, а штраф за сложность Ec(w) – возрастающей и неограниченной. Заметим, что, т. к. мы рассматриваем, по сути, только наиболее подходящую сеть из множества всех сетей с одинаковым количеством внутренних нейронов, ошибку сети и оба ее слагаемых можно рассматривать как функции от количества скрытых нейронов в сети (n). Производная общего риска имеет вид: R’(n) = Es’(n) + λЕс’(n), (10) причем Es’(n) < 0 и возрастает, а Ес’(n) > 0, а возрастание-убывание определяется выбранным типом «штрафа за сложность». Заметим, что более корректная оценка «штрафа за сложность» будет получена при использовании невыпуклой функции. В таком случае Ес’(n) окажется неубывающей функцией. Значит, R’(n) имеет только один нуль, а сама функция общего риска – один экстремум (минимум). Таким образом, при использовании критерия общего риска и невыпуклой функции штрафа за сложность можно построить оптимальную нейронную сеть. Сложность подобного алгоритма в раз выше сложности алгоритма «линейного наращивания» структуры сети. Столь серьезное возрастание вычислительной сложности не позволяет рассматривать данный алгоритм в качестве универсального, хотя и позволяет гарантированно найти оптимальную структуру нейронной сети для решения конкретной задачи. Поэтому ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 рассмотрим некоторые алгоритмы построения нейронных сетей со структурами «стандартного вида», а именно с одним и двумя скрытыми слоями нейронов. Для построения нейронной сети с одним скрытым слоем алгоритм построения структуры является тривиальным: добавление по одному нейрону в скрытый слой до достижения критерия останова. Однако в случае с двумя внутренними слоями возникает вопрос: в какой слой следует добавлять нейроны на каждом шаге? В [3] предлагается следующий алгоритм: 1) определяется максимально допустимое число нейронов в сети n; 2) n раскладывается на два слагаемых n = p + q, на соотношение p и q не накладывается дополнительных ограничений; 3) формируется р многослойных персептронов с одним скрытым слоем возрастающего размера h1 < h2 < < ... < hp; 4) генерируется q многослойных персептронов с двумя скрытыми слоями, размер первого скрытого слоя которых фиксирован и составляет hp, а размер второго – возрастает h’1 < h’2 < … < h’q. Подобный алгоритм сильно зависит от удачного (в конкретном случае) выбора разложения n на p и q. Одним из других возможных подходов является наращивание сети методом каскадной корреляции [11] и метод адаптации структурного уровня [12]. Процедура обучения методом каскадной корелляции начинается с минимальной структуры сети, имеющей несколько входных и выходных узлов, что определяется условиями задачи, и не содержащей скрытых узлов. Скрытые нейроны добавляются в сеть по одному, образуя таким образом многослойную структуру добавленных скрытых нейронов. После добавления нового нейрона его входные синаптические связи замораживаются, а обучаются только его выходные синаптические связи. Подобный метод не дает ответа на вопрос, в какой слой необходимо производить добавление нового нейрона на каждом шаге. Метод адаптации структуры сети вносит изменение в традиционный алгоритм обучения. В нем к прямому (функциональному) и обратному проходу (адаптации параметров) добавлен третий проход адаптации структурного уровня. На этом третьем уровне вычислений структура сети настраивается посредством изменения количества нейронов и структурных связей между ними. Этот метод наращивания сети является очень ресурсоемким и требует интенсивных вычислений. Еще одним способом построения структуры нейронной сети является упрощение структуры сети. В этом случае процесс адаптации начинается с большого многослойного персептрона, производительности которого достаточно для решения поставленной задачи. После этого сеть постепенно упрощается за счет избирательного или последовательного ослабления или отключения отдельных синаптических связей. Регуляризация весов строится на использовании в качестве функции невязки сети не только меру ее эффективности, но и меру сложности сети. Подобную зависимость называют общим риском сети, формула которого приводилась выше: R(w) = Es(w) + λЕс(w). (11) В общем случае одним из вариантов выбора слагаемого штрафа за сложность является сглаживающий интеграл k-гo порядка: , (12) где – выполняемое моделью отображение входа на выход; μ(x) – некоторая весовая функция, определяющая область входного пространства, на которой функция должна быть гладкой. Это делается для того, чтобы k-я производная функции по входному вектору х принимала малое значение. Чем больше величина k, тем более гладкой (т. е. менее сложной) будет функция . Наиболее простая из возможных процедур регуляризации сложности для многослойного персептрона – снижение весов: (13) где Ctotal множество всех синаптических весов сети. Подобная процедура регуляризации может применяться для упрощения структуры сети, однако она не согласовываются с общим случаем, приведенным выше (сглаживающий интеграл (12)). Возможен также другой подход к упрощению структуры сети на основе Гессиана. Главной идеей этого подхода к упрощению структуры сети (усечению сети) является использование информации о вторых производных поверхности ошибок для обеспечения компромисса между сложностью сети и величиной ошибки обучения. Создание такой модели начинается с локальной аппроксимации функции стоимости Еav с помощью ряда Тейлора в окрестности выбранной точки: = (14) где ∆w – возмущение, применяемое к данной точке w; g(w) – вектор rpадиента, вычисленный в точке w. Целью метода является обнуление одного из синаптических весов для минимизации приращения функции стоимости Еаv. Алгоритм дальнейших вычислений подробно описан в [3]. Описанные методы упрощения структуры сети позволяют «избавляться» от малополезных синаптических связей, однако при обучении нейронной сети возможна ситуация возникновения «дублирующих» нейронов, т. е. нейронов со схожими параметрами, которые будут также усложнять структуру сети. Исходя из этого, можно предложить метод, основанный на комбинации подходов наращивания и упрощения сети. В подобном методе можно выделить следующие основные циклические этапы: обучение сети, наращивание структуры сети, ликвидация излишних синаптических связей, аннулирование излишних нейронов. Этап обучения сети выполняется с использованием традиционных алгоритмов обучения (например, алгоритм обратного распространения с ранним остановом). Этап наращивания сети может состоять как из добавления одного нейрона в один из скрытых слоев, так и группы нейронов. Рассмотрим более подробно вто- 1847 ISSN 1810-0198. Вестник ТГУ, т.19, вып.6, 2014 рой вариант наращивания сети. Как говорилось раньше, нейроны первого слоя преобразуют пространство входных сигналов в пространство локальных признаков, а нейроны второго скрытого слоя – пространство локальных признаков в пространство глобальных. Ввиду этого, можно добавлять по одному нейрону во второй скрытый слой, при этом добавляя достаточное (для данной системы и заданной пороговой ошибки) количество нейронов в первый слой. Подобный подход описан в [13] для случая бинарной функции многих переменных (которая трактуется в качестве невыпуклого множества) и персептрона Розенблатта. Этот же подход может быть перенесен на непрерывные функции, если мыслить поверхность, принимаемую в качестве аргумента каждым нейроном второго слоя как некоторую нечеткую фигуру. При этом третий слой персептрона Розенблатта ассоциируется с выходным (линейным) слоем персептрона рассматриваемой структуры. Таким образом, количество нейронов N1, добавляемых на каждом этапе наращивания структуры сети, определяется по формуле свойств (с соответствующими поправками в сдвигах нейронов, зависящих от удаленного). Таким образом, в формуле (11) в слагаемом Ес(w) под w стоит понимать совокупность всех изменяемых параметров системы. ЛИТЕРАТУРА 1. 2. 3. 4. 5. 6. 7. 8. 9. (15) где n – размерность пространства входов. Для реализации этапа ликвидации излишних синаптических связей можно использовать любой из описанных ранее методов (например, метод использования Гессиана). Для аннулирования излишних нейронов можно воспользоваться следующими простыми соображениями: 1) нейрон, не имеющий ненулевых исходящих синаптических связей, должен быть аннулирован; 2) два нейрона, находящиеся на одном слое и имеющие практически идентичные характеристики, должны быть объединены. Необходимые условия для более простого удаления избыточных нейронов первого типа создает этап ликвидации излишних синаптических связей. Подобного результата можно достичь и для «дублирующих» нейронов, вынуждая их параметры принимать определенные значения. Устремление к нулю параметра сигмоидной функции превращает ее в константу y = 0,5, а нейрон с подобной функцией активации может быть удален из системы без потери аппроксимационных 10. 11. 12. 13. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. М.: Мир, 1992. Горбань А.Н. Обобщенная аппроксимационная теорема и вычислительные возможности нейронных сетей // Сибирский журнал вычислительной математики. 1998. Т .1. № 1. С. 12-24. Хайкин C. Нейронные сети: полный курс. 2-e изд. / пер. с англ. М.: Издат. дом «Вильямс», 2006. Gallant A.R., White H. There exists a neural network that does not make avoidable mistakes // IEEE International Conference on Neural Networks. 1988. V. 1. P. 657-664. Cybenko G. Aproximation by superpositions of a sigmoidal function // Mathematics of Control, Signals and Systems. 1989. V. 2. P. 303-314. Cybenko G. Aproximation by superpositions of a sigmoidal function, Urbana. IL.: University of Illinois, 1988. Funahashi К. On the aproximate realization of continuous mapings by neural networks // Neural Networks. 1989. V. 2. P. 183-192. Hormk К., Stinchcombe M., White H. Multilayer feedforward networks are universal aproximators // Neural Networks. 1989. V. 2. P. 359-366. Light W. Ridge functions, sigmoidal functions and neural networks, in E.W. Cheney, C.K. Chui and L.L. Schumaker, eds. // Aproximation Theory. 1992. V. 2. P. 163-206. Chester D.L. Why two hidden layers are better than one // International Joint Conference on Neural Networks. 1990. V. 1. P. 265-268. Fahlman S.E., Lebiere C. The cascade-correlation learning architecture // Advances in Neural Information Processing Systems. 1990. V. 2. P. 524-532. Lee T.-C., Peterson A.M., Tsai J.J-C. A multilayer feed-forward neural network with dynamically adjustable structures // IEEE International Conference on Systems, Man and Cybernetics. 1990. P. 367-369. Калистратов Т.А. Аппроксимация многомерных невыпуклых множеств с помощью аппарата нейронных сетей // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2014. Т. 19. Вып. 3. С. 931-932. Поступила в редакцию 27 октября 2014 г. Kalistratov T.A. METHODS AND ALGORITHMS OF CREATION OF STRUCTURE OF NEURON NETWORK WITHIN UNIVERSAL APPROXIMATION OF FUNCTIONS This article provides an overview of the most frequently used methods and algorithms of generation a neural network. Their estimation in terms of using a neural network as a universal approximator is given. Own algorithms to create the optimal multi-layer neural network with no limit on the number of hidden layers and the network with two hidden layers are offered. Key words: approximation; neural networks; structure of neural network. Калистратов Тимофей Александрович, Тамбовский государственный университет им. Г.Р. Державина, г. Тамбов, Российская Федерация, аспирант, кафедра компьютерного и математического моделирования, e-mail: stubbytim@mail.ru Kalistratov Timofey Aleksandrovich, Tambov State University named after G.R. Derzhavin, Tambov, Russian Federation, Post-graduate Student, Computing and Mathematical Modeling Department, e-mail: stubbytim@mail.ru 1848