Главная страница
Культура
Искусство
Языки
Языкознание
Вычислительная техника
Информатика
Финансы
Экономика
Биология
Сельское хозяйство
Психология
Ветеринария
Медицина
Юриспруденция
Право
Физика
История
Экология
Промышленность
Энергетика
Этика
Связь
Автоматика
Математика
Электротехника
Философия
Религия
Логика
Химия
Социология
Политология
Геология

Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6. В. Г. Потемкин



Скачать 14.83 Mb.
Название В. Г. Потемкин
Анкор Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Дата 26.04.2017
Размер 14.83 Mb.
Формат файла doc
Имя файла Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Тип Книга
#3790
страница 43 из 50
1   ...   39   40   41   42   43   44   45   46   ...   50

11.6. Функции настройки параметров


Функции настройки параметров нейронной сети предназначены для вычисления
приращений весов и смещений при обучении или адаптации сети.

Входные и выходные аргументы для всех функций настройки параметров одинаковы и приведены в начале данного раздела.

Входные аргументы:

W – матрица весов размера SR;

b – вектор смещений размера S1;

P – вектор из единиц размера 1Q;

Z – взвешенный вектор входа размера SQ;

N – матрица векторов входа нейрона размера SQ;

A – векторы выхода размера SQ;

T – векторы целей слоя размера SQ;

E – векторы ошибок слоя размера SQ;

gW – градиент функционала по настраиваемым параметрам размера SQ;

gA – градиент функционала по выходу сети размера SQ;

D – матрица расстояний между нейронами размера SS;

LP – параметры процедуры настройки, при их отсутствии LP = [ ];

ls – начальный вектор настраиваемых параметров (по умолчанию пустой массив).

Выходные аргументы:

dW – матрица приращений весов размера SR;

db – вектор приращений смещений размера S1;

LS – новый вектор настраиваемых параметров.

Кроме того, все функции возвращают информацию о параметрах функций настройки, если используется следующий формат вызова:

info = <�имя_функции>(code).

В зависимости от значения аргумента code возвращается следующая информация:

'pnames' – имена параметров процедуры настройки;

'pdefaults' – значения параметров процедуры настройки, принимаемые по умолчанию;

'needg' – возвращается 1, если процедура использовала значения градиентов gW или gA.


LEARNP

Функция настройки параметров персептрона

Синтаксис:

[dW,LS] = learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

