Сделай Сам Свою Работу на 5

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

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

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

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

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'.

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

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

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

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

Пример:

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

p = rand(2,1);

e = rand(3,1);

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

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

dW =

0.4122 0.1003

0.3301 0.0803

0.6055 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 * a* 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 * a* (p'w) – dr * w.

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



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.