Notebook "нейронные сети" Глава 2
Вид материала | Документы |
C305. boxdist С306. linkdist С307. netsum C309. netprod Функции инициализации С310. INIT |
- Программа дисциплины «Теория нечетких множеств и нейронные сети» Для специальности, 567.45kb.
- Самостоятельная работа по прогнозированию экономических процессов на тему: нейронные, 148.65kb.
- Лекция 2 Лекция «Нейронные сети» Начнем с определения: Искусственные нейронные сети, 131.57kb.
- "Нейроновые сети ", 374.46kb.
- Нейронные сети как механизм представления лексико-семантической информации, 376.06kb.
- Программа, 39.37kb.
- Нейронные сети: алгоритм обратного распространения, 336.15kb.
- Предупреждение. Спасение. Помощь, 3059.76kb.
- Нейрокомпьютерная обработка сигналов и изображений, 184.71kb.
- Нейронные сети: основы теории / А. И. Галушкин. М. Горячая линия Телеком, 2010., 585.42kb.
C305. BOXDIST
Пусть задан массив случайных координат трехмерного пространства, в которых размещены 10 нейронов.
pos = rand(3,10);
figure(1), clf, plotsom(pos)
Требуется вычислить массив максимальных координатных смещений между этими нейронами:
d = boxdist(pos)
d =
Columns 1 through 4
0 0.3489 0.6079 0.6925
0.3489 0 0.7883 0.6322
0.6079 0.7883 0 0.2023
0.6925 0.6322 0.2023 0
0.5053 0.6620 0.6220 0.6318
0.6334 0.3989 0.7898 0.7598
0.4530 0.6334 0.1549 0.3527
0.6165 0.3256 0.6768 0.6865
0.3630 0.2419 0.8707 0.7146
0.5207 0.7011 0.6201 0.6299
Columns 5 through 8
0.5053 0.6334 0.4530 0.6165
0.6620 0.3989 0.6334 0.3256
0.6220 0.7898 0.1549 0.6768
0.6318 0.7598 0.3527 0.6865
0 0.6635 0.6192 0.5456
0.6635 0 0.7472 0.2296
0.6192 0.7472 0 0.6739
0.5456 0.2296 0.6739 0
0.7444 0.6407 0.7158 0.5675
0.2628 0.7026 0.6173 0.5006
Columns 9 through 10
0.3630 0.5207
0.2419 0.7011
0.8707 0.6201
0.7146 0.6299
0.7444 0.2628
0.6407 0.7026
0.7158 0.6173
0.5675 0.5006
0 0.7835
0.7835 0
С306. LINKDIST
Пусть задан массив случайных координат трехмерного пространства, в которых размещены 10 нейронов. Требуется вычислить массив расстояний связи между этими нейронами:
pos = rand(3,10);
figure(1), clf, plotsom(pos)
d = linkdist(pos)
d =
Columns 1 through 7
0 1 1 1 1 1 1
1 0 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 0 1 1 1
1 1 1 1 0 1 2
1 1 1 1 1 0 1
1 1 1 1 2 1 0
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
Columns 8 through 10
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
0 1 2
1 0 1
2 1 0
Функции накопления
С307. NETSUM
Вычислить функцию накопления потенциала для следующих взвешенных входов:
Z1 = [ 1 2 4; 3 4 1]; Z2 = [-1 2 2; -5 -6 1];
N = netsum(Z1,Z2)
N =
0 4 6
-2 -2 2
Вычислить функцию накопления с учетом вектора смещения b. Поскольку массивы Z1 и Z2 составлены из трех векторов, то с помощью функции concur должен быть создан массив из трех копий вектора смещения b для того, чтобы все размерности совпадали:
b = [0; -1]; N = netsum(Z1,Z2,concur(b,size(Z1,2)))
N =
0 4 6
-3 -3 1
Определим две весовых матрицы входа для слоя с тремя нейронами:
Z1 = [0; 1; -1]; Z2 = [1; 0.5; 1.2];
Вычислить вход нейрона N с помощью функции netsum и затем найти производные по каждому из взвешенных входов:
N = netsum(Z1,Z2)
dN_dZ1 = dnetsum(Z1,N)
dN_dZ2 = dnetsum(Z2,N)
N =
1.0000
1.5000
0.2000
dN_dZ1 =
1
1
1
dN_dZ2 =
1
1
1
C309. NETPROD
Вычислить функцию накопления для следующих взвешенных входов:
Z1 = [ 1 2 4; 3 4 1]; Z2 = [-1 2 2; -5 -6 1];
N = netprod(Z1,Z2)
N =
-1 4 8
-15 -24 1
Вычислить функцию накопления с учетом вектора смещения b. Поскольку массивы Z1 и Z2 составлены из трех векторов, то с помощью функции concur должен быть создан массив из трех копий вектора смещения b для того, чтобы все размерности совпадали:
b = [0; -1]; N = netprod(Z1,Z2,concur(b,size(Z1,2)))
N =
0 0 0
15 24 -1
Определим два взвешенных входа для слоя с тремя нейронами:
Z1 = [0; 1; -1]; Z2 = [1; 0.5; 1.2];
Вычислить вход нейрона N с помощью функции netprod и затем найти производные по каждому из взвешенных входов:
N = netprod(Z1,Z2); N'
dN_dZ1 = dnetprod(Z1,N); dN_dZ1'
dN_dZ2 = dnetprod(Z2,N); dN_dZ2'
ans =
0 0.5000 -1.2000
Warning: Divide by zero.
> In C:\MATLAB6P1\toolbox\nnet\nnet\dnetprod.m at line 43
ans =
NaN 0.5000 1.2000
ans =
0 1 -1
Функции инициализации
С310. INIT
Сформировать персептрон с одним нейроном, вход которого имеет 2 элемента со значениями в диапазонах [0 1] и [ –2 2]:
net = newp([0 1; -2 2], 1);
net.initFcn
net.layers{1}.initFcn
net.inputWeights{1}.initFcn
net.biases{1}.initFcn
ans =
initlay
ans =
initwb
ans =
initzero
ans =
initzero
Выведем значения установленных весов и смещений:
net.IW{1,1}, net.b{1}
ans =
0 0
ans =
0
Обучим персептрон на следующих обучающих множествах
P = [0 1 0 1; 0 0 1 1]; T = [0 0 0 1];
net = train(net,P,T); net.IW{1,1}, net.b{1}
TRAINC, Epoch 0/100
TRAINC, Epoch 6/100
TRAINC, Performance goal met.
ans =
1 2
ans =
-3
Для того чтобы возвратиться к начальным значениям весов и смещений, характерных для данной сети, и предназначена функция init :
net = init(net); net.IW{1,1}, net.b{1}
ans =
0 0
ans =
0