Пакетная функция самоорганизующегося обучения весу карты
[dW,LS] = learnsomb(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
info = learnsomb('code
')
learnsomb
- функция пакетного самоорганизующегося обучения весом карты.
[dW,LS] = learnsomb(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 | Новое состояние обучения |
Обучение происходит согласно learnsomb
"s параметр обучения, показанный здесь со значением по умолчанию:
LP.init_neighborhood | 3 | Начальный размер окрестности |
LP.steps | 100 | Упорядоченное расположение шагов фазы |
info = learnsomb('
возвращает полезную информацию для каждого code
')code
вектор символов:
'pnames' | Возвращает имена параметров обучения. |
'pdefaults' | Возвращает параметры обучения по умолчанию. |
'needg' | Возвращает |
Этот пример задает случайный вход P
, выход A
, и весовой матрицы W
для слоя с 2-элементным входом и 6 нейронами. Этот пример также вычисляет положения и расстояния для нейронов, которые появляются в шестигранном шаблоне 2 на 3.
p = rand(2,1); a = rand(6,1); w = rand(6,2); pos = hextop(2,3); d = linkdist(pos); lp = learnsomb('pdefaults');
Потому что learnsom
эти значения нужны только для вычисления изменения веса (см. Алгоритм).
ls = []; [dW,ls] = learnsomb(w,p,[],[],a,[],[],[],[],d,lp,ls)
Можно создать стандартную сеть, которая использует learnsomb
с selforgmap
. Чтобы подготовить веса слоя i пользовательской сети для обучения с learnsomb
:
Задайте NET.trainFcn
на 'trainr'
. (NET.trainParam
автоматически становится trainr
"параметры по умолчанию.)
Задайте NET.adaptFcn
на 'trains'
. (NET.adaptParam
автоматически становится trains
"параметры по умолчанию.)
Установите каждую NET.inputWeights{i,j}.learnFcn
на 'learnsomb'
.
Установите каждую NET.layerWeights{i,j}.learnFcn
на 'learnsomb'
. (Каждое свойство параметра весового обучения автоматически устанавливается на learnsomb
"параметры по умолчанию.)
Чтобы обучить сеть (или включить ее для адаптации):
Задайте NET.trainParam
(или NET.adaptParam
) свойства по желанию.
Функции train
(или adapt
).
learnsomb
вычисляет изменения веса, так что новый вектор веса каждого нейрона является средневзвешенным средним значением входных векторов, на которые нейрон и нейроны в его окрестности ответили выходом 1.
Фаза упорядоченного расположения длится столько шагов, сколько LP.steps
.
На этой фазе соседство постепенно уменьшается с максимального размера LP.init_neighborhood
вплоть до 1
, где и остается с тех пор.
adapt
| selforgmap
| train