Как работает АРТ-1
АРТ-1 — сеть адаптивного резонанса для двоичных векторов. Её описали Гейл Карпентер и Стивен Гроссберг в 1987 году. Сеть сама раскладывает образы по категориям, учитель и правильные ответы ей не нужны. Каждая категория хранится в нейроне слоя распознавания как два вектора весов: B — восходящие веса, по ним нейрон откликается на образ, и T — нисходящие, двоичный прототип категории.
Образы подаются по одному, и каждый проходит три шага.
- Распознавание. Каждый нейрон считает свёртку S = Σ bi·xi. Побеждает нейрон с наибольшим S.
- Сравнение. Победитель возвращает свой прототип T, а слой сравнения оставляет только общие единицы: ci = xi·ti. Если сходство X и C не ниже порога ρп, наступает резонанс. Если ниже — сброс: победитель отключается до конца этого образа.
- Обучение. При резонансе победитель переобучается: T = C, его прототип сужается до общих единиц. Если подходящего нейрона не нашлось, образ запоминается в новом нейроне.
Новые категории появляются через нераспределённый нейрон: все его ti равны 1, а все bi одинаково малы. Если он откликнулся сильнее обученных нейронов, образ становится новой категорией. Так сеть запоминает новое, не разрушая старое.
Формулы
- Нераспределённый нейрон: tн i = 1, bн i = bн < L / (L − 1 + m), где m — размерность образа.
- Распознавание: Sk = Σ bki·xi, у нераспределённого нейрона Sн = bн·Σxi.
- Сравнение: ci = xi·tki.
- Сходство: ρ = k/m, где k — число позиций, в которых X и C совпадают, или ρ = |C|/|X| — число единиц в C, делённое на число единиц в X.
- Переобучение победителя: tki = ci, bki = L·ci / (L − 1 + Σc).
- Новый нейрон: ti = xi, bi = L·xi / (L − 1 + Σx).
L — константа больше 1, обычно 2 или 3. Чем выше порог ρп, тем строже сравнение и тем больше получается категорий.
Что можно настроить
- Мера сходства. По умолчанию ρ = k/m — доля совпавших компонент, нули тоже считаются. В классической АРТ-1 ρ = |C|/|X|. На одних и тех же образах меры могут дать разное число категорий.
- Что делать после сброса. По умолчанию победитель отключается, и побеждает следующий по величине S; если это нераспределённый нейрон, создаётся новая категория. Второй вариант — создать новый нейрон сразу после первого сброса: так алгоритм упрощают в некоторых курсах.
- bн. Если поле пустое, берётся наибольшая дробь 1/n меньше L/(L − 1 + m). При m = 10 и L = 2 граница равна 2/11, значит bн = 1/6.
- Ничья. При равных S побеждает нейрон с меньшим номером, а обученный нейрон опережает нераспределённый. В решении такие места отмечены.
Дроби считаются точно: 2/7 остаётся 2/7, поэтому сравнение с порогом и выбор победителя не зависят от округления.
Пример
Пять образов 2×5, кодировка по строкам слева направо: X1 = 11011 10101, X2 = 00100 11111, X3 = 11111 10101, X4 = 00100 01111, X5 = 10100 11111. Порог ρп = 0,85, L = 2, bн = 1/6.
X1 и X2 становятся категориями 1 и 2. X3 откликается сильнее всего на нейрон 1 (S1 = 7/4), сходство 9/10 = 0,9 — резонанс, прототип не меняется. X4 попадает в категорию 2 с ρ = 1, и её прототип сужается до X4. X5 сначала выбирает нейрон 2 (S2 = 5/3), но сходство 0,8 ниже порога — сброс. Следующим идёт нераспределённый нейрон (Sн = 7/6), и X5 становится категорией 3. Этот пример загружает кнопка «Пример».