Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2019-11-28 | 281 |
5.00
из
|
Заказать работу |
|
|
Цель работы: Изучить возможности многослойного персептрона как аппроксиматора и классификатора.
Теоретическая часть.
Алгоритм обратного распространения ошибки.
Пусть определена трехслойная нейронная сеть с п входами, 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!