Учебник ИИ. _Учебник ИНС_2014_Э4743. Учебник рекомендовано Ученым советом Вятгу в качестве учебного пособия Киров 2014
Скачать 3.7 Mb.
|
4. НЕЙРОННЫЕ СЕТИ С РАДИАЛЬНО-БАЗИСНЫМИ ФУНКЦИЯМИ 4.1. Общие сведения о нейронных сетях с радиальными базисными функциями Многослойные нейронные сети выполняют аппроксимацию функции нескольких переменных путем преобразования множества входных переменных во множество выходных переменных. Существует способ отображения входного множества в выходное множество, заключающийся в преобразовании путем адаптации нескольких одиночных аппроксимирующих функций к ожидаемым значениям, причем эта адаптация проводится только в ограниченной области многомерного пространства. При таком подходе отображение всего множества данных представляет собой сумму локальных преобразований. С учётом роли, которую играют скрытые нейроны, преобразования составляют множество базисных функций локального типа. Выполнение одиночных функций (при ненулевых значениях) регистрируется только в ограниченной области пространства данных - отсюда и название локальная аппроксимация. Особое семейство образуют сети с радиальной базисной функцией, в которых нейроны реализуют функции, радиально изменяющиеся вокруг выбранного центра и принимающие ненулевые значения только в окрестности этого центра. Подобные функции, определяемые в виде H(x) = H(||x-c||), (4.1) где х – выходы нейронов первого слоя; 79 с – центр радиальной базисной функции. Такие функции называются радиальными базисными функциями. В них роль нейрона заключается в отображении радиального пространства вокруг одиночной заданной точки (центра), либо вокруг группы таких точек, образующих кластер. Суперпозиция сигналов, поступающих от всех таких нейронов, которая выполняется выходным нейроном, позволяет получить отображение всего многомерного пространства. Сети радиального типа представляют собой естественное дополнение сигмоидальных сетей. Сигмоидальный нейрон представляется в многомерном пространстве гиперплоскостью, разделяющей это пространство на две категории (два класса), в которых выполняется одно из двух условий: либо (u, x)> 0, либо (u, x) <0. Такой подход продемонстрирован на рис. 4.1а. + + + + + + + + - - - - - - - - - - - а) б) + - - - - - - - - - - - - а) сигмоидальным нейроном; б) радиальным нейроном Рис. 4.1. Иллюстрация способов разделения пространства данных В свою очередь, радиальный нейрон представляет собой гиперсферу, которая осуществляет шаровое разделение пространства вокруг центральной точки в соответствии с рис. 4.1б. Именно с этой точки зрения он является естественным дополнением сигмоидального нейрона, поскольку в случае круговой симметрии данных позволяет заметно уменьшить количество нейронов, необходимых для разделения различных классов. Поскольку нейроны могут выполнять различные функции, в 80 радиальных сетях отсутствует необходимость использования большого количества скрытых слоев. Структура типичной радиальной сети включает входной слой, на который подаются сигналы, описываемые входным вектором, скрытый слой с нейронами радиального типа и выходной слой, состоящий, как правило, из одного или нескольких линейных нейронов. Функция выходного нейрона сводится исключительно к взвешенному суммированию сигналов, генерируемых скрытыми нейронами [3]. На рис.4.2 представлена структура нейронной сети с радиальными базисными функциями. X1 Xi Xn h 1 (x) h i (x) h k (x) f 1 (x) f t (x) w11 w1t wi1 wit wk1 wkt Рис.4.2. Структура нейронной сети с радиальными базисными функциями В математической статистике в качестве радиальных базисных функций часто используют полиномиальные функции h j (x) = x j , (4.2) где x – выходы нейронов первого слоя; 81 j – коэффициент искривления. Комбинация синусоидальных функций (ряды Фурье) часто используется при обработке сигналов 2 ( ) ( ) sin j j x h x m , (4.3) где θ j – центр функции; m – радиус функции. Логистические функции наиболее популярны в многослойных искусственных нейронных сетях 0 1 ( ) 1 exp( ) h x bx b , (4.4) где b – центр функции; b 0 – коэффициент подстройки. Наиболее распространенной функцией, применяемой для распознавания образов, является функция Гаусса 2 1 2 ( , ) n j j j x c h x c e , (4.5) где с = (с 1 ,с 2 ,…,с n ) - вектор координат центра активационной функции нейрона скрытого шара; δ - ширина окна активационной функции нейрона скрытого шара [4]. 82 4.2. Математические основы функционирования радиальных нейронных сетей Математическую основу функционирования радиальных сетей составляет теорема Т. Ковера о распознаваемости образов, в соответствии с которой нелинейные проекции образов в некоторое многомерное пространство могут быть линейно разделены с большей вероятностью, чем при их проекции в пространство с меньшей размерностью [1]. Если вектор радиальных функций в N-мерном входном пространстве обозначить h(x), то это пространство является нелинейно h - разделяемым на два пространственных класса X + и X - тогда, когда существует такой вектор весов, что u T h(x) > 0 , x € X + , u T h(x) < 0 , x € X - (4.6) Граница между этими классами определяется уравнением u T h(x) = 0. (4.7) Доказано, что каждое множество образов, случайным образом размещенных в многомерном пространстве, является h - разделяемым с вероятностью 1 при условии соответственно большой размерности этого пространства. На практике это означает, что применение достаточно большого количества скрытых нейронов, реализующих радиальные функции h(x), гарантирует решение задачи классификации при построении всего лишь двухслойной сети: скрытый слой должен реализовать вектор h(x), а выходной слой может состоять из единственного линейного 83 нейрона, который выполняет суммирование выходных сигналов от скрытых нейронов с весовыми коэффициентами, заданными вектором w [2]. Простейшая нейронная сеть радиального типа функционирует по принципу многомерной интерполяции, состоящей в отображении р различных входных векторов x i (i = 1, 2, ... р) из входного N-мерного пространства во множество из р рациональных чисел y i (i = 1, 2, ... р). Для реализации этого процесса необходимо использовать р скрытых нейронов радиального типа и задать такую функцию отображения F(x), для которой выполняется условие интерполяции F(x i )=y i . (4.8) Использование р скрытых нейронов, соединяемых связями с весами w i с выходными линейными нейронами, означает формирование выходных сигналов сети путем суммирования взвешенных значений соответствующих базисных функций. Рассмотрим радиальную сеть с одним выходом и р обучающими парами (x i ,y i ). Примем, что координаты каждого из p центров узлов сети определяются одним из векторов x i . В этом случае взаимосвязь между входными и выходными сигналами сети может быть определена системой уравнений, линейных относительно весов w. Если предположить, что параметры функции Гаусса, смещение с и радиус δ фиксированы, то есть каким-то образом уже определены, то задача нахождения весов решается методами линейной алгебры. Этот метод называется методом псевдо обратных матриц, и он минимизирует средний квадрат ошибки. Суть этого метода основана на вычислении интерполяционной матрицы H [1,4]. 84 1 1 2 1 1 1 2 2 2 2 1 2 m m p p m p h x h x h x h x h x h x H h x h x h x (4.9) На следующем этапе вычисляется инверсия произведения матрицы H на транспонированную матрицу H T 1 1 T A H H (4.10) Окончательный результат, матрица весов, рассчитывается по формуле 1 T W A H y (4.11) Полученная архитектура радиальных сетей имеет структуру, аналогичную многослойной структуре сигмоидальных сетей с одним скрытым слоем. Роль скрытых нейронов в ней играют базисные радиальные функции, отличающиеся своей формой от сигмоидальных функций. Несмотря на отмеченное сходство, сети этих типов принципиально отличаются друг от друга. Радиальная сеть имеет фиксированную структуру с одним скрытым слоем и линейными выходными нейронами, тогда как сигмоидальная сеть может содержать различное количество слоев, а выходные нейроны бывают как линейными, так и нелинейными. Используемые радиальные функции могут иметь весьма разнообразную структуру. 85 Нелинейная радиальная функция каждого скрытого нейрона имеет свои значения параметров с i и s i , тогда как в сигмоидальной сети применяются, как правило, стандартные функции активации c одним и тем же для всех нейронов параметром β. Аргументом радиальной функции является эвклидово расстояние образца x от центра с i , а в сигмоидальной сети это скалярное произведение векторов w T x. Еще большие отличия между этими сетями можно заметить при детальном сравнении их структур. Сигмоидальная сеть имеет многослойную структуру, в которой способ упорядочения нейронов повторяется от слоя к слою. Каждый нейрон в ней выполняет суммирование сигналов с последующей активацией. Структура радиальной сети несколько иная. На рис.4.2 изображена подробная схема сети РБФ с радиальной функцией при классическом понимании эвклидовой метрики. Первый слой составляют нелинейные радиальные функции, параметры которых (центры с i и коэффициенты s i ) уточняются в процессе обучения. Первый слой не содержит линейных весов в понимании, характерном для сигмоидальной сети. 4.3. Нелинейная модель расчёта параметров радиальной базисной функции Если предыдущее предположение о фиксированных параметрах функции активации не выполняется, то есть помимо весов необходимо настроить параметры активационной функции каждого нейрона (смещение функции и её радиус), задача становится нелинейной. Решать ее приходится с использованием итеративных численных методов оптимизации, например, градиентных методов. 86 Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Рассмотрим два наиболее часто используемых метода. Выборка из выборки. В качестве центров радиальных элементов берутся несколько случайно выбранных точек обучающего множества. В силу случайности выбора они "представляют" распределение обучающих данных в статистическом смысле. Однако, если число радиальных элементов невелико, такое представление может быть неудовлетворительным. Алгоритм K-средних. Этот алгоритм стремится выбрать оптимальное множество точек, являющихся центроидами кластеров в обучающих данных. При K радиальных элементах их центры располагаются таким образом, чтобы каждая обучающая точка "относилась" к одному центру кластера и лежала к нему ближе, чем к любому другому центру и каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру. После того, как определено расположение центров, нужно найти отклонения. Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько "острой" будет гауссова функция. Если эти функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками, и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна форма проявления дилеммы переобучения и недообучения. Как правило, отклонения выбираются таким образом, чтобы колпак каждой гауссовой функций захватывал "несколько" соседних центров. Для этого имеется несколько методов: явный (отклонения задаются пользователем); изотропный; метод К- средних. 87 В изотропном методе (отклонение берется одинаковым для всех элементов и определяется эвристически с учетом количества радиальных элементов и объема покрываемого пространства); В методе К-средних (отклонение каждого элемента устанавливается (индивидуально) равным среднему расстоянию до его «K ближайших соседей», тем самым отклонения будут меньше в тех частях пространства, где точки расположены густо, - здесь будут хорошо учитываться детали, - а там, где точек мало, отклонения будут большими и будет производится интерполяция). В последнее время получили распространение методы обучения нейронных сетей с радиальными базисными функциями, в которых используется сочетание генетических алгоритмов для подбора параметров активационных функций и методов линейной алгебры для расчета весовых коэффициентов выходного слоя. На каждой итерации поиска генетический алгоритм самостоятельно выбирает в каких точках пространства входных сигналов сети разместить центры активационных функций нейронов скрытого слоя и назначает для каждой из них ширину окна. Для полученной таким образом совокупности параметров скрытого слоя вычисляются веса выходного слоя и получающаяся при этом ошибка аппроксимации, которая служит для генетического алгоритма целевой функцией. На следующей итерации генетический вариант отбрасывает «плохие» варианты и использует наборы, показавшие наилучшие результаты на предыдущей итерации [1,3,4,9,10]. 88 5. САМООРГАНИЗУЮЩИЕСЯ НЕЙРОННЫЕ СЕТИ 5.1. Принцип работы сети Кохонена Примером сети, использующей алгоритм обучения без учителя, является самоорганизующая карта Кохонена (1982 год). Другое название сети Кохонена –KNC (Kohonen Clastering Networks). KNC используют для отображения нелинейных зависимостей на двумерные (чаще всего) сетки, представляющие метрические и топологические зависимости входных векторов, объединяемых в кластеры. Нейронная сеть Кохонена имеет один слой нейронов. Количество входов каждого нейрона равно размерности входного вектора. Количество нейронов непосредственно определяет сколько различных кластеров сеть может распознать. Кора человеческого мозга разбита на участки. Например, участок, ответственный за ступни ног, примыкает к участку, контролирующему движение всей ноги и т.д. Все элементы человеческого тела отображаются на эту поверхность. Основная цель обучения в KNC состоит в выявлении структуры в n- мерных входных данных и предоставлении ее на карте в виде распределенных нейронных активностей. Каждый нейрон несет информацию о кластере, объединяющем в группу схожие по критерию близости входные вектора, формируя для данной группы собирательный образ. Подобные вектора активизируют подобные нейроны, т. е. KNC способна к обобщению. Конкретному кластеру может соответствовать и несколько нейронов с близкими значениями векторов весов, поэтому 89 выход из строя одного нейрона не так критичен к ошибке распознавания, как это имеет место в сети Хемминга [1,3,4]. В большинстве случаев каждый выходной нейрон связан со своими соседями. Эти внутрислойные связи играют важную роль в процессе обучения, так как корректировка весов происходит не для всех весов сети, а только в окрестности этого элемента. Сеть Кохонена использует состязательный конкурентный алгоритм обучения. Выигрывает тот нейрон, чей вектор весов наиболее близок к текущему входному вектору. Например, в смысле расстояния определяемой евклидовой метрикой. Пример. В качестве близости двух образов Х1 и Х2 можно принять евклидово расстояние между ними D(X1, X2) = √∑(X1-X2) 2 (5.1) У нейрона – победителя это расстояние будет меньше, чем у остальных. В другом варианте обучения победителем считается нейрон, весовой вектор которого имеет наибольшее скалярное произведение со входным вектором, так как скалярное произведение – это проекция входного вектора на вектор весов. В этом методе оба вектора должны быть нормализованы по длине. 5.2. Алгоритм обучения сети Кохонена Вход каждого нейрона характеризуется весовым вектором той же размерности, что и входной. Число параметров сети определяется n*k, где n –число входов; k –число нейронов. Свойства сети определяются размерностью массива нейронов, числом нейронов в каждом измерении, формой окрестности выигравшего нейрона, законом сжатия окрестности и 90 скоростью обучения. Начальный размер окрестности выбирается в пределах от 1/2 до 2/3 размера сети и сокращается, например, по обратно пропорциональной зависимости. 1. Инициализировать весовые коэффициенты для всех выходных нейронов (матрица W k n ) cлучайными малыми величинами. Вычислить усредненное начальное расстояние между обучающими векторами D 0 N D 0 =1/N *∑min dist(Xi, W j n ), (5.2) i=1 где N -число примеров обучающей выборки; j- номер нейрона для которого расстояние dist min. Установить размер окрестности для выигравшего нейрона r (радиус стимуляции). 2. Положить D 0 =Dt 3. Подать на вход сети очередной входной вектор Xt(t), где t- номер итерации. 4. Для каждого нейрона j определить его расстояние dist(Xi, W j n ) по формуле (1) для любого j. 5. Выбрать нейрон–победитель m=m*, для которого расстояние минимально. Поиск ведется по величине отклонения входного вектора от весового вектора каждого нейрона. 6. Модифицировать весовые коэффициенты выигравшего нейрона W m* (t+1)= W m (t) + μ* dist(Xi (t), W m n (t) ) (5.3) и тех нейронов s , которые находятся в окрестности выигравшего W j (t+1)= W j (t) + μ* dist(Xi (t), W m n (t) ) (5.4) 7. Повторить п.3-6 для векторов обучающей выборки. 8. Положить W k n (t) ( t+1) = W k n (t) и вычислить D t по формуле (5.2). Подсчитать ε= (D t+1, D t) / D t. |