Евгений Борисов
пятница, 7 февраля 2014 г.
Кластеризация или естественная классификация это процесс объединение в группы объектов, обладающих схожими признаками. В отличие от обычной классификации, где количество групп объектов фиксировано и заранее определено набором идеалов, здесь ни группы и ни их количество заранее не определены и формируются в процессе работы системы исходя из определённой меры близости объектов.
Кластеризация применяется для решения многих прикладных задач: от сегментации изображений до экономического прогнозирования и борьбы с электронным мошенничеством.
Существует несколько основных методов разбиения групп объектов на кластеры. В данной статье описан кластеризатор на основе нейронной сети Кохонена.
Искусственная нейронная сеть Кохонена [1] или самоорганизующаяся карта признаков (SOM) была предложена финским исследователем Тойво Кохоненом в начале 1980-х годов.
Она представляет собой двухслойную сеть (рис.1). Каждый нейрон первого (распределительного) слоя соединен со всеми нейронами второго (выходного) слоя, которые расположены в виде двумерной решетки.
Нейроны выходного слоя называются кластерными элементами, их количество определят максимальное количество групп, на которые система может разделить входные данные. Увеличивая количество нейронов второго слоя можно увеличивать детализацию результатов процесса кластеризации.
Система работает по принципу соревнования [2] – нейроны второго слоя соревнуются друг с другом за право наилучшим образом сочетаться с входным вектором сигналов, побеждает тот элемент-нейрон, чей вектор весов ближе всего к входному вектору сигналов. За меру близости двух векторов можно взять квадрат евклидова расстояния(1). Таким образом, каждый входной вектор относится к некоторому кластерному элементу.
| (1) |
Для обучения сети Кохонена используется соревновательный метод[1, 2]. На каждом шаге обучения из исходного набора данных случайно выбирается один вектор. Затем производится поиск нейрона выходного слоя, для которого расстояние между его вектором весов и входным вектором - минимально.
По определённому правилу производится корректировка весов для нейрона-победителя и нейронов из его окрестности, которая задаётся соответствующей функцией окрестности. В данном случае в качестве функцией окрестности была использована функция Гаусса (2).
| (2) |
где u - номер нейрона в двумерной решетке второго слоя сети, для которого
вычисляем значение h;
c - номер нейрона-победителя в двумерной решетке второго слоя сети;
t - параметр времени;
Радиус окрестности h должен уменьшаться с увеличением параметра времени .
Алгоритм обучения сети Кохонена выглядит следующим образом:
| (3) |
где
c - номер (пара индексов) нейрона победителя jm в двумерной решетке второго
слоя;
u - номер (пара индексов) нейрона с вектором весов u в двумерной решетке
второго слоя;
u - вектор весовых коэффициентов связи входного слоя и выходного нейрона
номер u;
- текущий вектор входов сети;
h(u,c,t) - значение функции окрестности для нейрона номер u в момент
времени t;
η - коэффициент скорости обучения;
В качестве критериев останова процесса обучения можно использовать следующие:
Результат работы алгоритма зависит от начальных значений его параметров.
Определим функцию оценки Q качества работы кластеризатора.
c – количество кластеров;Для получения наилучшего результата можно несколько раз выполнить алгоритм кластеризации, после чего выбрать результат с наименьшим значением.
di – среднее внутрикластерное расстояние;
do – среднее межкластерное расстояние;
|
|
|
|