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