Лабораторная работа: Нейронные сети с радиальными базисными функциями
Цель лабораторной работы: освоить основные принципы решения задачи нейронных сетей с радиальными базисными функциями.
Задание: Используя встроенные функции пакета нейронных сетей математической среды Matlab, построить нейронную сеть с радиальными базисными функциями.
1 Теоретические сведения
Сети РБФ имеют ряд преимуществ перед рассмотренными многослойными сетями прямого распространения. Во-первых, они моделируют произвольную нелинейную функцию с помощью всего одного промежуточного слоя, тем самым, избавляя разработчика от необходимости решать вопрос о числе слоев. Во-вторых, параметры линейной комбинации в выходном слое можно полностью оптимизировать с помощью хорошо известных методов линейной оптимизации, которые работают быстро и не испытывают трудностей с локальными минимумами, так мешающими при обучении с использованием алгоритма обратного распространения ошибки. Поэтому сеть РБФ обучается очень быстро - на порядок быстрее, чем с использованием алгоритма ОР (обратного распространения).
Недостатки сетей РБФ: данные сети обладают плохими экстраполирующими свойствами и получаются весьма громоздкими при большой размерности вектора входов.
На рис. 1 представлена структурная схема нейронной сети с радиальными базисными функциями.
Нейронная сеть радиальных базисных функций содержит в наиболее простой форме три слоя: обычный входной слой, выполняющий распределение данных образца для первого слоя весов; слой скрытых нейронов с радиально симметричной активационной функцией, каждый j-й из которых предназначен для хранения отдельного эталонного вектора в виде вектора весов wj(h); выходной слой
Для построения сети РБФ необходимо выполнение следующих условий.
Во-первых, наличие эталонов, представленных в виде весовых векторов нейронов скрытого слоя. Во-вторых, наличие способа измерения расстояния входного вектора от эталона. Обычно это стандартное евклидово расстояние. В-третьих, специальная функция активации нейронов скрытого слоя, задающая выбранный способ измерения расстояния. Обычно используется функция Гаусса, существенно усиливающая малую разницу между входным и эталонным векторами. Выходной сигнал эталонного нейрона скрытого слоя aj- это функция (гауссиан) только от расстояния pj между входным и эталонным векторами.
Рис. 1 . Сеть с радиальными базисными функциями
Таким образом, выходной сигнал шаблонного нейрона - это функция только от расстояния между входным вектором х и сохраненным центром wv
Обучение слоя образцов-нейронов сети подразумевает предварительное проведение кластеризации для нахождения эталонных векторов и определенных эвристик для определения значений -.
Нейроны скрытого слоя соединены по полносвязной схеме с нейронами выходного слоя, которые осуществляют взвешенное суммирование
Для нахождения значения весов wот нейронов скрытого к выходному слою используется линейная регрессия.
В общем случае активационные функции нейронов скрытого слоя могут отражать законы распределения случайных величин (вероятностные нейронные сети) либо характеризовать различные аналитические зависимости между переменными (регрессионные нейронные сети).
К недостаткам сетей РБФ можно отнести то, что заранее должно быть известно число эталонов, а также эвристики для построения активационных функций нейронов скрытого слоя.
В моделях РБФ могут быть использованы различные способы измерения расстояния между векторами, а также функции активации нейронов скрытого слоя.
Радиальная, базисная сеть общего вида – это двухслойная нейронная сеть с R входами, каждый из которых может состоять из нескольких элементов. Передаточной функцией нейронов входного слоя является колоколообразная симметричная функция следующего вида:
Эта функция имеет максимум, равный 1 , при n = 0 и плавно убывает при увеличении n , достигая значения 0.5 при n = ±0.833 . Передаточной функцией нейронов выходного слоя является линейная функция perelin .
Функция взвешивания для входного слоя вычисляет евклидово расстояние между каждой строкой матрицы весов и каждым столбцом матрицы входов:
Затем эта величина умножается на смещение нейрона и поступает на вход передаточной функции, так что
a{i} = radbas(net.prod(dist(net.IW{1, 1}, p).net.b{i})).
Для нейронов выходного слоя функцией взвешивания является скалярное произведение dotprod , а функцией накопления – функция суммирования взвешенных входов и взвешенного смещения netsum.
Для того чтобы понять поведение радиальной базисной сети общего вида, необходимо проследить прохождение вектора входа p . При задании значений элементам вектора входа каждый нейрон входного слоя выдает значение в соответствии с тем, как близок вектор входа к вектору весов каждого нейрона. Таким образом, нейроны с векторами весов, значительно отличающимися с вектором входа p , будут иметь выходы, близкие к 0 , и их влияние на выходы линейных нейронов выходного слоя будет незначительное. Напротив, входной нейрон, веса которого близки к вектору p , выдаст значение, близкое к единице.
Для построения радиальных базисных сетей общего вида и автоматической настройки весов и смещений используются две функции newrbe и newrb . Первая позволяет построить радиальную базисную сеть с нулевой ошибкой, вторая позволяет управлять количеством нейронов входного слоя. Эти функции имеют следующие параметры:
net = newrbe(P, T, SPREAD),
net = newrb(P, T, GOAL, SPREAD),
где P – массив размера RxQ входных векторов, причем R – число элементов вектора входа, а Q – число векторов в последовательности;
T – массив размера SxQ из Q векторов цепи и S классов;
SPREAD – параметр влияния, определяющий крутизну функции radbas , значение по умолчания которого равно единице;
GOAL – средняя квадратичная ошибка, при этом значение по умолчанию равно 0.0 .
--> ЧИТАТЬ ПОЛНОСТЬЮ <--