Notebook "нейронные сети" Глава 2
Вид материала | Документы |
С409. srchbac С410. premnmx C411. prestd C412. prepca C413. postmnnmx |
- Программа дисциплины «Теория нечетких множеств и нейронные сети» Для специальности, 567.45kb.
- Самостоятельная работа по прогнозированию экономических процессов на тему: нейронные, 148.65kb.
- Лекция 2 Лекция «Нейронные сети» Начнем с определения: Искусственные нейронные сети, 131.57kb.
- "Нейроновые сети ", 374.46kb.
- Нейронные сети как механизм представления лексико-семантической информации, 376.06kb.
- Программа, 39.37kb.
- Нейронные сети: алгоритм обратного распространения, 336.15kb.
- Предупреждение. Спасение. Помощь, 3059.76kb.
- Нейрокомпьютерная обработка сигналов и изображений, 184.71kb.
- Нейронные сети: основы теории / А. И. Галушкин. М. Горячая линия Телеком, 2010., 585.42kb.
С409. SRCHBAC
Заданы векторы входа p и целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:
p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];
Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchbac.
net = newff([0 10],[2 1],{'tansig','logsig'},'traincgf');
net.trainParam.searchFcn = 'srchbac';
net.trainParam.epochs = 50; net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
net = train(net,p,t); grid on
a = sim(net,p)
TRAINCGF-srchbac, Epoch 0/50, MSE 0.427245/0.0001, Gradient 0.147317/1e-006
TRAINCGF-srchbac, Epoch 9/50, MSE 7.04485e-005/0.0001, Gradient 0.00175321/1e-006
TRAINCGF, Performance goal met.
a =
Columns 1 through 4
0.0049 0.0049 0.0052 0.9813
Columns 5 through 6
0.9993 0.9993
Масштабирование и восстановление данных
С410. PREMNMX
Следующие операторы выполняют нормировку данных так, чтобы значения входа и цели попадали в интервал [-1,1]:
p = [-10 -7.5 -5 -2.5 0 2.5 5 7.5 10];
t = [0 7.07 -10 -7.07 0 7.07 10 7.07 0];
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t)
pn =
Columns 1 through 4
-1.0000 -0.7500 -0.5000 -0.2500
Columns 5 through 8
0 0.2500 0.5000 0.7500
Column 9
1.0000
minp =
-10
maxp =
10
tn =
Columns 1 through 4
0 0.7070 -1.0000 -0.7070
Columns 5 through 8
0 0.7070 1.0000 0.7070
Column 9
0
mint =
-10
maxt =
10
C411. PRESTD
Задана следующая обучающая последовательность векторов входа и целей. Требуется выполнить ее приведение к нормальному закону распределения с параметрами [0 1]
p = [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93];
t = [-0.08 3.4 -0.82 0.69 3.1];
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t)
pn =
Columns 1 through 4
-1.3389 0.8836 -0.7328 0.8971
-0.2439 1.0022 -1.0261 -0.8272
Column 5
0.2910
1.0950
meanp =
0.0740
0.1040
stdp =
0.7424
0.7543
tn =
Columns 1 through 4
-0.7049 1.1285 -1.0947 -0.2992
Column 5
0.9704
meant =
1.2580
stdt =
1.8982
C412. PREPCA
Зададим массив двухэлементных векторов входа и выполним их факторный анализ, удерживая только те компоненты вектора, дисперсия которых превышает 2% общей дисперсии. Сначала с помощью функции prestd приведем входные данные к нормальному закону распределения, а затем применим функцию prepca.
P = [-1.5 -0.58 0.21 -0.96 -0.79; -2.2 -0.87 0.31 -1.4 -1.2];
[pn,meanp,stdp] = prestd(P)
pn =
Columns 1 through 4
-1.2445 0.2309 1.4978 -0.3785
-1.2331 0.2208 1.5108 -0.3586
Column 5
-0.1058
-0.1399
meanp =
-0.7240
-1.0720
stdp =
0.6236
0.9148
[ptrans,transMat] = prepca(pn,0.02)
ptrans =
Columns 1 through 4
1.7519 -0.3194 -2.1274 0.5212
Column 5
0.1738
transMat =
-0.7071 -0.7071
C413. POSTMNNMX
В этом примере сначала с помощью функции premnmx выполняется масштабирование обучающей последовательности к диапазону [-1 1], затем создается и обучается нейронная сеть прямой передачи, выполняется ее моделирование и восстановление выхода с помощью функции postmnmx.
P = [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93];
t = [-0.08 3.40 -0.82 0.69 3.10];
[pn,minp,maxp,tn,mint,maxt] = premnmx(P,t);
net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,pn,tn); grid on
an = sim(net,pn)
TRAINLM, Epoch 0/100, MSE 4.01275/0, Gradient 12.3803/1e-010
TRAINLM, Epoch 5/100, MSE 4.2096e-026/0, Gradient 6.29848e-013/1e-010
TRAINLM, Minimum gradient reached, performance goal was not met.
an =
Columns 1 through 4
-0.6493 1.0000 -1.0000 -0.2844
Column 5
0.8578
a = postmnmx(an,mint,maxt)
a =
Columns 1 through 4
-0.0800 3.4000 -0.8200 0.6900
Column 5
3.1000