Изучение свойств линейного нейрона и линейной нейронной сети

Страницы работы

25 страниц (Word-файл)

Содержание работы

Лабораторная работа

ИЗУЧЕНИЕ СВОЙСТВ ЛИНЕЙНОГО НЕЙРОНА И ЛИНЕЙНОЙ НЕЙРОННОЙ СЕТИ

Цель работы:  изучить свойства линейного нейрона.

Для работы с нейронными сетями необходимо инсталли­ровать 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       максимальное количество эпох обучения

Похожие материалы

Информация о работе