Изучение векторного квантования
Векторное квантование обучения (LVQ), отличное от векторного квантования (VQ) и самоорганизующихся карт Кохонена (KSOM), в основном представляет собой конкурентную сеть, в которой используется контролируемое обучение. Мы можем определить это как процесс классификации паттернов, в котором каждая единица вывода представляет класс. Поскольку она использует контролируемое обучение, сети будет предоставлен набор обучающих шаблонов с известной классификацией вместе с начальным распределением выходного класса. После завершения процесса обучения LVQ классифицирует входной вектор, назначая его тому же классу, что и выходной блок.
Архитектура
На следующем рисунке показана архитектура LVQ, которая очень похожа на архитектуру KSOM. Как видим, есть“n” количество единиц ввода и “m”количество единиц вывода. Слои полностью соединены между собой, на них есть утяжелители.
Используемые параметры
Ниже приведены параметры, используемые в процессе обучения LVQ, а также в блок-схеме.
x= обучающий вектор (x 1 , ..., x i , ..., x n )
T = класс для обучающего вектора x
wj = вектор веса для jth блок вывода
Cj = класс, связанный с jth блок вывода
Алгоритм обучения
Step 1 - Инициализировать опорные векторы, что можно сделать следующим образом -
Step 1(a) - Из заданного набора обучающих векторов возьмите первый «m”(Количество кластеров) обучающих векторов и использовать их как весовые векторы. Остальные векторы можно использовать для обучения.
Step 1(b) - Назначьте начальный вес и классификацию случайным образом.
Step 1(c) - Применить метод кластеризации K-средних.
Step 2 - Инициализировать опорный вектор $ \ alpha $
Step 3 - Продолжите с шагов 4-9, если условие остановки этого алгоритма не выполнено.
Step 4 - Выполните шаги 5-6 для каждого входного вектора обучения. x.
Step 5 - Вычислить квадрат евклидова расстояния для j = 1 to m а также i = 1 to n
$$ D (j) \: = \: \ displaystyle \ sum \ limits_ {i = 1} ^ n \ displaystyle \ sum \ limits_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij) }) ^ 2 $$
Step 6 - Получить победный отряд J где D(j) минимально.
Step 7 - Рассчитайте новый вес выигрышной единицы по следующей формуле -
если T = Cj затем $ w_ {j} (новый) \: = \: w_ {j} (старый) \: + \: \ alpha [x \: - \: w_ {j} (старый)] $
если T ≠ Cj затем $ w_ {j} (новый) \: = \: w_ {j} (старый) \: - \: \ alpha [x \: - \: w_ {j} (старый)] $
Step 8 - Уменьшить скорость обучения $ \ alpha $.
Step 9- Проверить состояние остановки. Это может быть следующее -
- Достигнуто максимальное количество эпох.
- Скорость обучения снизилась до незначительного значения.
Схема
Варианты
Три других варианта, а именно LVQ2, LVQ2.1 и LVQ3, были разработаны Кохоненом. Сложность во всех этих трех вариантах из-за концепции, которую выучит победитель, а также занявший второе место отряд, больше, чем в LVQ.
LVQ2
Как обсуждалось, в концепции других вариантов LVQ выше, состояние LVQ2 формируется окном. Это окно будет основано на следующих параметрах -
x - текущий входной вектор
yc - опорный вектор, ближайший к x
yr - другой опорный вектор, ближайший к x
dc - расстояние от x к yc
dr - расстояние от x к yr
Входной вектор x падает в окно, если
$$ \ frac {d_ {c}} {d_ {r}} \:> \: 1 \: - \: \ theta \: \: и \: \: \ frac {d_ {r}} {d_ {c }} \:> \: 1 \: + \: \ theta $$
Здесь $ \ theta $ - количество обучающих выборок.
Обновление можно выполнить по следующей формуле -
$ y_ {c} (t \: + \: 1) \: = \: y_ {c} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c} (t)] $ (belongs to different class)
$ y_ {r} (t \: + \: 1) \: = \: y_ {r} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {r} (t)] $ (belongs to same class)
Здесь $ \ alpha $ - скорость обучения.
LVQ2.1
В LVQ2.1 мы возьмем два ближайших вектора, а именно yc1 а также yc2 и условие для окна следующее -
$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) $$
$$ Max \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \: <\ :( 1 \ : + \: \ theta) $$
Обновление можно выполнить по следующей формуле -
$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)
$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)
Здесь $ \ alpha $ - скорость обучения.
LVQ3
В LVQ3 мы возьмем два ближайших вектора, а именно yc1 а также yc2 и условие для окна следующее -
$$ Min \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) (1 \: + \: \ theta) $$
Здесь $ \ theta \ приблизительно 0,2 $
Обновление можно выполнить по следующей формуле -
$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c1} (t)] $ (belongs to different class)
$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c2} (t)] $ (belongs to same class)
Здесь $ \ beta $ - кратное скорости обучения $ \ alpha $ и $\beta\:=\:m \alpha(t)$ для каждого 0.1 < m < 0.5