[db,LS] = learnp(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnp (code)

Описание:

Функция learnp предназначена для настройки весов и смещений персептрона.
Эта функция не имеет параметров настройки.

Применение функции:

Функция настройки параметров сети learnp используется при создании сетей
с помощью метода newp, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainb'. Это автоматически установит значения параметров обучения, соответствующие функции trainb;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn, net.biases{i}.learnFcn равными 'learnp'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения;

  • применить функцию train или adapt.

Пример:

Определим сеть со случайными векторами входа p и ошибки e:

p = rand(2,1);

e = rand(3,1);

Вызов функции learnp можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnp([],p,[],[],[],[],e,[],[],[],[],[])

dW =

0.5766 0.1403

0.4617 0.1123

0.8468 0.2060

Алгоритм:

Функция learnp рассчитывает приращения весов dW в соответствии со следующим обучающим правилом персептрона [Ros]:



Эти выражения можно представить в следующей обобщенной форме:

.

Сопутствующие функции: LEARNPN, NEWP, ADAPTWB, TRAINWB, ADAPT, TRAIN.


LEARNPN

Нормированная функция настройки параметров персептрона

Синтаксис:

[dW,LS] = learnpn(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

[db,LS] = learnp(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnpn (code)

Описание:

Функция learnpn предназначена для настройки весов и смещений персептрона.
Эта функция не имеет параметров настройки.

Применение функции:

Функция настройки параметров сети learnpn используется при создании сетей с помощью метода newp, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainb'. Это автоматически установит значения параметров обучения, соответствующие функции trainb;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn, net.biases{i}.learnFcn равными 'learnpn'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

Пример:

Определим сеть со случайными векторами входа p и ошибки e:

p = rand(2,1);

e = rand(3,1);

Вызов функции learnpn можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnpn([],p,[],[],[],[],e,[],[],[],[],[])

dW =

0.4122 0.1003

0.3301 0.0803

    1. 0.1473

Алгоритм:

Функция learnpn рассчитывает приращения весов dW в соответствии со следующим обучающим правилом:



Эти выражения можно представить в обобщенной форме:

.

Сопутствующие функции: LEARNP, NEWP, ADAPT, TRAIN.


LEARNWH

Функция настройки методом Видроу – Хоффа

Синтаксис:

[dW,LS] = learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

[db,LS] = learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnwh (code)

Описание:

Функция leanrwh предназначена для настройки параметров нейронных сетей по методу Видроу – Хоффа. Параметры процедуры learnwh представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

Применение функции:

Функция настройки параметров сети learnwh используется при создании линейных нейронных сетей с помощью метода newlin, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainb'. Это автоматически установит значения параметров обучения, соответствующие функции trainb;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn, net.biases{i}.learnFcn равными 'learnwh'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или
    адаптации;

  • применить функцию train или adapt.

Пример:

Определим сеть со случайными векторами входа p и ошибки e с двухэлементным входом и тремя нейронами и параметром скорости настройки lr:

p = rand(2,1);

e = rand(3,1);

lp.lr = 0.5;

Вызов функции learnwh можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnwh([],p,[],[],[],[],e,[],[],[],lp,[])

dW =

0.2883 0.0701

0.2309 0.0562

0.4234 0.1030

Алгоритм:

Функция learnwh рассчитывает приращения весов dW в соответствии с обучающим правилом Видроу – Хоффа [44, 45] в зависимости от нормированного вектора входа pn, ошибки e и параметра скорости настройки lr:



Сопутствующие функции: MAXLINLR, NEWLIN, ADAPT, TRAIN.

LEARNGD

Функция настройки методом градиентного спуска

Синтаксис:

[dW,LS] = learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

[db,LS] = learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,ls)

info = learngd(code)

Описание:

Функция learngd предназначена для настройки весов и смещений сети методом
градиентного спуска.

Параметры процедуры learngd представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

Применение функции:

Функция настройки параметров сети learngd используется при создании линейных нейронных сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn, net.biases{i}.learnFcn равными 'learngd'.

Для того чтобы фактически адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам адаптации;

  • применить функцию adapt.

Пример:

Допустим, что на некотором шаге настройки слоя с тремя нейронами и двухэлементным входом известен случайный вектор градиента gW, а параметр скорости настройки задан равным 0.5:

gW = rand(3,2);

lp.lr = 0.5;

Тогда вызов функции learngd можно организовать следующим образом, поскольку
не все входные аргументы требуются для вызова этой функции:

dW = learngd([],[],[],[],[],[],[],gW,[],[],lp,[])

dW =

0.4751 0.2430

0.1156 0.4456

0.3034 0.3810

Алгоритм:

Функция learngd рассчитывает приращение веса dW в зависимости от градиента функционала качества по вектору весов gW и параметра скорости настройки lr в соответствии с методом градиентного спуска:

dW = lr*gW.

Сопутствующие функции: LEARNGDM, NEWFF, NEWCF, ADAPT, TRAIN.


LEARNGDM

Функция настройки методом градиентного
спуска с возмущением


Синтаксис:

[dW,LS] = learngdm(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

[db,LS] = learngdm(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,ls)

info = learngdm(code)

Описание:

Функция learngdm предназначена для расчета приращений весов и смещений нейронной сети методом градиентного спуска c возмущением.

Параметры процедуры learngdm представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

LP.mc

Параметр возмущения, по умолчанию 0.9

Применение функции:

Функция настройки параметров сети learngdm используется при создании линейных нейронных сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn, net.biases{i}.learnFcn равными 'learngdm'.

Для того чтобы фактически адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам адаптации;

  • применить функцию adapt.

Пример:

Допустим, что на некотором шаге настройки слоя с тремя нейронами и двухэлементным входом известен случайный вектор градиента gW, а параметры скорости настройки
и возмущения заданы равными 0.6 и 0.8 соответственно:

gW = rand(3,2);

lp.lr = 0.6;

lp.mc = 0.8;

Тогда вызов функции learngdm можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

ls = [];

[dW,ls] = learngdm([],[],[],[],[],[],[],gW,[],[],lp,ls)

dW =

0.2739 0.2668

0.0111 0.3693

0.4928 0.4752

ls =

dw: [32 double]

ls.dw

ans =

0.2739 0.2668

0.0111 0.3693

0.4928 0.4752

Функция learngdm возвращает матрицу приращения весов и сохраняет эту матрицу для следующего шага настройки.

Алгоритм:

Функция learngdm рассчитывает приращение веса dW в зависимости от градиента функционала качества gW по вектору весов, параметров скорости настройки lr и возмущения mc в соответствии с методом градиентного спуска с возмущением:

dW = mc*dWprev + (1–mc)*lr*gW.

Предыдущее приращение веса dWprev считывается из переменной ls.dw.

Сопутствующие функции: LEARNGD, NEWFF, NEWCF, ADAPT, TRAIN.


LEARNLV1

Функция настройки весов LVQ-сети по правилу LVQ1

Синтаксис:

[dW,LS] = learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnlv1(code)

Описание:

Функция learnlv1 предназначена для настройки весов LVQ-сети по правилу LVQ1.

Параметры процедуры learnlv1 представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

Применение функции:

Функция настройки параметров сети learnlv1 используется при создании линейных нейронных сетей с помощью метода newlvq, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnlv1'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой нейронной сети с двухэлементным входом и тремя нейронами
со случайными массивами входа p, весов w и выхода a; зададим также градиент функционала по выходу gA и параметр скорости настройки lr:

p = rand(2,1);

w = rand(3,2);

a = compet(negdist(w,p));

gA = [–1;1;1];

lp.lr = 0.5;

Вызов функции learnlv1 можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnlv1(w,p,[],[],a,[],[],[],gA,[],lp,[])

dW =

0 0

0 0

–0.0294 –0.1063

Алгоритм:

Функция learnlv1 рассчитывает приращение весов dW в зависимости от градиента функционала качества gW по вектору выхода и параметра скорости настройки lr в соответствии с правилом LVQ1, но только для тех нейронов, выход которых a(i) равен 1:



Сопутствующие функции: LEARNLV2, ADAPT, TRAIN.

LEARNLV2

Функция настройки весов LVQ-сети
по правилу LVQ2


Синтаксис:

[dW,LS] = learnlv2(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnlv2 (code)

Описание:

Функция learnlv2 предназначена для настройки весов LVQ-сети по правилу LVQ2.

Параметры процедуры learnlv2 представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

LP.window

Параметр окна, по умолчанию 0.25

Применение функции:

Функция настройки параметров сети learnlv2 используется при создании линейных нейронных сетей с помощью метода newlvq, а также при формировании сетей с атрибутами, определяемыми пользователем. Эта функция применяется только после того, как сеть настроена с помощью правила LVQ1.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnlv2'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или
    адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой нейронной сети с двухэлементным входом и тремя нейронами
со случайными массивами входа p, весов w и выхода a; зададим также градиент функционала по выходу gA и параметр скорости настройки lr:

p = rand(2,1);

w = rand(3,2);

n = negdist(w,p);

a = compet(n);

gA = [–1;1;1];

lp.lr = 0.5;

lp.window = 0.25;

Вызов функции learnlv2 можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnlv2(w,p,[],n,a,[],[],[],gA,[],lp,[])

dW =

0 0

0 0

0 0

Алгоритм:

Функция learnlv2 рассчитывает приращение весов dW в зависимости от градиента функционала качества gW по вектору выхода и параметра скорости настройки lr
в соответствии с правилом LVQ2.1 [24]. Это правило реализует следующую процедуру. Необходимо выбрать нейрон k1 в качестве победителя и нейрон k2 в качестве проигравшего. Если один из них принадлежит к требуемому классу, а другой – нет, то первому присваивается индекс j, а второму – индекс i. Затем вычисляется расстояние di вектора входа до нейрона kiи dj до нейрона kj.

Если выполняется условие

,

то нейрон kj приближается, а нейрон ki удаляется от вектора входа согласно следующим соотношениям:



Сопутствующие функции: LEARNLV1, ADAPT, TRAIN.


LEARNK

Функция настройки весов для слоя Кохонена

Синтаксис:

[dW,LS] = learnk(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnk(code)

Описание:

Функция learnk предназначена для настройки весов слоя Кохонена.

Параметры процедуры learnk представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.01

Применение функции:

Функция настройки параметров сети learnk используется при создании слоев Кохонена с помощью метода newc, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnk'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или
    адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой Кохонена сети с двухэлементным входом и тремя нейронами
со случайными массивами входа p, весов w и выхода a; зададим также параметр скорости настройки lr:

p = rand(2,1);

a = rand(3,1);

w = rand(3,2);

lp.lr = 0.5;

Вызов функции learnk можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnk(w,p,[],[],a,[],[],[],[],[],lp,[])

dW =

0.0940 –0.2951

0.2468 –0.1068

0.4658 –0.1921

Алгоритм:

Функция learnlv2 рассчитывает приращение весов dW в зависимости от градиента функционала качества gW по вектору выхода и параметра скорости настройки lr в соответствии с правилом LVQ2.1 [24].

Функция learnk рассчитывает приращение весов dW в зависимости от вектора входа p, выхода a, весов w и параметра скорости настройки lr в соответствии с правилом Кохонена [24]:



Сопутствующие функции: LEARNIS, LEARNOS, ADAPT, TRAIN.


LEARNCON

Функция настройки смещений для слоя Кохонена

Синтаксис:

[db,LS] = learncon(b,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learncon(code)

Описание:

Функция learncon предназначена для настройки смещений слоя Кохонена по правилу справедливых смещений.

Параметры процедуры learncon представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.001

Применение функции:

Функция настройки параметров сети learncon используется при создании слоев Кохонена с помощью метода newc, а также при формировании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.biases{i}.learnFcn равными 'learncon'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой Кохонена сети с двухэлементным входом и тремя нейронами со случайными массивами выхода a, вектора смещений b; зададим также параметр скорости настройки lr:

a = rand(3,1);

b = rand(3,1);

lp.lr = 0.5;

Вызов функции learnk можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

db = learncon(b,[],[],[],a,[],[],[],[],[],lp,[])

db =

0.1590

0.3076

0.5565

Алгоритм:

Функция learncon реализует правило настройки с учетом нечувствительности части нейронов, называемых мертвыми; суть этого правила заключается в следующем. В начале процедуры настройки всем нейронам конкурирующего слоя присваивается одинаковый параметр активности с0 = 1/N, где N – количество нейронов в слое. В процессе настройки функция learncon корректирует этот параметр таким образом, чтобы его значения для активных нейронов становились больше, а для неактивных нейронов меньше согласно формуле

ck = (1 – lr) * ck –1 + lr*a .

М-функция learncon использует следующую формулу для расчета приращений вектора смещений:



Параметр скорости настройки lr по умолчанию равен 0.001, и его величина на порядок меньше соответствующего значения для функции learnk.

Сопутствующие функции: LEARNK, LEARNOS, ADAPT, TRAIN.


LEARNIS

Функция настройки по вектору входа

Синтаксис:

[dW,LS] = learnis(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnis(code)

Описание:

Функция learnis предназначена для настройки весов слоя Кохонена по вектору входа (правило Гроссберга) и является альтернативой функции настройки learnk.

Параметры процедуры learnis представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.5

Применение функции:

Функция настройки параметров сети learnis используется при создании слоев Кохонена с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnis'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или
    адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой Кохонена с двухэлементным входом и тремя нейронами со случайными массивами входа p, весов w и выхода a; зададим также параметр скорости настройки lr:

p = rand(2,1);

a = rand(3,1);

w = rand(3,2);

lp.lr = 0.5;

Вызов функции learnis можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnis(w,p,[],[],a,[],[],[],[],[],lp,[])

dW =

0.0571 –0.1791

0.1200 –0.0519

0.4152 –0.1713

Алгоритм:

Функция learnis рассчитывает изменение вектора весов dw для данного нейрона
в зависимости от векторов входа p, выхода a, весов w и параметра скорости настройки lr
в соответствии с правилом Гроссберга настройки по вектору входа [14]:

dw = lr*a*(p'w).

Сопутствующие функции: LEARNK, LEARNOS, ADAPT, TRAIN.


LEARNOS

Функция настройки по вектору выхода

Синтаксис:

[dW,LS] = learnos(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnos(code)

Описание:

Функция learnos предназначена для настройки весов слоя Кохонена по вектору выхода (правило Гроссберга) и является альтернативой функции настройки learnis.

Параметры процедуры learnos представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.5

Применение функции:

Функция настройки параметров сети learnos используется при создании слоев Кохонена с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnos'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или адаптации;

  • применить функцию train или adapt.

Пример:

Определим слой Кохонена с двухэлементным входом и тремя нейронами со случайными массивами входа p, весов w и выхода a; зададим также параметр скорости настройки lr:

p = rand(2,1);

a = rand(3,1);

w = rand(3,2);

lp.lr = 0.5;

Вызов функции learnos можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnos(w,p,[],[],a,[],[],[],[],[],lp,[])

dW =

–0.0738 –0.0248

0.0140 0.0048

0.4146 0.0319

Алгоритм:

Функция learnos рассчитывает изменение весов dW для слоя Кохонена в зависимости от векторов входа p, выхода a, весов w и параметра скорости настройки lr в соответствии с правилом Гроссберга настройки по вектору выхода [14]:

dw = lr * (aw) * p'.

Сопутствующие функции: LEARNIS, LEARNK, ADAPT, TRAIN.


LEARNSOM

Функция настройки весов карты Кохонена

Синтаксис:

[dW,LS] = learnsom(W,P,Z,N,A,T,E,gW,gA,D,LP,ls)

info = learnsom (code)

Описание:

Функция leanrnsom предназначена для настройки весов карты Кохонена.

Параметры процедуры learnos представлены в следующей таблице.


Параметр

Назначение

LP.order_lr

Скорость настройки на этапе упорядочения, по умолчанию 0.9

LP.order_steps

Число шагов на этапе упорядочения, по умолчанию 1000

LP.tune_lr

Скорость настройки на этапе подстройки, по умолчанию 0.02

LP.tune_nd

Размер окрестности нейрона-победителя, по умолчанию 1

Применение функции:

Функция настройки параметров сети leanrnsom используется при создании слоев
Кохонена с помощью метода newsom, а также при формировании сетей с атрибутами,
определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующими функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующими функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'leanrnsom'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или
    адаптации;

  • применить функцию train или adapt.

Примеры:

Определим карту Кохонена с расположением нейронов на гексагональной сетке размера 23, а также расстояния между ними; зададим случайные массивы входа p, выхода a и весов w, а также параметры процедуры настройки:

p = rand(2,1);

a = rand(6,1);

w = rand(6,2);

pos = hextop(2,3);

d = linkdist(pos);

lp.order_lr = 0.9;

lp.order_steps = 1000;

lp.tune_lr = 0.02;

lp.tune_nd = 1;

Вызов функции learnsom можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

ls = [];

[dW,ls] = learnsom(w,p,[],[],a,[],[],[],[],d,lp,ls)

dW =

0.2217 0.0945

0.8432 –0.2912

0.6194 –1.3035

0.2836 –1.2292

0.0469 –0.2965

0.3090 –0.9659

ls =

step: 1

nd_max: 2

Алгоритм:

Функция learnsom вычисляет приращения весов dW в зависимости от вектора входа p, массива параметров соседства A2 и параметра скорости настройки lr:



Элементы массива параметров соседства А2 для нейронов, расположенных в окрестности нейрона-победителя i, вычисляются следующим образом:



где a(i, q) – элемент выхода нейронной сети; D(i, j) – расстояние между нейронами i и j;
nd – размер окрестности нейрона-победителя.

Процесс обучения карты Кохонена включает 2 этапа: этап упорядочения и этап подстройки. На этих этапах корректируются параметр скорости настройки lr и размер окрестности nd. Параметр lr изменяется от значения order_lr до tune_lr, а размер окрестности nd – от максимального до значения, равного 1.

Сопутствующие функции: ADAPT, TRAIN.


LEARNН

Функция настройки по правилу Хебба

Синтаксис:

[dW,LS] = learnh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

info = learnh(code)

Описание:

Функция learnh предназначена для расчета приращений весов нейронной сети по правилу Хебба.

Параметры процедуры learnh представлены в следующей таблице.


Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.5

Применение функции:

Функция настройки параметров сети learnh используется при создании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnh'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или адаптации;

  • применить функцию train или adapt.

Пример:

Определим нейронную сеть с двухэлементным входом и тремя нейронами со случайными массивами входа p и выхода a; зададим также параметр скорости настройки lr:

p = rand(2,1);

a = rand(3,1);

lp.lr = 0.5;

Вызов функции learnh можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnh([],p,[],[],a,[],[],[],[],[],lp,[])

dW =

0.2883 0.0701

0.2309 0.0562

0.4234 0.1030

Алгоритм:

Функция learnh рассчитывает приращения весов dW в зависимости от векторов входа p, выхода a и параметра скорости настройки lr в соответствии с обучающим правилом Хебба [19]:

dW = lr * p'.

Сопутствующие функции: LEARNHD, ADAPT, TRAIN.


MAXLINLR

Максимальное значение параметра скорости настройки для линейной сети

Синтаксис:

lr = maxlinlr(P)

lr = maxlinlr(P,'bias')

Описание:

Функция maxlinlr применяется для расчета максимального значения параметра скорости настройки для линейной сети.

Функция lr = maxlinlr(P) возвращает максимальный параметр скорости настройки для линейной сети без смещения, которая обучается только по векторам, входящим в массив векторов входа P размера RQ.

Функция lr = maxlinlr(P, 'bias') возвращает максимальный параметр скорости настройки для линейной сети со смещением.

Пример:

Зададим числовой массив входа, состоящий из четырех двухэлементных векторов,
и вычислим максимальные значения параметра скорости настройки для линейной сети
без смещения и со смещением:

P = [ 1 2 –4 7;

0.1 3 10 6];

lr = maxlinlr(P) % Без смещения

lr = 0.0069

lr = maxlinlr(P,'bias') % Со смещением

lr = 0.0067

Сопутствующие функции: LEARNWH.


LEARNНD

Функция настройки по правилу Хебба с затуханием

Синтаксис:

[dW,LS] = learnhd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

info = learnhd(code)

Описание:

Функция learnhd предназначена для настройки весов нейронной сети по методу Хебба с затуханием.

Параметры процедуры learnhd представлены в следующей таблице.

Параметр

Назначение

LP.lr

Скорость настройки, по умолчанию 0.5

LP.dr

Параметр затухания, по умолчанию 0.01

Применение функции:

Функция настройки параметров сети learnhd используется при создании сетей с атрибутами, определяемыми пользователем.

Для того чтобы подготовить сеть к настройке, необходимо:

  • установить свойство сети net.trainFcn равным 'trainr'. Это автоматически установит значения параметров обучения, соответствующие функции trainr;

  • установить свойство сети net.adaptFcn равным 'trains'. Это автоматически установит значения параметров адаптации, соответствующие функции trains;

  • установить свойства net.inputWeights{i,j}.learnFcn, net.layerWeights{i,j}.learnFcn
    равными 'learnhd'.

Для того чтобы фактически обучить или адаптировать сеть, необходимо:

  • инициализировать нейронную сеть;

  • присвоить, если это необходимо, требуемые значения параметрам обучения или адаптации;

  • применить функцию train или adapt.

Пример:

Определим сеть со случайными входом p, выходом a и весами w для слоя с двух-элементным входом и тремя нейронами; зададим также параметры скорости настройки lr и затухание dr.

p = rand(2,1);

a = rand(3,1);

w = rand(3,2);

lp.lr = 0.5;

lp.dr = 0.05;

Вызов функции learnhd можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnhd(w,p,[],[],a,[],[],[],[],[],lp,[])

dW =

–0.0237 –0.0327

0.2734 0.1787

0.1234 0.0812

Алгоритм:

Функция learnhd рассчитывает приращения весов dW в зависимости от векторов входа p, выхода a, весов w, а также параметра скорости настройки lr и параметра затухания dr
в соответствии с обучающим правилом Хебба c затуханием [19]:

dW = lr * * (p'w) – dr * w.

Сопутствующие функции: LEARNH, ADAPT, TRAIN.
1   ...   39   40   41   42   43   44   45   46   ...   50
написать администратору сайта