Нормированный 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'