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