- •Лабораторная работа № 1 Основы программирования в системе matlab
- •Язык программирования системы matlab имеет следующие средства для построения команд и написания м-файлов:
- •If Условие
- •2. Сохранить файл под именем «pcr.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •2. Сохранить файл под именем «fun.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •Массивы ячеек
- •2. Сохранить файл под именем «strdialog.M».
- •3. Выполнить в командном окне matlab следующую команду:
- •Модели искусственного нейрона
- •Лабораторная работа № 4 Искусственные нейронные сети
- •Лабораторная работа № 5 Методы и алгоритмы обучения искусственных нейронных сетей
- •Теоретические сведения
- •Xlabel(′′), ylabel(′Выходы a(I)′)
- •Xlabel(′′), ylabel(′Веса входов w(I) ′)
- •Xlabel(′Циклы′), ylabel(′Ошибка′), grid
- •Xlabel(′′), ylabel(′Выходы a(I′′), grid
- •Xlabel(′′), ylabel(′Веса входов w(I)′), grid
- •Xlabel(′Циклы′), ylabel(′Ошибка′), grid
- •Xlabel(′′), ylabel(′Выходы a(I)′), grid
- •Xlabel(′′), ylabel(‘Веса входов w(I)′), grid
- •Xlabel(′Циклы ′), ylabel(′Ошибка′)grid
- •Лабораторная работа № 7 Исследование линейных нейронных сетей
- •Xlabel('Время, c'), ylabel('Процессы'))
- •Лабораторная работа № 8 Исследование радиальных базисных сетей общего вида
- •Лабораторная работа № 9 Исследование радиальных базисных сетей типа grnn
- •Лабораторная работа № 10 Исследование радиальных базисных сетей типа pnn
- •Лабораторная работа № 11 Исследование самоорганизующихся слоев Кохонена
- •Лабораторная работа № 12 Исследование самоорганизующихся карт Кохонена
- •Лабораторная работа № 13 Исследование самоорганизующихся lvq-сетей
- •Лабораторная работа № 14 Исследование сетей Элмана
- •Лабораторная работа № 15 Исследование сетей Хопфилда
- •Лабораторная работа № 16
Лабораторная работа № 10 Исследование радиальных базисных сетей типа pnn
Цель работы: изучение архитектурных особенностей радиальных базисных нейронных сетей типа PNN и специальных функций для их создания, автоматической настройки весов и смещений и конкурирующей активации; ознакомление с демонстрационным примером и его скриптом; приобретение навыков построения таких сетей для решения задач классификации на основе подсчёта вероятности принадлежности векторов к рассматриваемым классам и для решения других вероятностных задач.
Теоретические сведения
Радиальная базисная сеть типа PNN (Probabilistic Neural Networks), или вероятностная нейронная сеть, имеет архитектуру, аналогичную архитектуре радиальной базисной сети общего вида, и отличается от неё структурой второго слоя, в котором используются функция взвешивания dotprod (скалярное произведение сигналов и весов), функция накопления netsum и передаточная функция compet – конкурирующая функция, преобразующая вектор входа слоя нейронов таким образом, чтобы нейрон с самым большим входом имел выход, равной единице, а все другие нейроны имели выходы, равные нулю. Смещения используются только в первом слое.
Создание вероятностей сети осуществляется функцией
net=newpnn(P,T,spread),
где Р – массив размера R*Q из Q входных векторов с R элементами;
T – массив размера S*Q из Q векторов цели и S классов;
SPREAD – параметр влияния, значение по умолчанию 1.0.
Для вероятностей сети необходимо задать обучающее множество из Q пар векторов входа и целей. Каждый вектор цели имеет K элементов, указывающих класс принадлежности и, таким образом, каждый вектор входа ставится в соответствие одному из К классов. В результате образуется матрица связанности T размера K*Q, состоящая из нулей и единиц, строки которой соответствуют классам принадлежности, а столбцы – векторам входа. Таким образом, если элемент Т(i,j) матрицы связанности равен единице, то это означает, что j-й входной вектор принадлежит к классу i.
Весовая матрица входного слоя IW формируется как и для радиальной базисной сети общего вида с использованием векторов входа из обучающего множества.
Весовая матрица второго слоя соответствует матрице связан- ности Т, которая строится с помощью функции ind2vec.
Практические задания
Задание 1. Создать вероятностную нейронную сеть для обучающей последовательности, состоящей из вектора входа Р=[1 2 3 4 5 6 7] и индекса классов Тс=[1 2 3 2 2 3 1], проанализировать её структурную схему и параметры вычислительной модели, выполнить моделирование сети и оценить правильность классификации, выполнив следующие команды:
Р=[1 2 3 4 5 6 7]; % – значения входа;
Tc=[1 2 3 2 2 3 1]; % – индексы классов (3);
T=ind2uec(Tc); % – матрица связанности (целей);
net=newpnn(P,T); % – создание сети PNN;
gensim(net); % – структура сети;
net; % – параметры сети;
Y=sim(net,P); % – моделирование сети;
Yc=iecc2ind(Y); % – классы входных векторов;
% 1 2 3 2 2 3 1.
Задание 2. Создать вероятностную нейронную сеть для определения принадлежности двухэлементных входных векторов к одному из трёх классов на основании обучающей последовательности 7 входов Р[0 0; 1 1; 0 3; 1 4; 3 1; 4 1; 4 3] и индекса классов Тс=[1 1 2 2 3 3 3], значения в котором определяют класс соответствующего вектора входа, выполнив команды:
Р=[0 0; 1 1; 0 3; 1 4; 3 1; 4 1; 4 3 ]’; % – 7 векторов.
Тс=[1 1 2 2 3 3 3 ]; % – классы.
T= ind2vec(Tc); % – формирование разряженной матрицы
% связанности;
T= full (T); % – преобразование к полной матрице;
net= newpnn; % – создание вероятностной сети;
net.layers {1}.size % – число нейронов 1-го слоя;
net.layers {2}.size % – число нейронов 2-го слоя;
Y= sim (net, P); % – моделирование сети;
Yc= vec2ind(Y); % – формирование индекса классов;
Pt= [1 3; 0 1; 5 2]’; % – векторы для тестирования;
A= sim (net, Pt); % – тестирование сети;
Ac= vec2ind (A); % – формирование индекса классов.
Задание 3. Проанализировать структурные схемы, значения параметров вычислительных моделей и результаты моделирования нейронных сетей, используемых в следующих демонстрационных примерах:
Demorb1 – рациональные базисные сети;
Demorb3 – использование не перекрывающихся функций активации (передаточных функций);
Demorb4 – использование перекрывающихся передаточных функций;
Demogrn1 – аппроксимация функций с помощью сети типа GRNN;
Demogrn1 – классификация векторов с помощью сети типа PNN.
Для анализа использовать скрипты примеров.
