Радиальные нейронные сети

Содержание

Введение

Описанные выше многослойные сети сети сигмоидального типа с математической точки зрения выполняют аппроксимацию функции нескольких переменных X=RN во множество выходных переменных Y=RM. Поскольку сигмоидальная функция, играющая роль функции активации нейронов, имеет ненулевое значение на всем диапазоне входных данных, то в преобразовании сетью входных данных в выходные участвуют многие (если не все) ее нейроны. Вследствие этого аппроксимация сигмоидальными (и, естественно, линейными) нейронами называется глобальной аппроксимацией.

Радиальные сети строятся с использованием радиальных нейронов, функция активации которых имеет ненулевые значения только в окрестностях своего центра . Поэтому аппроксимация с помощью таких сетей называется локальной аппроксимацией.

Радиальная сеть имеет двухслойную структуру, первый слой составляют радиальные нейроны, выходной - один или несколько линейных. На рисунке представлена структурная схема радиальной сети с одним выходным нейроном.



Здесь fii(|X-Ci|) - функция активации i-ого радиального нейрона, называемая также базисной функцией.

Сеть выполняет аппроксимацию входных данных согласно выражению (для упрощения выкладок положим w0=0):

y=sum[i=1:L](wi*fii(|X-Ci|)).

Задача обучения сети состоит в подборе таких значений L, Ci и wi, которые доставляют минимум целевой функции

E=(1/2)*sum[k=1:p]((sum[i=0:L](wi*fi(|X-Ci|))-dk)2).
где p - количество обучающих выборок.

Обозначим через G матрицу Грина, имеющую следующий вид:

fi(|X1-C1|) ... fi(|X1-CL|)
fi(|X2-C1|) ... fi(|X2-CL|)
. . .
fi(|Xp-C1|) ... fi(|Xp-CL|)

Если положить, что параметры радиальных функций известны, то решение задачи обучения эквивалентна решению системы линейных алгебраических уравнений

G*W=D,
где W=[w1, w2, ..., wL]T - вектор весов, а D=[d1, d2, ..., dp]T - вектор ожидаемых значений выходного сигнала сети.

Вследствие прямоугольности матрицы G (как правило, p>>L) вектор весов W можно отыскать следующим образом

W=G+*D,
где G+=(GT*G)-1*GT - псевдоинверсия прямоугольной матрицы G.

Использование в качестве аргумента радиальной функции эвклидовой нормы ставит задачу масштабирования компонентов входного вектора X. Эта задача решается путем ввода в определение эвклидовой метрики масштабных коэффициентов в виде матрицы Q:

|Z|2Q=(Q*Z)T*(Q*Z)= ZT*QT*Q*Z,
где Z=[z1, z2, ..., zN]T.

Масштабирующая матрица в N-мерном пространстве имеет следующий вид:

q11 q12 ... q1N
q21 q22 ... q2N
. . .
qN1 qN2 ... qNN

Обозначим произведение QT*Q матрицей корреляцией B, тогда имеем

|Z|2Q=sum[i=1:N](sum[j=1:N](bij*zi*zj)).

Если масштабирующая матрица Q имеет диагональный вид (а это наиболее часто встречающийся на практике случай), то

|Z|2Q=sum[i=1:N](bii*z2i).

Как упоминалось ранее, чаще всего в качестве радиальной функции используется функция Гаусса, ее вариант без масштабирования переменных представлен ниже

fi(X)=fi(|X-Ci|2)=exp(-|X-Ci|22/(2*s2i)),
где si - параметр, задающий ширину функции.

Вариант функции Гаусса, использующий масштабирование матрицей Qi, связанной с i-ой базисной функцией, выглядит следующим образом [???]:

fi(X) = fi(|X-Ci|2) = exp(-(X-Ci)T*QTi*Qi*(X-Ci)) = exp((1/2)*(X-Ci)T*Bi*(X-Ci)),
где (1/2)*Bi=QTi*Qi играет роль скалярного коэффициента 1/(2*s2i).

Обучение радиальной сети

Процесс обучения радиальной сети распадается на два этапа:

  1. подбор параметров радиальной функции fi для каждого радиального нейрона (в случае функции Гаусса это центр Ci и параметр ширины si);
  2. подбор весов выходного слоя нейронов.

При этом второй этап значительно проще первого, поскольку сводится к вычислению выражения W=G+*D, где основные вычислительные затраты - расчет псевдоинверсии матрицы Грина G.

Задача отыскания параметров радиальных функций Гаусса для всех нейронов первого слоя в свою очередь распадается на две подзадачи:

  1. определение центров Ci;
  2. расчет параметров ширины si.

