- •Оглавление
- •1. Асоціативне неконтрольоване навчання
- •3. Зміст звіту по практичній роботі
- •Варіанти завдань
- •Аудиторна робота
- •Результат роботи:
- •2. Конкурентні нейронні мережі («Шар і мапа Кохонена»)
- •3. Зміст звіту по практичній роботі
- •Варіанти завдань: кластеризація даних
- •Аудиторна робота
- •1 % Self Organizing Feature Maps sofm (Kohonen networks)
- •3. Конкурентні нейронні мережі («Бінарний класифікатор сигналів екг на основі lvq»)
- •3. Зміст звіту по практичній роботі
- •Варіанти завдань
- •Аудиторна робота
- •1. %Learning Vector Quantization
- •Література
- •4. Нейронні мережі Гросберга
- •Аудиторна робота
- •1. Leaky integrator
- •2. Shunting network demonstration
- •3. Перший та другий шари мережі Grossberg
- •4. Налаштування ваги
- •Art-1 мережі розпізнавання зображень ()
- •3. Зміст звіту по практичній роботі
- •Варіанти завдань: класифікація зображень
- •Аудиторна робота
- •Листинг программы (matlab)
- •Результаты работы программы
- •Мережa Хопфiлда як асоціативна пам'ять ()
- •Варіанти завдань
- •Аудиторна робота
- •7.Рбф-мережа (робота № 5)
- •Варіанти завдань
- •Подбор параметров радиальной функции для каждого радиального нейрона (центр delta и параметр ширины b)
- •Подбор параметров радиальной функции для каждого радиального нейрона (центр с и параметр ширины b)
- •Ортогонализация по методу наименьших квадратов:
- •Работа первого и второго слоев:
- •Адаптация нелинейных параметров радиальных функций всех нейронов первого слоя сети:
- •8.Мережа з використанням га
3. Зміст звіту по практичній роботі
1. Назва і мета роботи.
2. Постановка задачі (завдання).
3. Приклад розв’язання завдання.
Контрольні запитання
Задачі для самостійного розв’язання з теми 5
Варіанти завдань: класифікація зображень
№ варіанту |
Розпізнати зображення символів або фігур при наявності виправлень (шуму) |
1 |
Зображення біологічних об’єктів у вигляді клітин |
2 |
Зображення біологічних об’єктів – результат КТ |
3 |
Зображення біологічних об’єктів – результат МРТ |
4 |
Зображення біологічних об’єктів системи травлення |
5 |
Зображення біологічних об’єктів серцево-судинної системи |
6 |
Зображення біологічних об’єктів кровоносної системи |
7 |
Зображення біологічних об’єктів видільної системи |
8 |
Зображення біологічних об’єктів опорно-рухової системи |
Аудиторна робота
1. %ART1 Neural Net
clc; clear;
b=[0.57 0.0 0.3;0.0 0.0 0.3;0.0 0.57 0.3;0.0 0.47 0.3];
t=[1 1 0 0;1 0 0 1;1 1 1 1];
vp=0.4;
L=2;
x=[1 0 1 1];
s=x;
ns=sum(s);
y=x*b;
con=1;
while con
for i=1:3
if y(i)==max(y)
J=i;
end
end
x=s.*t(J,:);
nx=sum(x);
if nx/ns >= vp
b(:,J)=L*x(:)/(L-1+nx);
t(J,:)=x(1,:);
con=0;
else
y(J)=-1;
con=1;
end
if y+1==0
con=0;
end
end
disp('Top Down Weights');
disp(t);
disp('Bottom up Weights');
disp(b);
Output
Top-down Weights
1 1 0 0
1 0 0 1
1 1 1 1
Bottom-up Weights
0.5700 0.6667 0.3000
0 0 0.3000
0 0 0.3000
0 0.6667 0.3000
%ART1 Neural Net for pattern classification
clc; close all; clear all;
q=3;r=3;
W12=zeros(q,r)+0.5;
W21=ones(q,r);
P(:,1)=[0.000 1.000 0.000]; %ORANGE
P(:,2)=[1.000 0.000 0.000]; %APPlE1
P(:,3)=[1.000 1.000 0.000]; %APPlE2
y1= P(:,1);
y2=W12*y1;
if max(y2)==y2(1) & max(y2)==y2(2)
y2=[1; 0; 0];
else
if max(y2)==y2(2) & max(y2)==y2(3)
y2=[0; 1; 0];
end;
wi21=W21*y2
rab1=size(P(1,:)); b=rab1(2);1
alfa=0.5;
y1=[0;0];
s1=abs(sum(W(1,:)-P(1,:)));
s2=abs(sum(W(2,:)-P(2,:)));
while (s1 > 0.0005 && s2 > 0.0005)
y1(1)= W(1,:)*P(1,:)'+b;
y1(2)= W(2,:)*P(2,:)'+b;
W(1,:)=(W(1,:)'+alfa*y1(1)*(P(1,:)'-W(1,:)'))';
W(2,:)=(W(2,:)'+alfa*y1(2)*(P(2,:)'-W(2,:)'))';
s1=abs(sum(W(1,:)-P(1,:)));
s2=abs(sum(W(2,:)-P(2,:)));
end;
W1=W; % W2=[1 -0.5; -0.5 1]
for i=1:q
for j=1:q
if i==j
W2(i,j) =1;
else
W2(i,j)=-0.5
end; end;end
y1=[0;0]; Pt=[-1.000; -1.000; -1.000];
y1=purelin(W1*Pt+b);
y2=[0;0]
while (y2~=y1)
y2=poslin(W2*y1); y1=y2;
end;
for i=1:q
if y2(i)>0
s=sprintf('This is class #%d', i); disp (s);break;
else
s=sprintf('This is class #%d', i); disp (s);break;
end; end;
y2
clc; clear;
vp=0.5;
m=15;
L=40;
n=63;
epn=1;
b=zeros(n,m)+1/(1+n);
t=zeros(m,n)+1;
data=open('data.mat');
s=data.x;
figure(1);
k=1;
for i=1:3
for j=1:7
charplot(s(k,:),10+(j-1)*15,50-(i-1)*15,9,7);
k=k+1;
end
end
axis([0 110 0 60]);
title('Input Pattern');
con=1;
epoch=0;
while con
for I=1:21
x=s(I,:);
y=zeros(1,m);
ns=sum(s(I,:));
for j=1:m
if y(j)~=-1
for i=1:63
y(j)=b(i,j)*x(i);
end
end
end
con1=1;
while con1
for j=1:m
if y(j)==max(y)
J=j;
break;
end
end
if y(J)==-1
con1=0;
else
for i=1:n
x(i)=s(I,i)*t(J,i);
end
nx=sum(x);
if nx/ns <vp
y(J)=-1;
con1=1;
else
con1=0;
end
end
end
cl(I)=J;
for i=1:n
b(i,J)=L*x(i)/(L-1+nx);
t(J,i)=x(i);
end
end
epoch=epoch+1;
if epoch==epn
con=0;
end
end
for i=1:n
for j=1:m
if b(i,j)>0
pb(i,j)=1;
else
pb(i,j)=-1;
end
end
end
pb=pb';
figure(2);
k=1;
for i=1:3
for j=1:5
charplot(pb(k,:),10+(j-1)*15,50-(i-1)*15,9,7);
k=k+1;
end
end
axis([0 110 0 60]);
title('Final weight matrix after 1 epoch');
subprogram used:
function charplot(x,xs,ys,row,col)
k=1;
for i=1:row
for j=1:col
xl(i,j)=x(k);
k=k+1;
end
end
for i=1:row
for j=1:col
if xl(i,j)==-1
plot(j+xs-1,ys-i+1,'r');
hold on
else
plot(j+xs-1,ys-i+1,'k*');
hold on
end
end
end
%Parameter are assumed
a=10;b=10;
c=0.1;d=0.9;e=0;
alpha=0.6;row=0.9;theta=0.7;
n=2;
m=3;
tw=zeros(m,n);
bw=(zeros(n,m)+1)*1/((1-d)*sqrt(n));
s=[0.59 0.41];
%Update F1 unit activations
u=zeros(1,n);
x=s/(e+norm(s));
w=s;
q=0;p=0;
v=actfun(x,theta);
%Update F1 unit activations again
u=v/(e+norm(v));
w=s+a*u;
p=u;
x=w/(e+norm(w));
q=p/(e+norm(p));
v=actfun(x,theta)+b*actfun(q,theta);
%Compute signals to F2 Units
y=p*bw;
con=1;
while con
for j=1:n
if y(j)==max(y)
J=j;
end
end
u=v/(e+norm(v));
p=u+d*tw(J,:);
r=(u+c*p)/(e+norm(u)+c*norm(p));
if norm(r)>=row-e
w=s+a*u;
x=w/(e+norm(w));
q=p/(e+norm(p));
v=actfun(x,theta)+b*actfun(q,theta);
con=0;
else
y(J)=-1;
if y+1~=0
con=1;
end
end
end
con=1;
no=0;
while con
%Update Weights for Winning Unit
tw(J,:)=alpha*d*u(1,:)+(1+alpha*d*(d-1))*tw(J,:);
bw(:,J)=alpha*d*u(1,:)'+(1+alpha*d*(d-1))*bw(:,J);
u=v/(e+norm(v));
w=s+a*u;
p=u+d*tw(J,:);
x=w/(e+norm(w));
q=p/(e+norm(p));
v=actfun(x,theta)+b*actfun(q,theta);
no=no+1;
if no==10
con=0;
end
end
disp('Number of inputs');
disp(n);
disp('Number Cluster Formed');
disp(m);
disp('Top Down Weight');
disp(tw);
disp('Bottom Up Weight');
disp(bw);
Output
Number of inputs
2
Number Cluster Formed
3
Top Down Weight
0 0
4.2600 0
0 0
Bottom Up Weight
7.0711 8.3188 7.0711
7.0711 4.0588 7.0711
2. При построении классификаторов может возникать проблема стабильности, которая заключается в необходимости постоянного разрешения проблемы: является ли текущий образ искажением "старого", т.е. уже предъявлявшегося ранее, или это "новый" образ, существенно отличающийся от "старых". Восприятие системы должно бытьгнучким (способно воспринимать новую информацию, и при этом - стабильно, т.е. не разрушать память о старых образах). Решение этой проблемы было предложено С.Гроссбергом в теории адаптивного резонанса (ART). Согласно ей общая схема интеллектуальной системы состоит из двух типов памяти: кратковременной (STM) и долговременной (LTM), которые связаны между собой. Текущий входной образ помещается в кратковременную память и сравнивается с хранящимися в долговременной памяти. Если содержимое STM похоже на образ из LTM то возникает состояние резонанса - т.е. система "узнаёт" входной образ. В противном случае текущий входной образ считается "новым". Таким образом реализуется детектор новизны образов.
Сеть ART-1 обучается без учителя, она реализует алгоритм кластеризации, очень похожий на алгоритм "последовательного лидера" (sequential leader clustering algorithm). В соответствии с этим алгоритмом первый входной сигнал считается образцом первого кластера. Следующий входной сигнал сравнивается с образцом первого кластера. Говорят, что входной сигнал "следует за лидером" и принадлежит первому кластеру, если расстояние до образца первого кластера меньше порога. В противном случае второй входной сигнал - образец второго кластера. Этот процесс повторяется для всех следующих входных сигналов. Таким образом, число кластеров растет с течением времени и зависит как от значения порога, так и от метрики расстояния, использующейся для сравнения входных сигналов и образцов классов.
Рис. 5.1.Архитектура сети адаптивных резонансов
Первый слой. Каждый нейронiпервого слоя имеет три входа.
Первый вход это соответствующая компонента xiвходного образа.
Второй вход - сигнал от блока управления G, он выдаётся при активном входеXи неактивном втором слое, это состояние соответствует начальному состоянию сети.
(1) |
Третий вход это взвешенный выход нейронов второго слоя , где - выходk-го нейрона второго слоя, - весовой коэффициент.
Второй слой реализует алгоритм "победитель берёт всё" (WTA), поэтому выход только одного нейрона второго слоя будет активен.
Выход нейрона первого слоя будет активен только если активны два или три его входа (т.н. правило "два из трёх").
(2) |
Второй слой. Здесь реализуется немного усложнённый алгоритм "победитель берёт всё" (WTA). "Победителем" считается нейрон второго слоя с максимальным состоянием .
(3) |
(4) |
где - выход -го нейрона первого слоя, - весовой коэффициент.
Выходная активность нейрона-победителя устанавливается равной единице, остальные нейроны остаются неактивны.
(5) |
В начале функционирования все веса B и T нейронов, а также параметр сходства получают начальные значения. Согласно теории АРТ, эти значения должны удовлетворять условию
где m - число компонент входного вектора X, значение L>1 (например L=2). Такой выбор весов будет приводить к устойчивому обучению. Уровень сходства выбирается на основе требований решаемой задачи. При высоких значениях этого параметра будет сформировано большое число категорий, к каждой из которых будут относиться только очень похожие вектора. При низком уровнесеть сформирует небольшое число категорий с высокой степенью обобщения.
Процесс обучения происходит без учителя, на основе самоорганизации. Обучение производится для весов нейрона-победителя в случае как успешной, так и неуспеншной классификации. При этом веса вектора B стремятся к нормализованной величине компонент вектора C:
При этом роль нормализации компонент крайне важна. Вектора с большим число единиц приводят к небольшим значениям весов b, и наоборот. Таким образом, произведение
оказывается масштабированным.
Входные паттерны: от 0 до 9. Изображения для распознавания: 22, 33, 44, 55, 88.