Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
857
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

6. Радиальные базисные сети

Радиальные базисные нейронные сети состоят из большего количества нейронов, чем стандартные сети с прямой передачей сигналов и обучением методом обратного распространения ошибки, но на их создание требуется значительно меньше времени. Эти сети особенно эффективны, когда доступно большое количество обучающих векторов [7].

Ниже, кроме сетей общего вида, обсуждаются 2 специальных типа радиальных базисных сетей: сети GRNN (GeneralizedRegressionNeuralNetworks) для решения задач обобщенной регрессии и сети PNN (ProbabilisticNeuralNetworks) для решения вероятностных задач [43].

Для создания радиальных сетей общего вида предназначены М-функции newrbeиnewrb, а обобщенных регрессионных и вероятностных – М-функцииnewgrnnиnewpnnсоответственно.

По команде help radbasis можно получить следующую информацию об М-функциях, входящих в состав ППП Neural Network Toolbox и относящихся к построению радиальных базисных сетей:

Radial basis networks

Радиальные базисные сети

New networks

Формирование сети

newrb

Создание радиальной базисной сети

newrbe

Создание радиальной базисной сети с нулевой ошибкой

newgrnn

Создание обобщенной регрессионной сети

newpnn

Создание вероятностной сети

Using networks

Работа с сетью

sim

Моделирование сети

Weight functions

Функции взвешивания

dist

Евклидово расстояние

dotprod

Скалярное произведение

normprod

Нормированное скалярное произведение

Net input functions

Функции накопления

netprod

Произведение взвешенных входов

netsum

Сумма взвешенных входов

Transfer functions

Функции активации

compet

Конкурирующая функция активации

purelin

Функция активации с жесткими ограничениями

radbas

Радиальная базисная функция активации

Performance

Функции оценки качества сети

mse

Среднеквадратичная погрешность

Signals

Преобразование данных

ind2vec

Преобразование индексного вектора в матрицу связности

vec2ind

Преобразование матрицы связности в индексный вектор

Demonstrations

Демонстрационные примеры

demorb1

Радиальные базисные сети

demorb3

Пример неперекрывающихся функций активации

demorb4

Пример перекрывающихся функций активации

demogrn1

Сеть GRNN и аппроксимация функций

demopnn1

Сеть PNN и классификация векторов

Модель нейрона и архитектура сети

На рис. 6.1 показана радиальная базисная сеть с Rвходами. Функция активации для радиального базисного нейрона имеет вид:

(6.1)

Вход функции активации определяется как модуль разности вектора весов wи вектора входаp, умноженный на смещениеb.

Рис. 6.1

График функции активации представлен на рис. 6.2.

Рис. 6.2

Эта функция имеет максимум, равный 1, когда вход равен 0. Когда расстояние между векторами wиpуменьшается, выход радиальной базисной функции увеличивается. Таким образом, радиальный базисный нейрон действует как индикатор, который формирует значение 1, когда входpидентичен вектору весовw. Смещениеbпозволяет корректировать чувствительность нейронаradbas. Например, если нейрон имел смещение 0.1, то его выходом будет 0.5 для любого вектора входаpи вектора весаwпри расстоянии между векторами, равном 8.333, или 0.833/b.

Радиальная базисная сеть состоит из двух слоев: скрытого радиального базисного слоя, имеющего S1 нейронов, и выходного линейного слоя, имеющегоS2 нейронов (рис. 6.3).

Рис. 6.3

Входами блока ||dist|| на этом рисунке являются вектор входа p и матрица весов IW1,1, а выходом – вектор, состоящий из S1 элементов, которые определяются расстояниями между i-м вектором входа p и i-й вектор-строкой iIW1,1 матрицы весов. Такую вектор-строку будем называть вектором весов i-го нейрона. Выход блока ||dist|| умножается поэлементно на вектор смещения b1 и формирует вход функции активации. Тогда выход первого слоя может быть записан в следующей форме:

a{1}=radbas(net.prod(dist(net.IW{1,1},p),net.b{1})))

Использовать столь сложную запись при применении ППП Neural Network Toolbox не потребуется, поскольку все операции, связанные с созданием радиальной базисной сети, оформлены в виде специальных М-функций newrbeиnewrb.

Для того чтобы понять поведение сети, необходимо проследить прохождение вектора входа p. При задании вектора входа каждый нейрон радиального базисного слоя выдаст значение в соответствии с тем, как близок вектор входа к вектору весов каждого нейрона. Таким образом, радиальные базисные нейроны с векторами весов, значительно отличающимися от вектора входаp, будут иметь выходы, близкие к 0, и их влияние на выходы линейных нейронов будет незначительно. Напротив, радиальный базисный нейрон с вектором весов, близким к вектору входаp, выдаст значение, близкое к 1, и это значение будет передано на линейный нейрон с весом, соответствующим выходному слою. Таким образом, если только 1 радиальный базисный нейрон имеет выход 1, а все другие имеют выходы, равные или очень близкие к 0, то выход линейного слоя будет равен весу активного выходного нейрона. Однако это исключительный случай, обычно выход формируют несколько нейронов с разными значениями весов.