LVQ1 функции обучения с подкреплением
[dW,LS] = learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnlv1('code
')
learnlv1
- это LVQ1 функция обучения весу.
[dW,LS] = learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
принимает несколько входы,
W |
|
P |
|
Z |
|
N |
|
A |
|
T |
|
E |
|
gW |
|
gA |
|
D |
|
LP | Параметры обучения, нет, |
LS | Состояние обучения, первоначально должно быть = |
и возвращает
dW |
|
LS | Новое состояние обучения |
Обучение происходит согласно learnlv1
"s параметр обучения, показанный здесь с его значением по умолчанию.
LP.lr - 0.01 | Скорость обучения |
info = learnlv1('
возвращает полезную информацию для каждого code
')code
вектор символов:
'pnames' | Имена параметров обучения |
'pdefaults' | Параметры обучения по умолчанию |
'needg' | Возвращает 1, если эта функция использует |
Здесь вы задаете случайный вход P
, выход A
, матрица веса W
и выходной градиент 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,[])
Можно создать стандартную сеть, которая использует learnlv1
с lvqnet
. Подготовить веса слоя i
пользовательской сети для обучения с learnlv1
,
Задайте net.trainFcn
на 'trainr'
. (net.trainParam
автоматически становится trainr
"параметры по умолчанию.)
Задайте net.adaptFcn
на 'trains'
. (net.adaptParam
автоматически становится trains
"параметры по умолчанию.)
Установите каждую net.inputWeights{i,j}.learnFcn
на 'learnlv1'
.
Установите каждую net.layerWeights{i,j}.learnFcn
на 'learnlv1'
. (Каждое свойство параметра весового обучения автоматически устанавливается на learnlv1
"параметры по умолчанию.)
Чтобы обучить сеть (или включить ее для адаптации),
Задайте net.trainParam
(или net.adaptParam
) свойства по желанию.
Функции train
(или adapt
).
learnlv1
вычисляет изменение веса dW
для данного нейрона из входных данных нейрона P
, выход A
, выходной градиент gA
, и скорость обучения LR
, согласно LVQ1
правило, заданное i
, индекс нейрона, выход которого a(i)
равен 1:
dw(i,:) = +lr*(p-w(i,:))
если gA(i) = 0;
= -lr*(p-w(i,:))
если gA(i) = -1