Самоорганизующаяся функция обучения весу карты
[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
. На этой фазе ожидается, что веса будут распределяться относительно равномерно по входному пространству с сохранением их топологического порядка, определенного на фазе упорядоченного расположения.