EM-алгоритм с последовательным добавлением компонент (пример)
Материал из MachineLearning.
(→Постановка задачи) |
|||
Строка 6: | Строка 6: | ||
<ref>Желательно детализировать введение, в частности, указать наиболее известных авторов работавших в данной области, указать задачи, в которых используется алгоритм.</ref> | <ref>Желательно детализировать введение, в частности, указать наиболее известных авторов работавших в данной области, указать задачи, в которых используется алгоритм.</ref> | ||
+ | |||
+ | EM-алгоритм был предложен и исследован М.И.Шлезингером как инструмент для самопроизвольной классификации образов. Область его применения чрезвычайно широка: [[дискриминантный анализ]], [[кластеризация]], восстановление пропусков в данных, обработка сигналов и изображений. | ||
== Постановка задачи == | == Постановка задачи == |
Версия 15:28, 5 мая 2009
|
EM-алгоритм с последовательным добавлением компонент — общий метод[1] нахождения функции плотности распределения объектов [1] . Предполагается, что она имеет вид смеси распределений[1]. В данной статье рассматривается гауссовское распредение выборки, количество гауссианов произвольно[1].
EM-алгоритм был предложен и исследован М.И.Шлезингером как инструмент для самопроизвольной классификации образов. Область его применения чрезвычайно широка: дискриминантный анализ, кластеризация, восстановление пропусков в данных, обработка сигналов и изображений.
Постановка задачи
Задана выборка , в которой = - множество объектов, = - множество ответов. Предполагается, что на множестве объектов задана плотность распределения , представленная в виде смеси гауссиан с параметрами и ,
Задача разделения смеси заключается в том, чтобы, имея выборку случайных и независимых наблюдений из смеси оценить вектор параметров доставляющий максимум функции правдоподобия
Алгоритм отыскания оптимальных параметров
Оптимальные параметры отыскиваются последовательно с помощью EM-алгоритма. Идея заключается во введении вспомогательного вектора скрытых переменных , обладающего двумя замечательными свойствами. С одной стороны, он может быть вычислен, если известны значения вектора параметров , с другой стороны, поиск максимума правдоподобия сильно упрощается, если известны значения скрытых переменных. EM-алгоритм состоит из итерационного повторения двух шагов. На E-шаге вычисляется ожидаемое значение (expectation) вектора скрытых переменных по текущему приближению вектора параметров . На М-шаге решается задача максимизации правдоподобия (maximization) и находится следующее приближение вектора по текущим значениям векторов и .
Если число компонент смеси заранее неизвестно, то применяется EM-алгоритм с последовательным добавлением компонент. Если при каком-либо число неправильно классифицированных объектов превышает допустимое, то увеличивается и повторяется EM(). [1]
- Вход:
Выборка ; - максимальный допустимый разброс правдоподобия объектов; - минимальная длина выборки, по которой можно восстановить плотность; - параметр критерия останова;
- Выход:
- число компонент смеси;
- Алгоритм
1. начальное приближение - одна компонента:
2. для всех
3. выделить объекты с низким правдоподобием
4. Если то выход из цикла по
5. Начальное приближение для компоненты:
6.
Вычислительный эксперимент
Алгоритм тестируется на модельных и реальных данных.
Пример 1
Рассмотрим пример на модельных данных. Выборка состоит из четырех классов. Первый класс представляет собой две гауссианы с диагональной и недиагональной матрицами ковариации, остальные - одна гауссиана. [1]
[X1, Y1] = gengaussdata(150, [0;0], [1/4,1/2]); [X2, Y2] = gengaussdata(150, [4;0], [1 5/6;5/6 1]); [X4, Y4] = gengaussdata(120, [2;4], [1/10;1/10]); [X3, Y3] = gengaussdata(200, [-2,2], [1/3, 1/3]); [X5, Y5] = gengaussdata(200, [2,2], [1.25, 1/20]); X=[X1;X2;X3;X4;X5]; %Y are answers (numbers of classes) Y=[Y1;Y2;Y3+1;Y4+2;Y5+3]; hold off drawdata(X,Y,'*'); %learning algorithm [W,M,Sigma,k,Ytheta] = emlearn(X, Y, [2,40,0.001]) %testing and geting answers from algorithm [Yanswer] = emtest(X, M, Sigma, Ytheta); drawdata(X,Yanswer,'o'); %printing centers of classes according to algorithm decision printcenters(M);
Истинное распределение классов показано на рисунке слева. Одинаковым цветом помечены элементы одного класса. Как можно заметить, некоторые представители "красных", "бирюзовых" и "синих" перемешались.
Качество обучения алгоритма проверяется на той же выборке. На правом рисунке кружками показаны полученные ответы, цвет отвечает за принадлежность к соответствующему классу. Центры классов, отмечены черным кружками. Алгоритм нашел восемь гауссовских распределений вместо четырех, причем одна из красных компонент описывается сразу 4 гауссианами, в то время как остальные компоненты выборки - одной. Этот факт говорит о том, что одна гауссиана плохо приближает данное распределение, и, для уменьшения числа ошибок, следует приблизить её большим числом гауссиан. Алгоритм допустил 16 ошибок, что на выборке из 820 элементов составляет менее 2%.
Пример 2
В качестве второго примера возьмем два плохо разделимых класса.
Благодаря тому, что алгоритм выделил четыре гауссианы в синем классе, некоторые его элементы, далеко забравшиеся в чужой класс, были классифицированы правильно. [1]
Ирисы Фишера
Проверку алгоритма проведем на классической задаче: Ирисы Фишера Объектами являются три типа ирисов: setosa, versicolor, virginica
У каждого объекта есть четыре признака: длина лепестка, ширина лепестка, длина чашелистика, ширина чашелистика. Для удобства визуализации результатов будем использовать первые два признака.
load 'iris2.data' X = iris2(:,[3,4]); Y = [ones([50,1]);2*ones([50,1]);3*ones([50,1])]; hold off drawdata(X,Y,'*'); title('Irises classification') xlabel('petal width, cm'); ylabel('petal length, cm'); legend('Iris Setosa','Iris Versicolour','Iris Virginica','Location','NorthWest'); [W,M,Sigma,k,Ytheta] = emlearn(X, Y, [2,20,0.0005]) [Yanswer] = emtest(X, M, Sigma, Ytheta); drawdata(X,Yanswer,'o')
Алгоритм хорошо отделил ирисы setosa от остальных, но допустил достаточное[1]число ошибок при разделении ирисов versicolor и virginica. Это произошло потому, что алгоритм изначально решал задачу кластеризации и лишь потом задачу классификации, приписывая каждому кластеру номер наиболее хорошо приближаемого им класса. Для разделения [1] последних двух классов можно использовать линейные алгоритмы классификации, либо решать с помощью EM-алгоритма, используя все четыре признака.
Исходный код
Скачать листинги алгоритмов можно здесь EMk.m, emlearn.m, emtest.m
Смотри также
Литература
- [1]
- К. В. Воронцов, Лекции по статистическим (байесовским) алгоритмам классификации
- Bishop C. - Pattern Recognition and Machine Learning (Springer, 2006)
- The on-line textbook: Information Theory, Inference, and Learning Algorithms, by David J.C. MacKay includes simple examples of the EM-algorithm such as clustering using the soft K-means algorithm, and emphasizes the variational view of the EM-algorithm.
- Журавлёв, Юрий Иванович Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики. 1978 Т. 33.С. 5–68.
- Jordan M. I., Xu L. Convergence results for the EM algorithm to mixtures of experts architectures: Tech. Rep. A.I. Memo No. 1458: MIT, Cambridge, MA, 1993.
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |