Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2015_for_stud_Практика_С.doc
Скачиваний:
16
Добавлен:
17.03.2016
Размер:
1.69 Mб
Скачать

Література

  1. Исаков Р.В., Лукьянова Ю.А. Результаты исследования нейронных сетей в задачах распознавания патологий сердца, Владимирский государственный университет. Ресурс:

http://ilab.xmedtest.net/?q=node/67

  1. BeggRK,KamruzzamanJ&SarkerR(editors) (2006)NeuralNetworksinHealthcare:PotentialandChallenges. IGI Publishing, USA, 336 pages, ISBN: 1-59140-848-2.

  2. PhysioBank - physiologic signal archives for biomedical research http://physionet.org/physiobank/database/

4. Нейронні мережі Гросберга

Мета роботи: ознайомитися з принципами функціонування та навчання нейронної мережі Гроссберга. Об’єкт дослідження: нейронна мережа Гроссберга.

Теми для опрацювання

1. Структура нейронної мережі Гроссберга.

Порядок виконання практичної роботи

1. Вивчити теоретичне введення.

2. Послідовно виконати всі завдання до практичної роботи.

3. Відповісти на контрольні запитання

Задання до практичної роботи

1. Дослідити роботу нейронної мережі Гроссберга.

2. Интегрирование системы ОДУ, используя формулу Рунге-Кутты 4-го и 5-го порядка для 1-го слоя

Зміст звіту по практичній роботі

1. Назва і мета роботи.

2. Постановка задачі (завдання).

3. Приклад розв’язання завдання.

Контрольні запитання

1. Опишіть складові мережі Гроссберга.

2. Опишіть інтегратор і квазіінтегратор.

Аудиторна робота

1. Leaky integrator

function li

p = 1; e = 1;

t = 0:0.1:5;

y0 = p*(1-exp(-t/e));

last = plot(t,y0,'color',[1 0 0],'linewidth',4);

title('Leaky Integrator. Response');

ylabel('Output n');

xlabel('Time');

2. Shunting network demonstration

function sn

clc; close all; clear all;

global pp; global pn;

global bp; global bn;

global e;

pp = 1; pn = 0;

bp = 1; bn = 0;

e = 1;

[T,Y] = ode45('nndshunt',[0 5],0);

last = plot(T,Y,'color',[1 0 0],'linewidth',4);

title('Shunting network.Response');

ylabel('Output n');

xlabel('Time');

Результат роботи

Рис 4.1.Вихід інтегратораРис 4.2.Вихід шунтуючої мережі

3. Перший та другий шари мережі Grossberg

Первый слой сети Гроссберга возвращает значение входов и нормализирует интенсивность входного вектора. Он описывает яркостную контрастность для человеческого глаза. Сеть более чувствительна к взаимокоррелирующим интенсивностям на изображении. Ответом первого слоя будет отображение взаимокоррелирующих интенсивностей входов. Его выход всегда меньше единицы.

Второй слой нормализирует общую активность слоя, улучшение контрастности образца. Он использует отклик. Входы второго слоя являются результатом взаимодействия между входными образцами и выходом первого слоя. Самый большой результат взаимодействия будет генерировать ответ к входному образцу. Второй слой реализует соревнование между нейронами, которые приближаются по значению к выходному вектору. Улучшение контрастности образца помягче, чем соревнование – победитель забирает все. Это «мягкое» соревнование позволяет выиграть соревнование более, чем одному нейрону второго слоя.

В сети Гроссберга в ходе соревнования меньшие значения уменьшаются, а большие – увеличиваются. При этом необязательно все меньшие значения сводить к нулю.

function lab_

clc, clear all; close all;

global p;

global bp; global bn;

global e;

global W2;

global tf;

pp=2; pn=6; % р+, р-

bp=1; bn=0; % b+, b-

e=1;

W2=[0.9, 0.45; 0.45, 0.9];

tf=1; % 'purelin|(10n^2)/(1+n^2)|10n^2|1-exp(-n)'

p = [pp; pn];

% побудова графіка виходу 1-го шару

%Интегрирование системы ОДУ, используя формулу Рунге-Куттa

% 4-го и 5-го порядка для 1-го слоя

[T,Y] = ode45('lay1',[0 5],[0;0]);

Y = Y';

fig1 = figure(1), hold on;

plot(T,Y(1,:),'color', 'red', 'linewidth',2);

plot(T,Y(2,:), 'color', 'green', 'linewidth',2);

title ('Output layer1')

% побудова графіка виходу 2-го шару

