Notebook "нейронные сети" Глава 2
Вид материала | Документы |
C368. trainoss C370. traimlm С373. trainbr |
- Программа дисциплины «Теория нечетких множеств и нейронные сети» Для специальности, 567.45kb.
- Самостоятельная работа по прогнозированию экономических процессов на тему: нейронные, 148.65kb.
- Лекция 2 Лекция «Нейронные сети» Начнем с определения: Искусственные нейронные сети, 131.57kb.
- "Нейроновые сети ", 374.46kb.
- Нейронные сети как механизм представления лексико-семантической информации, 376.06kb.
- Программа, 39.37kb.
- Нейронные сети: алгоритм обратного распространения, 336.15kb.
- Предупреждение. Спасение. Помощь, 3059.76kb.
- Нейрокомпьютерная обработка сигналов и изображений, 184.71kb.
- Нейронные сети: основы теории / А. И. Галушкин. М. Горячая линия Телеком, 2010., 585.42kb.
C368. TRAINOSS
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию trainoss.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainoss');
Обучение сети:
net.trainParam.epochs = 50; net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
[net,TR] = train(net,P,T); grid on
TRAINOSS-srchbac, Epoch 0/50, MSE 0.468812/0.0001, Gradient 0.199095/1e-006
TRAINOSS-srchbac, Epoch 10/50, MSE 0.0080093/0.0001, Gradient 0.116508/1e-006
TRAINOSS-srchbac, Epoch 20/50, MSE 0.00339965/0.0001, Gradient 0.0136916/1e-006
TRAINOSS-srchbac, Epoch 26/50, MSE 4.15302e-005/0.0001, Gradient 0.000220306/1e-006
TRAINOSS, Performance goal met.
Выполним моделирование сети:
Y = sim(net,P)
Y =
Columns 1 through 4
0.0002 0.0002 0.0031 0.9875
Columns 5 through 6
0.9935 0.9936
C370. TRAIMLM
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию trainlm.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainlm');
Обучение сети:
net.trainParam.epochs = 50; net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
[net,TR] = train(net,P,T); grid on
TRAINLM, Epoch 0/50, MSE 0.463676/0.0001, Gradient 1.60204/1e-010
TRAINLM, Epoch 10/50, MSE 0.000125314/0.0001, Gradient 0.00115041/1e-010
TRAINLM, Epoch 11/50, MSE 1.68681e-005/0.0001, Gradient 0.000171152/1e-010
TRAINLM, Performance goal met.
Данный алгоритм имеет адаптивный параметр mu, изменение которого построено в виде графика:
figure(2), clf, plot(TR.mu, 'LineWidth',2), grid on
title('Параметр адаптации')
xlabel('Число циклов')
Выполним моделирование сети:
Y = sim(net,P)
Y =
Columns 1 through 4
0.0006 0.0006 0.0049 0.9924
Columns 5 through 6
0.9970 0.9970
С373. TRAINBR
Рассмотрим задачу аппроксимации синусоидальной функции, которая зашумлена нормально распределенным шумом:
P = [-1:.05:1]; T = sin(2*pi*P) + 0.1*randn(size(P));
Сформируем для решения этой задачи двухслойную нейронную сеть прямой передачи сигнала. Вход сети принимает значения в диапазоне от –1 до 1. Первый слой имеет 20 нейронов с функцией активации tansig, второй слой имеет один нейрон с функцией активации purelin . В качестве обучающей используем функцию trainbr.
Формирование сети
net = newff([-1 1],[20,1],{'tansig','purelin'},'trainbr');
Обучение сети:
net.trainParam.epochs = 50; net.trainParam.show = 10;
net = train(net,P,T); grid on
TRAINBR, Epoch 0/50, SSE 35.495/0, SSW 21461.6, Grad 6.54e+001/1.00e-010, #Par 6.10e+001/61
TRAINBR, Epoch 10/50, SSE 0.165045/0, SSW 3033.99, Grad 2.17e-001/1.00e-010, #Par 2.94e+001/61
TRAINBR, Epoch 20/50, SSE 0.186866/0, SSW 1579.57, Grad 3.73e-001/1.00e-010, #Par 2.56e+001/61
TRAINBR, Epoch 30/50, SSE 0.202243/0, SSW 988.328, Grad 1.13e-001/1.00e-010, #Par 2.24e+001/61
TRAINBR, Epoch 40/50, SSE 0.215021/0, SSW 677.114, Grad 4.84e-002/1.00e-010, #Par 1.99e+001/61
TRAINBR, Epoch 50/50, SSE 0.226781/0, SSW 389.632, Grad 1.32e-001/1.00e-010, #Par 1.64e+001/61
TRAINBR, Maximum epoch reached.
Выполним моделирование сети и построим графики исследуемых функций
Y = sim(net,P);
figure(2), clf, h1=plot(P,Y,'LineWidth',2);
hold on, set(h1,'Color',[1/2,1/2,0])
plot(P,T,'+r','MarkerSize',6,'LineWidth',2), grid on
legend('выход', 'вход')
Функции оценки качества обучения