- •Методические указания по лабораторным работам
- •Каскадная сеть прямой передачи cf в рабочем пространстве matlab.
- •Линейный слой lind в рабочем пространстве matlab.
- •Динамическая нейронная сеть
- •Задание.
- •Линейные сети
- •Задание.
- •Персептроны в рабочем пространстве matlab
- •Сети прямой передачи в рабочем пространстве matlab
- •Лабораторная работа 7 Сети Хопфилда
- •Лабораторная работа 8 Радиальные нейронные сети
- •Лабораторная работа 9 Самоорганизующиеся карты Кохонена
- •Список используемой литературы:
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «Информационные системы»
Методические указания по лабораторным работам
по дисциплине:
"Интеллектуальные информационные системы"
на тему:
"Нейронные сети в MATLAB 6.1"
Тверь, 2011 г.
Лабораторная работа 1
Каскадная сеть прямой передачи cf в рабочем пространстве matlab.
Для создания каскадной сети используется функция newcf.
Синтаксис:
net = newcf(PR,[S1 S2 … SN],{TF1 TF2 … TFN}, btf, blf pf)
Входные аргументы:
PR – массив размера Rx2 минимальных и максимальных значений для R векторов входа;
Si – количество нейронов в слое i;
TFi – функция активации в слоя I, по умолчанию tansig;
btf – обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm;
blf – функция настройки, реализующая метод обратного распространения, по умолчанию learngdm;
pf – критерии качества обучения, по умолчанию mse;
Выходные аргументы:
net – объект класса network object каскадной нейронной сети с прямой передачей и обучением методом обратного распространения.
Пример.
P = [0 1 2 3 4 5 6 7 8 9 10];
T = [0 1 2 3 4 3 2 1 2 3 4];
net = newcf([0 10], [5 1], {‘tansig’ ‘purelin’});
gensim (net);
Создается каскадная нейронная сеть со следующей архитектурой: каскадная двухслойная сеть с прямой передачей сигнала; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].
Результат представлен на следующем рисунке.
Д алее обучим сеть в 50 циклов.
Синтаксис:
net.trainParam.epochs = 50;
net = train (net, P, T);
Характеристика точности обучения будет показана в виде графика; установившаяся среднеквадратичная ошибка составляет приблизительно 0,02, что на порядок выше, чем для сети FF.
Выполним моделирование каскадной двухслойной сети, используя обучающую последовательность входа:
Y = sim (net, P);
plot (P, T, P, Y, ‘O’)
Каскадная сеть прямой передачи использует функции взвешивания dotprod, накопления netsum и заданные пользователем функции активации.
Первый каскад характеризуется матрицей весов входа, другие каскады – матрицами весов выхода предшествующего каскада; все каскады имеют смещения. Выход последнего каскада является выходом сети. Веса и смещения инициализируются с помощью М – функции initnw.
Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae| mse | msersg | sse}.
Задание.
1. Создать в рабочем пространстве MATLAB каскадную сеть с прямой передачей данных и рассмотреть ее структуру.
2. Обеспечить следующее отображение последовательности входа P в последовательности целей T.
P = [0 1 2 3 4 5 6 7 8 9 10];
T = [0 5 0 0 4 1 8 1 3 3 4];
3. Обучить сеть в 70 циклов.
Лабораторная работа 2
Линейный слой lind в рабочем пространстве matlab.
Для создания линейного слоя LIND используется функция newlind.
Синтаксис:
net = newlind(P, T)
Линейный слой LIND использует для расчета весов и смещений процедуру решения систем линейных алгебраических уравнений на основе метода наименьших квадратов, и поэтому в наибольшей степени он приспособлен для решения задач аппроксимации, когда требуется подобрать коэффициенты аппроксимирующей функции. В задачах управления такой линейный слой можно применять для идентификации параметров динамических систем.
Функция net = newlind(P, T) формирует нейронную сеть, используя только обучающие последовательности входа P размера RxQ и цели T размера SxQ. Выходом является объект класса network object с архитектурой линейного слоя.
Пример.
P = [0 : 3];
T = [0.0 2.0 4.1 5.9];
net = newlind(P,T);
gensim (net);
Анализ данных показывает, что требуется найти аппроксимирующую кривую, которая близка к зависимости t = 2*p. Применение линейного слоя LIND в данном случае вполне оправдано.
Значения весов и смещений равны:
net.IW{1}, net.b{1}
ans = 1.9800
ans = 0.3000
Соответствующая аппроксимирующая кривая описывается соотношением
yk = 1.9800rk + 0.3000
Выполним моделирование сформированного линейного слоя:
Y = sim(net, P)
Y = 0.0300 2.0100 3.9900 5.9700
В целом функция newlind вычисляет значения W и смещения В для линейного уровня с входом Р и целью Т, решая линейное уравнение в структуре метода наименьших квадратов:
[W b]*[P;ones] = T.
Задание.
1. Сформировать в рабочем пространстве MATLAB линейный слой LIND, использующего метод наименьших квадратов и рассмотреть его структуру.
2. Задать следующие обучающие последовательности:
P = [1 : (1/3) : 2];
T = [9.0 7.4 8.1 0.5];
3. Выполнить моделирование сформированного линейного слоя.
Y = sim(net,P);
4. Построить графики зависимостей.
Лабораторная работа 3