Лабораторная работа
ИЗУЧЕНИЕ СВОЙСТВ ЛИНЕЙНОГО НЕЙРОНА И ЛИНЕЙНОЙ НЕЙРОННОЙ СЕТИ
Цель работы: изучить свойства линейного нейрона.
Для работы с нейронными сетями необходимо инсталлировать Matlab и обладать первоначальными знаниями относительно языка системы. Поскольку Matlab представляет собой интерпретатор, то обучение инструментарию нейронных сетей заключается в основном в изучении функций и их параметров. Узнать возможности нейрона как классификатора простых линейно сепарабельных задач можно путем проведения экспериментов с моделью одного линейного нейрона.
Функция newp. Для того чтобы создать нейрон, используют функцию newp, имеющую следующий синтаксис:
net = newp(PR, S, TF, LF),
где PR — матрица минимальных и максимальных R входных элементов, S — количество нейронов (при создании одного нейрона S = 1), TF — функция активации (transfer function), LF — имя функции обучения нейрона.
В случае если параметры функции newp не заданы, их значения определяются посредством ввода значений в диалоговые окна. Построенный нейрон характеризуется функциями весов (weight function), входов сети (net input function) и определенной функцией активации. Функция весов — это умножение весов на входной сигнал, функция входов сети — их сумма. Веса задаются как для входов нейрона, так и для фиксированного входа, задающего порог срабатывания (bias). Вектор весов инициализируется нулями. Для обучения используются функции, рассмотренные ниже.
Функция learnp настраивает веса нейрона. Синтаксис функции обучения довольно сложен:
[dW, LS] = leamp(W, Р, Z, N, A, T, E, gW, gA, D, LP, LS),
[db, LS) = leamp{b, ones(l,Q), Z, N, A, T, E, gW, gA, D, LP, LS),
info = learnp(code)
Функция learnp (W, P, Z, N, A, T, E, gW, gA, D, LP, LS) имеет несколько входов, где вектор W — вектор весов; Р — вектор входов; Z — вектор взвешенных входов; N — вектор сети; А — вектор выхода; Т — вектор желаемых выходов; Е — вектор ошибок; gW— вектор изменения весов; gA — изменения выходов. Функция возвращает значения: dW— изменения матрицы весов; LS — новый уровень обученности.
Функция learnp может быть использована с параметрами по умолчанию:
dW = learnp([ ], p, [],[},[],[ ], е, [],[,[]},[},[ ]).
Использование пустого списка [ ] означает параметр по умолчанию.
Функция learnp вычисляет изменение весов dW для заданного нейрона в соответствии с правилом обучения перцептрона:
т.е.
Функция обучает нормализованные веса:
[dW, LS] = learnpn{W, P, Z, N, A, Т, E, gW, gA, D, LP, LS). Функция learnpn вычисляет изменение весов dWam данного нейрона и его входа Р и ошибки Е в соответствии с нормализованным правилом обучения перцептрона:
,
т.е.
Линейный нейрон имеет одно существенное ограничение. Входные векторы должны быть линейно сепарабельны. Если векторы невозможно отделить прямой или гиперплоскостью, то перцептрон не способен решить задачу классификации.
Функция adapt адаптирует нейрон к условиям задачи:
[net, Y, E, Pf, Af] = adapt{net, P, Т, Рi, Ai).
Параметры функции: net — имя сети, Р — входы сети, Т — желаемый выход, Рi — исходные условия задержки, Ai — исходные условия задержки для слоя. Функция возвращает параметры адаптированной сети net.adaptParam: net — измененная сеть, Y— выход сети, E—ошибки сети, Pf — условия задержки входов, Af — условия задержки слоя. Параметры Рi и Pf необязательные и необходимы только для сетей, имеющих задержки на входах и слое.
Функция train также обучает нейронную сеть и использует следующий синтаксис:
[net, tr] = train(NET, P, T, Рi, Ai)
[net, tr] = train{NET, P, T, Рi, Ai W, TV).
Функция train(net, P, T, Pj, Aj) имеет следующие параметры: net — сеть, Р — входы сети, Т — желаемый выход, Рi — исходные условия задержки входа, Ai — исходные условия задержки слоя.
Функция имитирует нейронную сеть:
[Y, Pf, Af] = sim(net, P, Рi, Ai),
где net — сеть;
Р — входы сети;
Рi, — исходные условия задержки входов сети;
Ai, — исходные условия задержки слоя.
Функция возвращает
Y — выходы сети;
Pf — окончательные условия задержки входов;
Af — окончательные условия задержки слоя.
Функции активации. Ниже представлены назначения этих функций.
Функция Назначение
hardlim (N) Возвращает 1, если N положительное и 0 в противном
случае.
tansig (N) Вычисляет гиперболический тангенс от входа.
purelin Вычисляет выход слоя от сетевого входа.
Функции графического интерфейса и вспомогательные функции. Назначение этих функций представлено ниже.
Функция |
Назначение |
axis([Xmin Хтах Ymin Ymax]) title {'строка') |
Устанавливает диапазоны координатных осей |
rand(M, N) |
Выводит в графическое окно рисунков заголовок графика Возвращает матрицу размерности М на N со случайными значениями |
xlabel( 'строка') ylabel( 'строка') |
Подписывают наименование координатных осей |
cla reset |
Очищает координатную сетку в окне рисунков |
hold on и hold off |
Включают и отключают режим добавления графи- ков на координатную сетку |
text(X, Y, 'строка') |
Выводит строку, начиная с указанных координат в поле рисунков |
pause (n) |
Ожидает пользовательского ответа n секунд |
plot(X, Y, 'цвет и символ') |
Изображает на координатной сетке точки с коор- динатами, заданными векторами X, Y, с помощью указанного символа и цвета1. |
plotpv(P, T) |
Изображает точки Р указанными маркерами Т, где Р — матрица входных векторов размерностью R на Q (R должен быть 3 или меньше), Т— матрица дво- ичных векторов размерностью S на Q (S должен быть 3 или меньше) |
plotes(WV, BV, ES, V) |
Изображает поверхность ошибки на отдельном входе, где WV— вектор строк значений весов W размерности N, BV— вектор строк значений поро- гов В размерности М, ES — матрица ошибки раз- мерности Л/на N, V— угол зрения по умолчанию [-37,5, 30] |
plotsom(POS) |
Изображает позицию нейрона красной точкой, связывая синей линией нейроны, находящиеся друг от друга на расстоянии 1. POS — матрица S N-размерных нейронов |
ind2vec и vec2ind |
Позволяют представить индексы либо собственно значениями индексов, либо векторами, строки ко- торых содержат 1 в позиции индекса2 |
full |
Преобразует разреженную матрицу в полную |
maxlinlr(P) |
Функция возвращает максимальный уровень обу- ченности линейного слоя без bias, который обучал- ся только на векторе Р |
trainlm |
Выполняет обучение многослойной НС методом Левенберга—Марквардта |
netprod |
Входная сетевая функция, которая вычисляет вы- ход сетевого слоя, умножая входной вектор на веса и прибавляя bias |
init |
Итеративно инициализирует НС |
1Например, plot{X, Y,' g+:') изображает точки зеленого цвета с помощью символа «+».
2Например, для четырех векторов (содержащих только одну 1 в каждой
строке) можно найти индексы единиц: vec = [1 0 0 0; 0 0 1 0; 0 1 0 1];
ind = vec2ind(vec).
Структура данных описания нейронных сетей. Структура данных net — это описание обученной НС. Обучение осуществляется в соответствии со следующими параметрами, значения которых либо устанавливаются пользователем, либо по умолчанию.
Структура данных Комментарий
net.trainParam.epochs 100 максимальное количество эпох обучения
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.