Самоорганизующаяся функция изучения веса карты
[dW,LS] = learnsom(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnsom('code
')
learnsom
самоорганизующаяся функция изучения веса карты.
[dW,LS] = learnsom(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 | Новое состояние изучения |
Изучение происходит согласно learnsom
изучение параметров, показанных здесь с их значениями по умолчанию.
LP.order_lr | 0.9
| Упорядоченное расположение скорости обучения фазы |
LP.order_steps | 1000
| Упорядоченное расположение шагов фазы |
LP.tune_lr | 0.02
| Настройка скорости обучения фазы |
LP.tune_nd | 1
| Настройка расстояния окружения фазы |
info = learnsom('
возвращает полезную информацию для каждого code
')code
символьный вектор:
'pnames' | Имена изучения параметров |
'pdefaults' | Параметры изучения значения по умолчанию |
'needg' | Возвращается 1, если эта функция использует |
Здесь вы задаете случайный вход P
, выход A
, и матрица веса W
для слоя с двухэлементным входом и шестью нейронами. Вы также вычисляете положения и расстояния для нейронов, которые располагаются в 2 3 шестиугольном шаблоне. Затем вы задаете четыре параметра изучения.
p = rand(2,1); a = rand(6,1); w = rand(6,2); pos = hextop(2,3); d = linkdist(pos); lp.order_lr = 0.9; lp.order_steps = 1000; lp.tune_lr = 0.02; lp.tune_nd = 1;
Поскольку learnsom
только потребности эти значения, чтобы вычислить изменение веса (см. “Алгоритм” ниже), используйте их, чтобы сделать так.
ls = []; [dW,ls] = learnsom(w,p,[],[],a,[],[],[],[],d,lp,ls)
learnsom
вычисляет вес изменяют dW
для данного нейрона от входа P
нейрона, активация
A2
, и скорость обучения LR
:
dw = lr*a2*(p'-w)
где активация A2
найден от слоя выходом A
, расстояния нейрона D
, и текущий размер окружения ND
:
a2(i,q) = 1, if a(i,q) = 1 = 0.5, if a(j,q) = 1 and D(i,j) <= nd = 0, otherwise
Скорость обучения LR
и размер окружения NS
изменены через две фазы: фаза упорядоченного расположения и настраивающаяся фаза.
Фазы упорядоченного расположения длятся столько же шагов сколько LP.order_steps
. Во время этой фазы LR
настроен от LP.order_lr
вниз к LP.tune_lr
, и ND
настроен от максимального расстояния нейрона вниз до 1. Именно во время этой фазы веса нейрона, как ожидают, прикажут себя на входном пробеле, сопоставимом со связанными положениями нейрона.
Во время настраивающейся фазы LR
уменьшения медленно от LP.tune_lr
, и ND
всегда устанавливается в LP.tune_nd
. Во время этой фазы веса, как ожидают, распространятся относительно равномерно по входному пробелу при сохранении их топологического порядка, определенного во время фазы упорядоченного расположения.