Понятно, что основными требованиями к расположению центров Ci в области определения входных данных X являются:

Именно этим требованиям отвечает решение по кластеризации данных, даваемое ИНС с самоорганизацией на основе конкуренции. Следовательно, алгоритмы обучения, используемые в этих сетях для отыскания усредненных векторов в кластерах данных, непосредственно применимы и в радиальных сетях для отыскания центров радиальных функций.

После определения местоположения всех центров радиальных функций Ci производится подбор параметров si, определяющих величину области охвата, в которой значение радиальной функции превышает пороговое значение e. Такой подбор должен обеспечить, с одной стороны, покрытие всего пространства входных данных и, с другой стороны, незначительность перекрытия соседних зон.

Проще всего в качестве значения si принять эвклидово расстояние от центра Ci до ближайшего соседа. Можно учитывать более широкое соседство, используя формулу

si=sqrt((1/L)*sum[j=1:L](|Cj-Ci|22)),
где L - количество ближайших соседей центра Ci (обычно L=3...5).

Гибридный алгоритм обучения

Гибридный алгоритм обучения радиальной сети реализуется чередованием пары шагов:

  1. отыскание коэффициентов выходного (линейного) слоя;
  2. адаптация нелинейных параметров радиальных функций всех нейронов первого слоя сети.

Перед началом обучения выбираются начальные значения центров и параметров ширины радиальных функций всех нейронов входного слоя.

На первом шаге при фиксированных параметрах радиальных функций определяется вектор весов выходного слоя по выражению

W=G+*D,
где W=[w0, w1, ..., wL]T - вектор весов, D=[d1, d2, dp]T - вектор ожидаемых значений, G+ - псевдоинверсия матрицы Грина.
1 fi1(X1) fi2(X1) ... fiL(X1)
1 fi1(X2) fi2(X2) ... fiL(X2)
. . . . .
1 fi1(Xp) fi2(Xp) ... fiL(Xp)

На втором шаге при фиксированных значениях весов нейронов выходного слоя методом градиента корректируются значения параметров радиальных функций Ci и si. Для последующего изложения будем использовать диагональную форму масштабирующей матрицы Q. Это означает, что радиальная функция имеет вид

fil(Xk)=exp(-(1/2)*ukl),
где суммарный сигнал нейрона ukl определяется выражением
ukl=sum[j=1:N]((xkj-clj)2/s2lj).

Подлежащая минимизации целевая функция имеет вид

E=(1/2)*sum[k=1:p](yk-dk)2=(1/2)*sum[k=1:p]((sum[l=0:L](wl*fi(Xk)-dk))2).

В результате дифференцирования этой функции по параметрам радиальной функции имеем:

дE/дclj = sum[k=1:p]((yk-dk)*wl*exp(-(1/2)*ukl)*(xkj-clj)/s2lj),
дE/дslj = sum[k=1:p]((yk-dk)*wl*exp(-(1/2)*ukl)*(xkj-clj)2/s3lj).

Для корректировки весов используются стандартные выражения:

ck+1lj=cklj-nu*дE/дclj, sk+1lj=sklj-nu*дE/дslj,
где nu - коэффициент обучения.

Уточнением параметров радиальных функций завершается очередной цикл обучения. На практике выделенные шаги имет разную скорость сходимости: градиентное уточнение параметров радиальных функций много медленнее. Для исключения этой диспропорции один расчет весов выходного слоя сопровождается несколькими циклами уточнения параметров радиальных функций.

Основной проблемой при создании аппроксимирующих сетей является выбор количества базисных функций. Малое их количество увеличивает погрешность аппрксимации, а слишком большое - погрешность обощения. Подбор необходимого и достаточного количества нейронов зависит от многих факторов: размерность пространства входных данных, количество обучающих выборок и, самое главное, пространственная структура аппроксимируемой функции.

Для решения задачи определения размерности L входного слоя в радиальных сетях разработаны как формальные, так и эвристические методы. Ниже дается описание простого эвристического метода.

После предъявления очередной обучающей выборки Xk определяется эвклидово расстояние от нее до ближайшего центра радиальной функции Cw. Если это расстояние d(Xk,Cw) больше установленного порога ek, в сеть добавляется новый радиальный нейрон с центром в Xk, после чего сеть подвергается обычной процедуре обучения методом градиента. Процесс добавления нейронов завершается при достижении требуемой точности аппроксимации. Величина порога ek критически влияет на эффективность метода, обычно ek экспоненциально изменяется с течением циклов обучения от emax до emin. Основной недостаток метода - невозможность уменьшения количества радиальных нейронов.