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

Вид материалаДокументы
Подобный материал:
1   ...   25   26   27   28   29   30   31   32   33

C439. CONCUR


Функция concur создает три копии вектора смещения для данного слоя нейронной сети:

b = [1; 3; 2; -1]; B = concur(b,3)

B =

1 1 1

3 3 3

2 2 2

-1 -1 -1

Двухслойная нейронная сеть имеет 2 вектора смещения, которые для применения функции concur необходимо объединить в вектор ячеек

b1 = [1; 3; 2; -1]; b2 = [3; 2; -1]; b = {b1; b2}

B = concur(b,3)

b =

[4x1 double]

[3x1 double]

B =

[4x3 double]

[3x3 double]

C440. IND2VEC, VEC2IND


Преобразовать вектор индексов классов в матрицу связности

ind = [1 3 2 3], vec = ind2vec(ind), vec = full(vec)

ind =

1 3 2 3

vec =

(1,1) 1

(3,2) 1

(2,3) 1

(3,4) 1

vec =

1 0 0 0

0 0 1 0

0 1 0 1

Преобразовать матрицу связности в вектор индексов классов

vec = [1 0 0 0; 0 0 1 0; 0 1 0 1];

ind = vec2ind(vec)

ind =

1 3 2 3

C441. MAT2CELL


Преобразовать числовой массив М размера 34 в массив ячеек с разбиением mrow = [2 1], ncol = [1 2 1]:

M = [1 2 3 4; 5 6 7 8; 9 10 11 12];

C = mat2cell(M,[2 1],[1 2 1])

C =

Columns 1 through 2

[2x1 double] [2x2 double]

[ 9] [1x2 double]

[2x1 double]

[ 12]

[C{1,:}; C{2,:}]

ans =

1 2 3 4

5 6 7 8

9 10 11 12

C441. MINMAX


Вычислить минимальные и максимальные значения элементов в строках массива P:

P = [0 1 2; -1 -2 -0.5]; pr = minmax(P)

pr =

0 2.0000

-2.0000 -0.5000

C442. NORMC, NORMR


Нормировать матрицу М по строкам и столбцам

M = [1 2; 3 4];

normr(M), normc(M)

ans =

0.4472 0.8944

0.6000 0.8000

ans =

0.3162 0.4472

0.9487 0.8944

C442. PNORMC


Выполнить псевдонормировку стобцов матрицы

M = [0.1 0.6; 0.3 0.1];

pM = pnormc(M)

pM =

0.1000 0.6000

0.3000 0.1000

0.9487 0.7937

С443. QUANT


Округлить элементы массива Р с точностью до 0.1

P = [1.333 4.756 -3.897]; qP = quant(P,0.1)

qP =

1.3000 4.8000 -3.9000

С443. SUMSQR


Вычислить сумму квадратов всех элементов массива M:

M = [ 1 2 3; 4 5 6]; s = sumsqr(M)

s =

91

Графические утилиты

С443. PLOTV


Отобразить векторы в виде линий

P = [-0.4 0.7 0.2; -0.5 0.1 0.5];

figure(1), clf, plotv(P,'-'); grid on %Рис.11.64

C444. PLOTVEC


Отобразить векторы входа в виде маркеров

P =[ 0.1000 1.0000 0.5000 0.7000

-1.0000 2.0000 0.5000 0.1000

1.0000 0.1000 0.7000 0.5000];

t = minmax(P)'; figure(1), clf, axis(t(:)'), c=[1 2 3 4]';

plotvec(P,c,'o'), grid on %Рис.11.65

C445. PLOTPV


Отобразить векторы входа и целей персептрона в виде маркеров

P = [0 0 1 1; 0 1 0 1; 1 0 0 1]; T = [0 0 0 1];

figure(1), clf, plotpv(P,T),grid on,

title('Векторы входов и целей') %Рис.11.66

С446. PLOTPC


Определим векторы входов и целей и отобразим их в двумерном пространстве входов

P = [0 0 1 1; 0 1 0 1]; T = [0 0 0 1];

figure(1), clf, plotpv(P,T), grid on, hold on

Создадим персептрон с входами P, зададим произвольные значения весам и смещениям и построим разделяющую линию в пространстве входов:

net = newp(minmax(P),1);

net.iw{1,1} = [-1.2 -1]; net.b{1} = 1.3;

h = plotpc(net.iw{1,1},net.b{1});

set(h,'Color',[1/2,1/2,0],'LineWidth',2)

Построиv разделяющую плоскость в трехмерном пространстве

P = [0 0 1 1; 0 1 0 1; 1 0 0 1]; T = [0 0 0 1];

figure(1), clf, plotpv(P,T), grid on, hold on

Следующие функции создают персептрон с входами, соответствующими значениям вектора P, назначают значения его весам и смещениям и строят разделяющую плоскость:

net = newp(minmax(P),1);

net.iw{1,1} = [-1.2 -1 -0.5]; net.b{1} = 1.3;

h = plotpc(net.iw{1,1}, net.b{1});