Функция изучения веса 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изучение параметра, показанного здесь с его значением по умолчанию.
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