Notebook "нейронные сети" Глава 2

Вид материалаДокументы
Синаптические функции Функции взвешивания и расстояний С298. DOTPROD
C299. normprod
C300. dist
C302. negdist
C303. mandist
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   ...   33

Синаптические функции


Функции взвешивания и расстояний

С298. DOTPROD


Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W и вектор входа P:

W = rand(4,3), P = rand(3,1); P'

Z = dotprod(W,P); Z'

W =

0.5786 0.8690 0.1990

0.0143 0.3324 0.3554

0.6843 0.5951 0.4652

0.8174 0.8755 0.3119

ans =

0.0856 0.3270 0.1833

ans =

0.3702 0.1751 0.3384 0.4134

Определим имя М-функции, которая вычисляет производную взвешенной функции в виде скалярного произведения

df = dotprod('deriv')

df =

ddotprod

Вычислим производные скалярного произведения по каждому аргументу

dZ_dP = ddotprod('p',W,P,Z)

dZ_dW = ddotprod('w',W,P,Z)


dZ_dP =

0.5786 0.8690 0.1990

0.0143 0.3324 0.3554

0.6843 0.5951 0.4652

0.8174 0.8755 0.3119

dZ_dW =

0.0856

0.3270

0.1833

C299. NORMPROD


Определим случайную весовую матрицу W и вектор входа P и рассчитаем соответствующий взвешенный вход Z:

W = rand(4,3), P = rand(3,1); P'

Z = normprod(W,P); Z'


W =

0.7504 0.3715 0.3784

0.7498 0.8191 0.5556

0.2033 0.3740 0.2942

0.7711 0.4528 0.4704

ans =

0.6137 0.9855 0.4298

ans =

0.4876 0.7423 0.3055 0.5528

C300. DIST


Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:

W = rand(4,3); P = rand(3,1);

Z = dist(W,P)

Z =

0.7709

0.7344

0.9168

0.4496

Рассмотрим сеть с топологией, для которой задана случайная матрица координат для 10 нейронов в трехмерном пространстве:

pos = rand(3,10);

figure(1), clf, plotsom(pos)

Рассчитаем матрицу евклидовых расстояний между ними:

D = dist(pos)

D =

Columns 1 through 4

0 1.1593 0.4322 0.6111

1.1593 0 0.7624 0.9547

0.4322 0.7624 0 0.5944

0.6111 0.9547 0.5944 0

0.5083 1.0085 0.3617 0.7094

0.8022 0.4755 0.4894 0.4819

0.8231 0.9197 0.6729 0.3889

0.5363 0.8468 0.2398 0.8280

0.6459 0.6005 0.2508 0.5793

0.6291 0.8130 0.4113 0.4157

Columns 5 through 8

0.5083 0.8022 0.8231 0.5363

1.0085 0.4755 0.9197 0.8468

0.3617 0.4894 0.6729 0.2398

0.7094 0.4819 0.3889 0.8280

0 0.7149 0.6493 0.3683

0.7149 0 0.4978 0.6846

0.6493 0.4978 0 0.8611

0.3683 0.6846 0.8611 0

0.4189 0.3303 0.5338 0.3930

0.3993 0.4132 0.2775 0.5846

Columns 9 through 10

0.6459 0.6291

0.6005 0.8130

0.2508 0.4113

0.5793 0.4157

0.4189 0.3993

0.3303 0.4132

0.5338 0.2775

0.3930 0.5846

0 0.2916

0.2916 0

C302. NEGDIST


Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:

W = rand(4,3); P = rand(3,1);

Z = negdist(W,P)

Z =

-0.2495

-0.6759

-0.6959

-0.3220

C303. MANDIST


Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:

W = rand(4,3); P = rand(3,1);

Z = mandist(W,P)

Z =

1.1527

0.8322

0.5810

0.8248

Рассмотрим сеть с топологией, для которой задана случайная матрица координат для 10 нейронов в трехмерном пространстве:

pos = rand(3,10);

figure(1), clf, plotsom(pos)

Рассчитаем матрицу евклидовых расстояний между ними:

D = mandist(pos)

D =

Columns 1 through 4

0 1.4762 1.2734 1.7250

1.4762 0 1.0259 1.1297

1.2734 1.0259 0 0.4516

1.7250 1.1297 0.4516 0

1.0001 0.5871 0.9674 1.3264

1.5999 0.5968 0.7643 0.9726

1.5179 0.6554 0.9023 1.1435

1.9948 0.7160 1.1132 1.1711

1.2926 1.5432 0.5173 0.5361

1.0572 0.4190 0.7406 1.1921

Columns 5 through 8

1.0001 1.5999 1.5179 1.9948

0.5871 0.5968 0.6554 0.7160

0.9674 0.7643 0.9023 1.1132

1.3264 0.9726 1.1435 1.1711

0 0.8495 0.9874 1.1058

0.8495 0 0.2168 0.3950

0.9874 0.2168 0 0.5011

1.1058 0.3950 0.5011 0

1.4847 1.0976 1.0155 1.4925

0.2881 0.5613 0.6993 0.9376

Columns 9 through 10

1.2926 1.0572

1.5432 0.4190

0.5173 0.7406

0.5361 1.1921

1.4847 0.2881

1.0976 0.5613

1.0155 0.6993

1.4925 0.9376

0 1.2304

1.2304 0