Сферическая модель
Один вид классификации — сеть Кохонена на сфере был описан ранее. Получим формулы для решения задачи (4) при мере близости «минус скалярное произведение» (минус перед скалярным произведением нужен для того, чтобы решать задачу минимизации (1) и (4), поскольку, чем ближе векторы, тем больше скалярное произведение).
Обозначим через xij объекты, принадлежащие i-му классу. Учитывая дополнительное условие на значение ядра — его единичную длину — и применяя метод множителей Лагранжа для решения задач поиска условного экстремума, получим следующую задачу:
(5)
Дифференцируя (5) по каждой из координат ядра и по множителю Лагранжа λ, и приравнивая результат дифференцирования к нулю, получим следующую систему уравнений:
(6)
Выразив из первых уравнений ail и подставив результат в последнее выражение найдем λ, а затем найдем координаты ядра:
(7)
Рис. 8. Решение задачи методом динамических ядер
Подводя итог, можно сказать, что новое положение ядра есть среднее арифметическое объектов данного класса, нормированное на единичную длину.
На рис. 8. Приведено решение второго примера методом обучения сети Кохонена с уменьшением скорости с 0,5, а на рис. 9 — решение той же задачи методом динамических ядер. В качестве первоначального значения ядер выбраны два первых объекта.
Рис. 9. Решение задачи с помощью обучения сети Кохонена со снижением скорости обучения с 0,5. График суммарного изменения разностей координат ядер.
Эта модель описывает наиболее естественную классификацию. Нейрон пространственной сети Кохонена приведен в главе «Описание нейронных сетей». Ядра являются точками в пространстве объектов. Мера близости — квадрат обычного евклидова расстояния. Обучение сети Кохонена ведется непосредственно по формуле (2). Задача (4) имеет вид:
(8)
Дифференцируя (8) по каждой координате ядра и приравнивая результат к нулю получаем следующую систему уравнений:
Преобразуя полученное выражение получаем
, (9)
где |Ki| — мощность i-го класса (число объектов в классе). Таким образом, оптимальное ядро класса — среднее арифметическое всех объектов класса.
Модель линейных зависимостей
Это первая модель, которая может быть решена методом динамических ядер, но не может быть получена с помощью обучения сети Кохонена, поскольку ядра не являются точками в пространстве объектов. Ядрами в данной модели являются прямые, а мерой близости — квадрат расстояния от точки (объекта) до прямой. Прямая в n—мерном пространстве задается парой векторов: ai = (bi, ci). Первый из векторов задает смещение прямой от начала координат, а второй является направляющим вектором прямой. Точки прямой задаются формулой x = b + tc, где t — параметр, пробегающий значения от минус бесконечности до плюс бесконечности. t имеет смысл длины проекции вектора x-b на вектор c. Сама проекция равна tc. При положительном значении вектор проекции сонаправлен с вектором c, при отрицательном — противоположно направлен. При условии, что длина вектора c равна единице, проекция вычисляется как скалярное произведение (x–b,c). В противном случае скалярное произведение необходимо разделить на квадрат длины c. Мера близости вектора (точки) x определяется как квадрат длины разности вектора x и его проекции на прямую. При решении задачи (4) необходимо найти минимум следующей функции:
Продифференцируем целевую функцию по неизвестным tq, cir, bir и приравняем результаты к нулю.
(10)
Выразим из последнего уравнения в (10) bir:
(11)
В качестве bi можно выбрать любую точку прямой. Отметим, что для любого набора векторов xij и любой прямой с ненулевым направляющим вектором ci на прямой найдется такая точка bi, что сумма проекций всех точек на прямую x = b + tc будет равна нулю. Выберем в качестве bi такую точку. Второе слагаемое в правой части (11) является r-й координатой суммы проекций всех точек на искомую прямую и, в силу выбора точки bi равно нулю. Тогда получаем формулу для определения bi:
(12)
Из первых двух уравнений (10) получаем формулы для определения остальных неизвестных:
(13)
Поиск решения задачи (4) для данного вида классификации осуществляется по следующему алгоритму:
1. Вычисляем bi по формуле (12).
2. Вычисляем t по первой формуле в (13).
3. Вычисляем ci по второй формуле в (13).
4. Если изменение значения ci превышает заданную точность, то переходим к шагу 2, в противном случае вычисления закончены.
Определение числа классов
До этого момента вопрос об определении числа классов не рассматривался. Предполагалось, что число классов задано исходя из каких-либо дополнительных соображений. Однако достаточно часто дополнительных соображений нет. В этом случае число классов определяется экспериментально. Но простой перебор различных чисел классов часто неэффективен. В данном разделе будет рассмотрен ряд методов, позволяющих определить «реальное» число классов.
Для иллюстрации будем пользоваться пространственной моделью в двумерном пространстве. На рис, 10 приведено множество точек, которые будут разбиваться на классы.
Идея метода состоит в том, что бы начав с малого числа классов постепенно увеличивать его до тех пор, пока не будет получена «хорошая» классификация. Понятие «хорошая» классификация может быть формализовано по разному. При простом подборе классов как правило оперируют таким понятием, как часто воспроизводящийся класс. Проводится достаточно большая серия классификаций с различным начальным выбором классов. Определяются классы, которые возникают в различных классификациях. Считаются частоты появления таких классов. Критерием получения «истинного» числа классов может служить снижение числа часто повторяющихся классов. То есть при числе классов k число часто повторяющихся классов заметно меньше чем при числе классов k – 1 и k + 1. Начинать следует с двух классов.
Рис. 10. Множества точек для классификации
Рис. 11. Разбиение множества на два (а) и три (б) класса
Рассмотрим два примера. На рис. 10 приведены множества точек, которые будут разбиваться на классы. При каждом числе классов проводится 100 разбиений на классы. В качестве начальных значений ядер выбираются случайные точки.
Сначала рассмотрим множество точек, приведенное на рис. 10а. При классификациях на два класса во всех 100 случаях получаем классификацию, приведенную на рис. 11. Таким образом, получено устойчивое (абсолютно устойчивое) разбиение множества точек на два класса.
В принципе можно на этом остановиться. Однако возможно, что мы имеем дело с иерархической классификацией, то есть каждый (или один) из полученных на данном этапе классов может в дальнейшем разбиться на несколько классов. Для проверки этой гипотезы проведем классификацию на три класса. Во всех 100 случаях получаем одно и то же разбиение, приведенное на рис. 11б. Гипотеза об иерархической классификации получила подтверждение. Предпринимаем попытку дальнейшей детализации — строим разбиение на четыре класса. При этом возникают три различных разбиения, приведенных на рис. 12. При этом разбиение, приведенное на рис. 12в возникает всего два раза из 100. Разбиение, приведенное на рис. 12а — 51 раз, на рис. 12б — 47 раз. Если отбросить редкие классы, то получим набор из семи классов. Один из них воспроизводится 98 раз (красное множество на рис. 12а). Остальные шесть классов образуют две тройки. Каждая тройка состоит из двух классов и класса, являющегося их объединением. Из этого анализа напрашивается вывод о том, что число классов равно пяти. Проверяем это предположение.
Рис. 12. Три варианта классификации на четыре класса