Участник:Urandon/Строгий алгоритм С средних (Hard C-Means, HCM): различия между версиями
Urandon (обсуждение | вклад) |
Urandon (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
Входные данные: набор векторов <math>\{u_k\}_{k=1}^{N}</math> пространства <math>\mathbb{R}^n</math> и количество кластеров <math>C</math>. | Входные данные: набор векторов <math>\{u_k\}_{k=1}^{N}</math> пространства <math>\mathbb{R}^n</math> и количество кластеров <math>C</math>. | ||
− | Выходные данные: рядовая матрица <math>M</math>, содержащая информацию о принадлежности объектов к кластерам | + | Выходные данные: рядовая матрица <math>M</math>, содержащая информацию о принадлежности объектов к кластерам: |
− | + | <math> | |
− | + | m_{ik} = \begin{cases} | |
+ | 1, & \|u_k - c_i \| \leq \|u_k - c_j\|^2 \forall i \neq j | ||
+ | 0, & \text{otherwise} | ||
+ | \end{cases} | ||
+ | </math> | ||
== Вычислительное ядро алгоритма == | == Вычислительное ядро алгоритма == |
Версия 15:59, 20 января 2017
В первой части описываются собственно алгоритмы и их свойства, а вторая посвящена описанию особенностей их программной реализации с учетом конкретных программно-аппаратных платформ. Такое деление на части сделано для того, чтобы машинно-независимые свойства алгоритмов, которые определяют качество их реализации на параллельных вычислительных системах, были бы выделены и описаны отдельно от множества вопросов, связанных с последующими этапами программирования алгоритмов и исполнения результирующих программ.
Содержание
- 1 Свойства и структура алгоритмов
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
- 2 Программная реализация алгоритма
- 2.1 Особенности реализации последовательного алгоритма
- 2.2 Локальность данных и вычислений
- 2.3 Возможные способы и особенности параллельной реализации алгоритма
- 2.4 Масштабируемость алгоритма и его реализации
- 2.5 Динамические характеристики и эффективность реализации алгоритма
- 2.6 Выводы для классов архитектур
- 2.7 Существующие реализации алгоритма
- 3 Литература
1 Свойства и структура алгоритмов
1.1 Общее описание алгоритма
Строгий алгоритм C средних (Hard C-Means; Jang, Sun and Mizutani, 1997[1]) пытается определить центры кластеров в многомерном признаковом пространстве[2]. Цель заключается в том, что бы сопоставить каждой точке признакового пространства соответствующий кластер.
Назначение алгоритма заключается в кластеризации больших наборов числовых данных представленных признаковыми описаниями объектов. Достоинства алгоритма в классе алгоритмов, решающих данную задачу, -- лёгкость реализации и вычислительная простота. Недостатки же -- явное задание количества кластеров, отсутствие гарантии нахождения оптимального решения.
На вход алгоритму задаются точки конечномерного признакового пространства и количество кластеров. Так же могут задаваться пороговые значения, использующиеся в критерии останова алгоритма: величина целевого функционала, скорость изменения функционала при выполнении основного цикла алгоритма. Целевой функционал алгоритма -- среднее внутрикластерное расстояние.
На первом шаге алгоритма производится инициализация центров кластеров. Это может быть осуществлено путём выбора случайных значений. Затем выполняется основной цикл алгоритма:
- Расчёт рядовой матрицы, сопоставляющей каждую точку признакового пространства с ближайшим к ней кластерному центру. Иначе это можно рассматривать как оптимизацию целевого функционала по принадлежности точек к кластерам
- Расчёт целевого функционала. Проверка условий критерия останова и выход из цикла в случае его выполнения.
- Пересчёт кластерных центров как центров масс точек кластера. Представляет собой оптимизацию целевого функционала по координатам центров кластеров.
Алгоритм гарантирует монотонное невозрастание целевой функционала, следовательно, сходимость к локальному минимуму.
1.2 Математическое описание алгоритма
Входные данные: набор векторов [math]\{u_k\}_{k=1}^{N}[/math] пространства [math]\mathbb{R}^n[/math] и количество кластеров [math]C[/math].
Выходные данные: рядовая матрица [math]M[/math], содержащая информацию о принадлежности объектов к кластерам: [math] m_{ik} = \begin{cases} 1, & \|u_k - c_i \| \leq \|u_k - c_j\|^2 \forall i \neq j 0, & \text{otherwise} \end{cases} [/math]
1.3 Вычислительное ядро алгоритма
1.4 Макроструктура алгоритма
1.5 Схема реализации последовательного алгоритма
1.6 Последовательная сложность алгоритма
1.7 Информационный граф
1.8 Ресурс параллелизма алгоритма
1.9 Входные и выходные данные алгоритма
1.10 Свойства алгоритма
2 Программная реализация алгоритма
2.1 Особенности реализации последовательного алгоритма
2.2 Локальность данных и вычислений
2.3 Возможные способы и особенности параллельной реализации алгоритма
2.4 Масштабируемость алгоритма и его реализации
2.5 Динамические характеристики и эффективность реализации алгоритма
2.6 Выводы для классов архитектур
2.7 Существующие реализации алгоритма
3 Литература
- ↑ Jang, J.-S. R., Sun, C.-T. and Mizutani, E. (1997). Neuro-Fuzzy and Soft Computing, number isbn 0-13-261066-3 in Matlab Curriculum Series, Prentice Hall, Upper Saddle River, NJ, USA.
- ↑ Jan Jantzen (1998). Neurofuzzy Modelling.