- •№1 Зертханалық жұмыс Тақырыбы. Биологиялық және жасанды нейрон.
- •1 Кесте – Нейрондарды активациялау функцияларының тiзiмi
- •№ 2 Зертханалық жұмыс
- •2.2 Персептрондар
- •2.3 Зерттелетін функциялар. Нейрондық желісін жасау функциясы.
- •3.2 Нейрожелілік әдістің негізінде есепті шешу кезеңдері.
- •Введём переменную значения ошибки запустим функцию адаптации персептрона в цикле, пока ошибка не
- •Вариант 1 Вариант 2
- •№ 3 Зертханалық жұмыс
- •3.2 Алгоритм обратного распространения ошибки
- •3.6 Характеристики нс
- •3.10.2. Создание сети
- •3.10.3. Обучение сети
- •3.10.5. Моделирование сети (использование сети для решения задачи)
- •4 Лабораторная работа № 4 нс с радиальными базисными функциями
- •4.2 Сеть с радиальными базисными функциями
- •4.3 Изучаемые функции
- •(Сети с радиальными базисными функциями обучаются в процессе создания).
- •4.4 Характеристики нс
- •4.5 Порядок выполнения работы
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •5.2 Изучаемая функция
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Контрольные вопросы
- •6 Лабораторная работа № 6
- •6.2 Вероятностная нейронная сеть
- •6.3 Изучаемые функции Функция создания вероятностной нс
- •Вспомогательные векторно-матричные функции
- •Контрольные вопросы
- •7 Лабораторная работа № 7
- •7.2 Задача кластеризации и поиска зависимостей
- •7.5 Самоорганизующаяся карта признаков
- •7.6 Изучаемые функции . Функции создания нс
- •Вспомогательные функции
- •7.7 Порядок выполнения работы
- •2. Пример создания самоорганизующейся карты.
- •Контрольные вопросы
- •Лабораторная работа № 8 Сеть Хопфилда
- •Цель работы
- •Краткие теоретические сведения
- •Пример решения типовой задачи
- •Отчёт о выполнении работы
7.6 Изучаемые функции . Функции создания нс
net=newc(PR, S, KLR, CLR) – функция создания слоя Кохонена. Функция использует аргументы: PR – Rх2 матрица минимальных и максимальных значений для R входных элементов, S – число нейронов, KLR – коэффициент обучения Кохонена (по умолчанию 0,01), CLR – коэффициент "справедливости" (по умолчанию 0,001).
net=newsom(PR, [D1, D2,…], TFCN, DFCN, OLR, OSTEPS, TLR, TND) – функция создания самоорганизующейся карты с аргументами: PR – Rх2 матрица минимальных и максимальных значений для R входных элементов, Di – размеры i-го слоя, по умолчанию [5 8], TFCN – топологическая функция, по умолчанию 'hextop', DFCN – функция расстояния, по умолчанию 'linkdist',
O
LR
– коэффициент обучения фазы упорядочивания,
по умолчанию 0,9, OSTEPS – число шагов
фазы упорядочивания, по умолчанию 1000,
TLR – коэффициент упорядочивания
фазы настройки, по умолчанию 0,02, TND
– расстояние для фазы настройки (по
умолчанию 1).
Вспомогательные функции
hextop(dim1, dim2,…, dimN) – функция размещения нейронов в узлах гексагональной (шестиугольной) решетки. Возвращает матрицу, содержащую N строк и (dim1 х dim2 х…х dimN) столбцов с координатами нейронов
plotsom(pos) – функция возвращает графическое представление расположения нейронов в самоорганизующихся картах.
Пример: pos = hextop(3,4)
pos =
0 1.0000 2.0000 0.5000 1.5000 2.5000 0 1.0000 2.0000 0.5000 1.5000 2.5000
0 0 0 0.8660 0.8660 0.8660 1.7321 1.7321 1.7321 2.5981 2.5981 2.5981
>> plotsom(pos) % Результат см. на рисунке 20
Рисунок 20 – Результат выполнения функции plotsom
7.7 Порядок выполнения работы
1. Кластеризация данных. Исходные данные приведены в таблице 3.
Таблица 3 – Исходные данные для кластеризации
x |
0.09 |
0.1 |
0.15 |
0.3 |
0.35 |
0.32 |
0.25 |
0.7 |
0.7 |
0.8 |
0.75 |
0.79 |
y |
0.48 |
0.41 |
0.55 |
0.3 |
0.4 |
0.35 |
0.50 |
0.7 |
0.75 |
0.65 |
0.9 |
1 |
% Нанесем данные на график, установим размеры осей:
>> plot(P(1,:),P(2,:),'+r');
>> axis([0 1 0 1.5]);
>> hold on;
% На графике видны три кластера. Создадим слой Кохонена, состоящий из 3-х нейронов:
>> net=newc([0 1;0 1],3,0.1);
% Установим количество эпох обучения:
>> net.trainParam.epochs=10;
% запишем в массив w веса слоя Кохонена
>> w=net.IW{1};
% Нанесем их на график. Сеть еще не обучена, поэтому все веса изображены в виде одной точки посредине исследуемой области
>> h=plot(w(:,1),w(:,2),'ob');
% Запустим обучение сети. Сеть обучается самостоятельно (без учителя). Задание целевых векторов не требуется
>> net=train(net,P);
TRAINR, Epoch 0/10
TRAINR, Epoch 10/10
TRAINR, Maximum epoch reached.
% Запишем веса в массив w:
>> w=net.IW{1};
% Удалим точку, изображавшую веса необученного слоя Кохонена:
>> delete(h);
% Нанесем на график веса обученных нейронов (см. рисунок 21). Теперь веса нейронов слоя Кохонена соответствуют центрам кластеров опытных данных
>> h=plot(w(:,1),w(:,2),'ob');
% Подпишем классы в соответствии с решением сети:
>> W=w';
>> for i=1:3, text(w(i,1)+0.01,w(i,2), sprintf('k %g',vec2ind(sim(net,W(:,i))))),end
%
Проверим способность сети к классификации
на данных, как входящих в обучающую
выборку, так и новых:
>> p=[0.25;0.5];
>> a=sim(net,p)
a =
(3,1) 1
>> plot(p(1),p(2),'k*');
>> p=[0.2;0.5];
a=sim(net,p)
a = (2,1) 1
>> plot(p(1),p(2),'k*');
Рисунок 21 – Выявленные сетью центры кластеров (о)
>> p=[0.4;0.5];
a=sim(net,p)
a =
(3,1) 1
>> plot(p(1),p(2),'k*');
>> p=[0.8;0.75];
a=sim(net,p)
a = (1,1) 1
>> plot(p(1),p(2),'k*');
% По желанию можно преобразовывать разреженную матрицу решения сети в натуральный индекс при помощи функции vec2ind.
