Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Обучение линейной сети



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

Применим процедуру обучения с учителем, которая использует обучающее множество вида:

{p1 t1}, {p2 t2},..., {p Q t Q }, (5)

где р1, р2,..., р Q – входы сети; t1, t2,..., t Q – соответствующие целевые выходы.

Требуется минимизировать следующую функцию средней квадратичной ошибки:

. (6)

Настройка линейной сети для заданного обучающего множества может быть выполнена посредством прямого расчета с использованием М-функции newlind.

Предположим, что заданы следующие векторы, принадлежащие обучающему множеству:

P = [1 -1.2]; Т = [0.5 1];

Построим линейную сеть и промоделируем ее:

net = newlind(Р, Т); Y = sim(net, P);

net.IW{l, l}

Выход сети соответствует целевому вектору.

Зададим следующий диапазон весов и смещений, рассчитаем критерий качества обучения и построим его линии уровня (рис. 7):

w_range = -l:0.1: 0; b_range = 0.5:0.1:1;

ES = errsurf(P, T, w_range, b_range, 'purelin');

contour(w_range, b_range, ES, 20)

hold on; plot(-2.2727e-001,7.2727e-001, 'x'); hold off

Рис. 7. Критерий качества обучения

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

Для линейной нейронной сети используется рекуррентное обучающее правило наименьших квадратов, которое является намного более мощным, чем обучающее правило персептрона. Правило наименьших квадратов, или правило обученияWH{Уидроу-Хоффа), минимизирует среднее значение суммы квадратов ошибок обучения.

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

(7)

Подставляя выражение для ошибки в форме

(8)

получим

(9)

Здесь рj (k) – j -й элемент вектора входа на k -йитерации. Эти соотношения лежат в основе обучающего алгоритма WH.

(10)

Результат может быть обобщен на случай многих нейронов и представлен в следующей матричной форме:

(11)

Здесь ошибка и смещение – векторы и – параметр скорости обучения. При больших значениях обучение происходит быстро, однако при очень больших значениях может приводить к неустойчивости. Используя правило обучения WH и метод наискорейшего спуска, всегда можно обучить сеть так, чтобы ее погрешность была минимальной.

М-функция learnwh предназначена для настройки параметров линейной сети и реализует следующее обучающее правило:

(12)

где Lr – параметр скорости обучения. Максимальное значение параметра скорости обучения, которое гарантирует устойчивость процедуры настройки, вычисляется с помощью М-функции maxlinlr.

С помощью демонстрационной программы demolin7 можно исследовать устойчивость процедуры настройки в зависимости от параметра скорости обучения.

Для обучения линейной нейронной сети может быть применена типовая процедура обучения с помощью М-функции train. Эта функция для каждого вектора входа выполняет настройку весов и смещений, используя М-функцию learnp. В результате сеть будет настраиваться по сумме всех коррекций. Каждый пересчет для набора входных векторов называется эпохой. Затем процедура train моделирует настроенную сеть для имеющегося набора векторов, сравнивает результаты с набором целевых векторов и вычисляет среднеквадратичную ошибку. Как только значение ошибки становится меньше заданного или исчерпано предельное число эпох, обучение прекращается.

Обратимся к тому же примеру, который использовался при рассмотрении процедуры адаптации, и выполним процедуру обучения.

Р = [1-1.2];% Вектор входов

Т= [0.5, 1]; % Вектор целей

maxlr = 0.40*maxlinlr(Р, 'bias');

net = newlin([-2,2],1,[0],raaxlr);

% Расчет функции критерия качества

w_range = -l:0.2:1; b_range = -l:0.2:1; % Диапазоны значений веса и смещения

ES = errsurf(P,T, w_range, b_range, 'purelin');

% Построение поверхности функции критерия качества,

surfс(w_range, b_range, ES)

На рис. 8, а построена поверхность функции критерия качества в пространстве параметров сети.

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

х = zeros(1,50); у = zeros(1,50);

net.IW{l} = l; net.b{l} = -1; % Начальные значения весов и смещения

х{1) = net.IW{l}; у(1) = net.b{l};

net.trainParam.goal = 0.001; % Пороговое значение критерия качества

net. trainParam. epochs = 1; % Число эпох

for i = 2:50,

[net, tr] = train(net,P,T);

x(i) = net.lW{l>;

y(i) = net.b{l}; end

contour(w_range, b_range, ES, 20), hold on plot(x, y,’-*'), hold off,


а

б

Рис. 8. Обучение нейронной сети

На рис. 8, б символом * отмечены значения веса и смещения на каждом шаге обучения; видно, что примерно за 10 шагов при заданной точности (пороговое значение критерия качества) 0.001 получим w = -0.22893, b = 0.70519. Это согласуется с решением, полученным с использованием процедуры адаптации.





Дата публикования: 2015-04-07; Прочитано: 438 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...