[T1,Y1] = ode45('lay2',[0 0.25],[0;0]);

p = [0; 0];

[T2,Y2] = ode45('lay2',[0.25 0.5],Y1(size(Y1,1),:)');

T = [T1' T2'];

Y = [Y1' Y2'];

fig2 = figure(2), hold on;

plot(T,Y(1,:), 'color', 'red', 'linewidth',2);

plot(T,Y(2,:), 'color', 'green', 'linewidth',2);

title ('Output layer2')

function yprime = lay1(t,y) % описати окремо

global p;

global bp;% b+

global bn; %b-

global e;

yprime = [(-y(1) + (bp - y(1))*p(1) - (y(1) + bn)*p(2));(-y(2) + (bp - y(2))*p(2) - (y(2) + bn)*p(1))]/e;

function yprime = lay2(t,y) % описати окремо

global p;

global tf;

global W2;

yprime = zeros(2,1);

bp = 1; bn = 0;

e = 0.1;

i1 = W2(1,:)*p;

i2 = W2(2,:)*p;

% вибір вигляду функції активації

if tf == 1

a = y; % лінійна

elseif tf == 2

a = 10*(y.^2)/(1+y.^2); % сигмоїдна

elseif tf == 3

a = 10*(y.^2); % швидша за лінійну

else

a = 1-exp(-y); % повільніша за лінійну

end

yprime(1)=(-y(1) + (bp - y(1))*(a(1)+i1) - (y(1) + bn)*a(2))/e;

yprime(2)=(-y(2) + (bp - y(2))*(a(2)+i2) - (y(2) + bn)*a(1))/e;

Результат роботи

Рис 1.Результат роботи НМГроссберга: виходипершого тадругого шарів (tf=3)

Числове інтегрування систем ОДУ

[t, X] = ode45(‘<ім’я функції>‘, t0, tf, x0, tol)

Входные параметры:

‘<имя функции>‘ - строковая переменная, являющаяся именем М-файла, в котором вычисляются правые части системы ОДУ;

t0 - начальное значение времени; tfinal - конечное значение времени;

x0 - вектор начальных условий;

tol - задаваемая точность;

Выходные параметры:

t - текущее время;

X - двумерный массив, где каждый столбец соответствует одной переменной.

function [tout, yout] = ode45(ypfun, t0, tfinal, y0, tol, trace)

%ODE45 Solve differential equations, higher order method.

alpha = [1/4 3/8 12/13 1 1/2]';

beta = [ [ 1 0 0 0 0 0]/4

[ 3 9 0 0 0 0]/32

[ 1932 -7200 7296 0 0 0]/2197

[ 8341 -32832 29440 -845 0 0]/4104

[-6080 41040 -28352 9295 -5643 0]/20520 ]';

gamma = [ [902880 0 3953664 3855735 -1371249 277020]/7618050

[ -2090 0 22528 21970 -15048 -27360]/752400 ]';

pow = 1/5;

if nargin < 5, tol = 1.e-6; end

if nargin < 6, trace = 0; end

% Initialization

t = t0;

hmax = (tfinal - t)/16;

h = hmax/8;

y = y0(:);

f = zeros(length(y),6);

chunk = 128;

tout = zeros(chunk,1);

yout = zeros(chunk,length(y));

k = 1;

tout(k) = t;

yout(k,:) = y.';

if trace

clc, t, h, y

end

% The main loop

while (t < tfinal) & (t + h > t)

if t + h > tfinal, h = tfinal - t; end

% Compute the slopes

temp = feval(ypfun,t,y);

f(:,1) = temp(:);

for j = 1:5

temp = feval(ypfun, t+alpha(j)*h, y+h*f*beta(:,j));

f(:,j+1) = temp(:);

end

% Estimate the error and the acceptable error

delta = norm(h*f*gamma(:,2),'inf');

tau = tol*max(norm(y,'inf'),1.0);

% Update the solution only if the error is acceptable

if delta <= tau

t = t + h;

y = y + h*f*gamma(:,1);

k = k+1;

if k > length(tout)

tout = [tout; zeros(chunk,1)];

yout = [yout; zeros(chunk,length(y))];

end

tout(k) = t;

yout(k,:) = y.';

end

if trace

home, t, h, y

end

% Update the step size

if delta ~= 0.0

h = min(hmax, 0.8*h*(tau/delta)^pow);

end

end

if (t < tfinal)

disp('Singularity likely.')

t

end

tout = tout(1:k);

yout = yout(1:k,:);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]