Нормированный perceptron вес и функция изучения смещения
[dW,LS] = learnpn(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnpn('code')
learnpn вес и функция изучения смещения. Это может привести к более быстрому изучению, чем learnp когда входные векторы имеют широко различные величины.
[dW,LS] = learnpn(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 | Новое состояние изучения |
info = learnpn(' возвращает полезную информацию для каждого code')code символьный вектор:
'pnames' | Имена изучения параметров |
'pdefaults' | Параметры изучения значения по умолчанию |
'needg' | Возвращается 1, если эта функция использует |
Здесь вы задаете случайный вход P и ошибка E для слоя с двухэлементным входом и тремя нейронами.
p = rand(2,1); e = rand(3,1);
Поскольку learnpn только потребности эти значения, чтобы вычислить изменение веса (см. “Алгоритм” ниже), используйте их, чтобы сделать так.
dW = learnpn([],p,[],[],[],[],e,[],[],[],[],[])
Perceptrons действительно имеют одно действительное ограничение. Набор входных векторов должен быть линейно отделимым, если решение состоит в том, чтобы быть найдено. Таким образом, если входные векторы с целями 1 не могут быть разделены линией или гиперплоскостью от входных векторов, сопоставленных со значениями 0, perceptron никогда не будет мочь классифицировать их правильно.
learnpn вычисляет вес изменяют dW для данного нейрона от входа P нейрона и ошибка E согласно нормированному perceptron изучение правила:
pn = p / sqrt(1 + p(1)^2 + p(2)^2) + ... + p(R)^2)
dw = 0, if e = 0
= pn', if e = 1
= -pn', if e = -1
Выражение для dW может быть получен в итоге как
dw = e*pn'