Тема: « изучение многослойного нелинейного персептрона и алгоритма обратного распространения ошибки » — КиберПедия 

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Тема: « изучение многослойного нелинейного персептрона и алгоритма обратного распространения ошибки »

2019-11-28 281
Тема: « изучение многослойного нелинейного персептрона и алгоритма обратного распространения ошибки » 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: Изучить возможности многослойного персептрона как аппроксиматора и классификатора.

Теоретическая часть.

  Алгоритм обратного распространения ошибки.

Пусть определена трехслойная нейронная сеть с п входами, m выходами и l скрытыми между ними элементами, тогда необходимо рассмотреть и построить два слоя весов: от входов к скрытым элементам и к выходу, т. е. (W1, W2).

Назначение алгоритма обратного распространения ошибки – настройка всех слоев многослойной структуры. Рассмотрим работу алгоритма на примере сети с одним скрытым слоем и одним выходом (рис. 5). Преобразования входных сигналов, задаваемые нейронной сетью, определяются следующими формулами:

F(<W,X>)=1/(1+exp(-WT X));

O1=1/(1+exp(-W1TX));

O2=1/(1+exp(-W2TO1)).

Общая функция ошибки зависит от весов всех слоев, в нашем случае от вектора W2 и от матрицы W1:

E(W1,W2)=1/(Y-1/(1+exp(-W2T O1)))2,

где Y – выход, который задан в обучающей выборке.

Рисунок 1 – Многослойный персептрон

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

d E (W 2, W 1);

dW2

d E (W 2, W 1).

dW1

 

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

W2=W2+h*(Y-O2)*O2*(1-O2)*O1;

d=(Y-O2)*O2*(1-O2);

W1=W1+h*d*W1*(1-O1)*O1*X.

Таким образом, метод обратного распространения ошибки позволяет из-менять веса промежуточных слоев, хотя желаемые значения на промежуточных слоях не заданы.

Описание основных функций

Функция newff создает нейронную сеть прямого распространения сигнала, обучаемую с помощью алгоритма обратного распространения ошибки:

net = newff(PR, [S1 S2 SNl], {TF1 TF2 TFNl), BTF, BLF, PF).

Рассмотрим параметры функции newff: PR – матрица интервалов значений для R входных элементов, задаваемых минимальным и максимальным значениями; Si – размер i-го слоя, для N слоев; TFi – функция активации i-го слоя, по умолчанию используется функция tansig – гиперболический тангенс; BTF – функция обучения сети методом обратного распространения ошибки, по умолчанию используется функция traingdx; BLF – функция изменения весов при обучении, по умолчанию используется learngdm; PF – функция измерения ошибки, по умолчанию тsе. Функция newff возвращает многослойную нейронную сеть прямого и обратного распространения сигнала и ошибки соответственно. Функции активации могут быть выбраны из следующего перечня: гиперболический тангенс tansig, логистическая сигмоида logsig или линейная функция purelin.

Ход работы

ПРИМЕР 1 Создание и обучение нейронной сети с помощью алгоритма обратного распространения ошибки

Зададим с помощью графика исходную функцию:

% входы НС

P = [0 1 2 3 4 5 6 7 8];

% желаемые реакции НС

T = [0 0.44 0.88 0.11 -0.66 -0.95 -0.45 0.18 0.92];

% изображение аппроксимируемой функции

plot(P, T, 'o');

Используем функцию newff, чтобы создать двухслойную сеть прямого распространения. Пусть сеть имеет входы с интервалом значений от 0 до 8, первый слой с 10 нелинейными сигмоидальными, второй – с одним линейным нейронами. Используем для обучения алгоритм обратного распространения ошибки (backpropagation) Левенберга – Марквардта (рисунки 2-4).

% создание двухслойной НС прямого распространения с интервалом

% значений входов от 0 до 8, причем первый слой содержит

% 10 нелинейных сигмоид, а второй — один линейный нейрон.

