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