- •Оглавление
- •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.Мережа з використанням га
7.Рбф-мережа (робота № 5)
Мета роботи: ознайомитися з принципами функціонування та навчання РБФ-мережі.Об’єкт дослідження: РБФ-мережа, її використання для розв’язаннязадач класифікації та апроксимації.
Теми для опрацювання
1. РБФ-мережа.
Постановка задачі (згідно з індивідуальним завданням):
1. Побудувати та навчити РБФ-мережу розпізнаватиоб’єкти,подані увиглядіграфічних зображень.
Порядок виконання роботи
1. Вивчити теоретичний матеріал.
2. Послідовно виконати такі завдання до практичної роботи:
А. Спроектувати класифікатор зображень у вигляді РБФ-мережі (реалізувати алгоритм навчання), дослідити стійкість мережі.
Б. Перевірити мережу на здатність розв’язувати задачу класифікації зображень.
Задачі для самостійного розв’язання з теми 7
Варіанти завдань
Цель:.
Задание: привести пример программы решения задачи аппроксимации и классификации функции на базе радиальной базисной нейронной сети. В качестве данных использовать 100 значений функции из предыдущей практической работы, равномерно распределенных в заданном диапазоне. В качестве данных для тестирования взять 10 значений функции в других точках такого же диапазона. Построить график функции аппроксимации
Выполнение работы: радиальные сети строятся с использованием радиальных нейронов, функция активации которых имеет ненулевые значения только в окрестностях своего центра. Поэтому аппроксимация с помощью таких сетей называется локальной аппроксимацией.
Нейронная сеть радиальных базисных функций содержит в наиболее простой форме три слоя: обычный входной слой, выполняющий распределение данных образца для первого слоя весов; слой скрытых нейронов с радиально симметричной активационной функцией, каждый j -й из которых предназначен для хранения отдельного эталонного вектора в виде вектора весов wj(h); выходной слой
Для построения сети РБФ необходимо выполнение следующих условий.
Во-первых, наличие эталонов, представленных в виде весовых векторов нейронов скрытого слоя. Во-вторых, наличие способа измерения расстояния входного вектора от эталона. Обычно это стандартное евклидово расстояние. В-третьих, специальная функция активации нейронов скрытого слоя, задающая выбранный способ измерения расстояния. Обычно используется функция Гаусса, существенно усиливающая малую разницу между входным и эталонным векторами. Выходной сигнал эталонного нейрона скрытого слоя aj- это функция (гауссиан) только от расстояния pj между входным и эталонным векторами.
Процедура обучения радиально-базисных сетей включает три механизма:
· формирование нейронов второго и третьего слоев, задание их функций активации и настройки весов;
· модификация значений порогов нейронов;
· модификация счетчиков представительности нейронов.
Orthogonal least squares for SISO RBF network
function [w1,b1,w2,b2,mf,of,indf] = rb_ols(p,t,c,b,n,genplot)
%Initialization
p = p(:);
c = c(:);
b = b(:);
t = t(:);
q = length(p);
nc = length(c);
o = zeros(nc+1,1);
h = zeros(nc+1,1);
rr = eye(nc+1);
indexT = 1:nc+1;
if n>nc+1
n=nc+1;
end;
bindex = [];
sst = t'*t;
%Compute the regression matrix
temp = p*ones(1,nc) - ones(q,1)*c';
btot = ones(q,1)*b';
uo = exp(-(temp.*btot).^2);
uo = [uo ones(q,1)];
u = uo;
m = u;
%First stage
for i=1:(nc+1),
ssm = m(:,i)'*m(:,i);
h(i) = m(:,i)'*t/ssm;
o(i) = h(i)^2*ssm/sst;
end
[o1,ind1] = max(o);
of = o1;
hf(1) = h(ind1);
mf = m(:,ind1);
ssmf = mf'*mf;
u(:,ind1) = [];
if indexT(ind1)==(nc+1),
bindex = 1;
indf = [];
% temp change to start loop
k0=1;
else
indf = indexT(ind1);
% temp change to start loop
k0=2;
end
indexT(ind1) = [];
m = u;
%Stage k
% temp change to start loop
for k = 2:n,
%for k = k0:n,
o = zeros(nc+2-k,1);
h = zeros(nc+2-k,1);
r = zeros(k,k,k);
for i = 1:(q-k+1),
for j = 1:(k-1),
r(i,j,k) = mf(:,j)'*u(:,i)/ssmf(j);
m(:,i) = m(:,i) - r(i,j,k)*mf(:,j);
end
ssm = m(:,i)'*m(:,i);
h(i) = m(:,i)'*t/ssm;
o(i) = h(i)^2*ssm/sst;
end
[o1,ind1] = max(o);
mf = [mf m(:,ind1)];
ssmf(k) = m(:,ind1)'*m(:,ind1);
of = [of o1];
u(:,ind1) = [];
hf(k) = h(ind1);
for j = 1:(k-1),
rr(j,k)=r(ind1,j,k);
end
if indexT(ind1)==(nc+1),
bindex = k;
else
indf = [indf indexT(ind1)];
end
indexT(ind1) = [];
m = u;
end
%Solve for the original weights
nn = length(hf);
xx = zeros(nn,1);
xx(nn) = hf(nn);
for i=(nn-1):-1:1,
xx(i) = hf(i);
for j=nn:-1:i+1,
xx(i) = xx(i) - rr(i,j)*xx(j);
end
end
%Put the parameters into the weight and bias
w1 = c(indf);
b1 = b(indf);
if isempty(bindex),
b2 = 0;
w2 = xx';
else
w2 = xx([1:(bindex-1) (bindex+1):nn])';
b2 = xx(bindex);
end
% Convert the index array to show the bias selection at the correct iteration. Fill the uu array for
% later cross-checking of the computed weights.
if isempty(bindex),
uu = uo(:,indf);
else
indf = [indf(1:bindex-1) nc+1 indf(bindex:end)];
uu = uo(:,indf);
end
if nargin==6
if genplot==0
return
end
end
% New code to plot results
figure(1)
range(1)=min(p);
range(2)=max(p);
total = range(2)-range(1);
p2 = range(1):(total/1000):range(2);
Q2 = length(p2);
S1=length(w1);
pp2 = repmat(p2,S1,1);
n12 = abs(pp2-w1*ones(1,Q2)).*(b1*ones(1,Q2));
a12 = exp(-n12.^2);
a22 = w2*a12 + b2*ones(1,Q2);
%t_exact = sin(2*pi*freq*p2 + phase)+1;
temp=[(w2'*ones(1,Q2)).*a12; b2*ones(1,Q2)];
subplot(4,1,[1 2 3]), plot(p,t,'ok',p2,temp,':k');
%plot(t);
hold on
plot(p,t,'LineWidth',2)
plot(p,aa,'r')
hold off
subplot(4,1,4), plot(p2,a12,'k');
return
end
Linear Least Squares:
function lls
clc; clear all; close all;
%Linear Least Squares.
S1 = 7; % HIDDEN NEURONS min = 2 max = 9
npts = 12; % Number of Points min = 2 max = 20
freq = 1/2; %1/8; % frequency of the function to be fit min = 0.25 max = 1
ro = 0; % regularization constant min = 0 max = 1
phase = 60; % phase of the function min = 0 max = 360
Задаются границы
range = [-3 3];
Определяется шаг:
d1 = (range(2)-range(1))/(npts-1);
Задается вектор р:
p = range(1):d1:range(2);
Определяется функция t для аппроксимации:
t = sin(2*pi*(freq*p + phase/360))+1;