% Для обучения используется алгоритм обратного распространения

% ошибки (backpropagation).

net = newff([0 8], [10 1], {'tansig' 'purelin'},'trainlm');

% имитация работы необученной НС

yl = sim (net, P);

% изображение результатов работы необученной НС

plot(P, T, 'o', P, yl, 'x');

% Обучим сеть на 100 эпохах с целевой ошибкой 0.01:

% установка количества проходов

net.trainParam.epochs = 50;

% установка целевого значения ошибки

net.trainParam.goal = 0.01;

% обучение НС (рисунки 2-4)

net = train(net, P, T);

% имитация работы обученной НС

y2 = sim(net, P);

% изображение результатов работы НС (рисунок 5)

plot(P, T, 'o', P, yl, 'x', P, y2, '+');

Рисунок 2 – График обучения двухслойного персептрона

Рисунок 3 – График обучения двухслойного персептрона

Рисунок 4 – График обучения двухслойного персептрона

 

Для исследования работы алгоритма обратного распространения ошибки воспользуемся примером, встроенным в Matlab toolbox, набрав команду demo.

В появившемся диалоговом окне необходимо последовательно выбирать пункты меню: Toolboxes->Neural Network->Other Demos->Other Neural Network Design textbook demos->Table of Contents->10-13->Backpropagation Calculation.

Рисунок 5 Результат аппроксимации векторов двухслойным персептроном

Рисунок 6 – Окно тренера двухслойным персептроном

 

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

Р – входной сигнал;

W1(i) – вектор весов первого слоя, W1(1) – вес связи, передающий входной сигнал на первый нейрон, a W1(2) – на второй;

W2(i) – вектор весов второго слоя, W2(1) – вес связи, передающий входной сигнал с первого нейрона во второй слой, a W2(2) – со второго;

B1(i) – вектор пороговых значений (bias) нейронов первого слоя, i = 1, 2;

В2 – пороговое значение (bias) нейрона второго слоя;

N1(i) – вектор выходов первого слоя, i = 1, 2;

N2 – выход второго слоя;

A1(i) – вектор выходных сигналов первого слоя после выполнения функции активации (сигмоиды), i = 1, 2;

А2 – выход второго слоя после выполнения функции активации (линейной);

lr – коэффициент обучаемости.

Пусть входной сигнал Р = 1,0, а желаемый выход.

Результаты выполнения этапов алгоритма представлены в табл. 1.

Этап Прямое распространение входного сигнала Обратное распространение ошибки Изменение весов
A1(1),A1(2) Logsing(W1P+B1)=[0,321, 0,368] Не выполняется Не выполняется
A2 Purelin(W1P+B1)=0,446 То же То же
e t-A2=1,261 d log sim(N1) dN1*W2*N2 = [0,049, 0,100] *
N1(1),N1(2) Не выполняется * *
N2 То же * *
W1(1) W1(2) * Не выполняется W1=W1-lr*N1*P=[-0,475, -0,140]
B1(1), B1(2) * То же B1=B1-lr*N1=[-0,475, -0,140]
B2 * * B2=B2–lr*N2=0,732
W2(2) * * W2=W2–lr*N2*N1=[0,171, 0,077]

 

Вывод: В данной практической работе были изучены возможности многослойного персептрона как аппроксиматора и классификатора.

 

Контрольные вопросы.

1. Каким алгоритмом обучают многослойные НС?

 

2. Из каких основных этапов состоит алгоритм обратного распространения ошибки?

 

3. Почему алгоритм обратного распространения ошибки относится к классу алгоритмов градиентного спуска?

 

4. Как влияет функция принадлежности на правило изменения весов в обратном алгоритме распространения ошибки?

 

5. Какая функция в среде MATLAB создает НС прямого распространения?

 

6. Какие функции активации могут быть назначены для нейронов НС прямого распространения?


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.022 с.