- •Методические указания по лабораторным работам
- •Каскадная сеть прямой передачи cf в рабочем пространстве matlab.
- •Линейный слой lind в рабочем пространстве matlab.
- •Динамическая нейронная сеть
- •Задание.
- •Линейные сети
- •Задание.
- •Персептроны в рабочем пространстве matlab
- •Сети прямой передачи в рабочем пространстве matlab
- •Лабораторная работа 7 Сети Хопфилда
- •Лабораторная работа 8 Радиальные нейронные сети
- •Лабораторная работа 9 Самоорганизующиеся карты Кохонена
- •Список используемой литературы:
Персептроны в рабочем пространстве matlab
Для создания персептрона используется функция newp.
Синтаксис:
net = newp(PR,s,tf,lf)
Входные аргументы.
PR – массив размера Rx2 минимальных и максимальных значений для R векторов входа;
s – число нейронов;
tf – функция активации – hardlim или hardlims, по умолчанию hardlim;
lf – обучающая функция – learnp или learnpn, по умолчанию learnp.
Выходные аргументы.
net – объект класса network object.
Пример.
net = newp([0 1; 0 1], 1);
Создается персептрон с одним нейроном, входной вектор которого имеет 2 элемента, значения которых не выходят за пределы диапазона (0, 1).
Для просмотра и установки весов и смещений используются, соответственно, функции net.IW{i} и net.b{i}, где i – номер нейрона, для которого устанавливаются веса или смещение.
Адаптация персептрона осуществляется с помощью функции adapt.
Синтаксис:
net = adapt(net, P,T)
где net – адаптируемая нейронная сеть,
P – последовательность векторов входа,
T – последовательность целей.
Число проходов адаптации устанавливается следующим образом:
net.adaptParam.passes = n;
где n – число проходов адаптации.
Моделирование персептрона осуществляется с помощью функции sim.
Синтаксис:
Y = sim(net,P)
где net – моделируемая нейронная сеть,
P – последовательность векторов входа,
Y – последовательность результатов.
Задание.
1. Создать в рабочем пространстве MATLAB персептрон и просмотреть его структуру с помощью функции gensim(net).
2. Обучить персептрон выполнению одной из логических операций и промоделировать его.
Последовательность векторов входа подготовит в виде:
P = [0 0 0 1; 1 0 11];
Последовательность целей подготовить в виде, например (для операции И):
T = [0 0 0 1];
Лабораторная работа 6
Сети прямой передачи в рабочем пространстве matlab
Для создания многослойных нейронных сетей прямой передачи сигнала используется функция newff.
Синтаксис:
net = newff(PR,[S1 S1…SNI],{TF1 TF2…TFN},btf,blf,pf)
Входные аргументы.
PR – массив размера Rx2 минимальных и максимальных значений для R векторов входа;
Si – количество нейронов в слое i;
Tfi – функция активации слоя i, по умолчанию tansig;
btf – обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm;
blf – функция настройки, реализующая метод обратного распространения, по умолчанию traingdm;
pf – критерий качества обучения, по умолчанию mse.
Выходные аргументы.
net – объект класса network object.
Пример.
net = newff([0 10],[5 1], {'tansig' 'purelin'});
Создается двухслойная нейронная сеть с прямой передачей сигнала; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].
Обучение сети осуществляется с помощью функции train.
Синтаксис:
net = train(net, P,T)
где net – обучаемая нейронная сеть,
P – последовательность векторов входа,
T – последовательность целей.
Число эпох обучения устанавливается следующим образом:
net.trainParam.epochs = n;
где n – число эпох обучения.
В процессе обучения автоматически составляется график ошибки сети в зависимости от номера эпохи.
Задание.
1. Создать в рабочем пространстве MATLAB двухслойную нейронную сеть с прямой передачей сигнала; число нейронов на втором слое –1; на первом – варьируется; функции активации – tansig, purelin.
2. Задать последовательности входов и целей. Например:
P = [0 1 2 3 4 5 6 7 8 9 10];
T = [0 1 2 3 4 3 2 1 2 3 4];
3. Выполнить моделирование сети.
Y = sim(net,P);
Построить графики сигналов выхода и цели:
plot(P, T, P, Y, 'o')
4. Обучить сеть в течение, например, 50 циклов.
-
Промоделировать обученную сеть и построить графики.