- PVSM.RU - https://www.pvsm.ru -
Из предыдущих [1] статей цикла мы уже познакомились с основными терминами машинного обучения и классическими задачами. Настало время разобрать методы решения одной из них — задачи классификации. Сегодня мы разберем метод ближайших соседей.
Конечно, мы помним, что задача классификации формулируется следующим образом:
Нам дано некоторое множество объектов X и конечное множество номеров классов Y. Определено отображение ƒ*:X→Y. Причем известно, что некоторым элементам x∈X соответствуют некие классы из множества C. Задача классификации заключается в нахождении функции ƒ, аппроксимирующей ƒ* на всех элементах из X.
На каждом объекте x из обучающей выборки можно вычислить функцию потерь построенного алгоритма ƒ. Обозначим функцию потерь за L, тогда, Lf(x)=[f*(x)≠f(x)]. Средняя сумма ошибок R (эмпирический риск) на всей обучающей выборке скажет нам о качестве построенного алгоритма. R(ƒ)= (1/N)∑Lƒ(xi), для i от 0 до N. Очевидно, что R нужно минимизировать.
Функционал эмпирического риска R должен минимизироваться. Это даст нам более высокое качество классификации входных данных. Добиться этого не сложно, достаточно использовать один из общеизвестных методов:
Однако, полностью минимизировав R мы получим переобученый алгоритм, который слишком приспособлен к обучающим данным. Но хороший алгоритм классификации должен правильно работать не только на обучающей выборке, но и за ее пределами. Мы введем термин обобщающей способности — способности алгоритма допускать мало ошибок на обучающих данных после обучения. На практике оценить обобщающую способность можно при помощи скользящего контроля по обучающей выборке.
Скользящий контроль позволяет оценить насколько хорошо алгоритм обобщает данные. При этом фиксируется некоторое множество разбиений исходной выборки на обучающую и контрольную. Для каждого из разбиений выполняется настройка алгоритма по обучающей подвыборке и оценивается его средняя ошибка на контрольной. Оценкой скользящего контроля называется средняя по всем разбиениям величина ошибки на контрольных подвыборках. Минимум функции ошибки на скользящем контроле важен для настройки параметров алгоритмов и оценки их качества.
Далее, я буду предполагать, что читатель знаком с университетским курсом теории вероятностей. В случае, если у читателя возникнут вопросы или недопонимания, я готов ответить на них в комментариях.
Сначала введем два определения
В случае задачи классификации гипотезой является принадлежность объекта к некоторому классу. Учитывая принцип минимизации эмпирического риска и метод максимальной апостериорной вероятности, мы можем сказать, что оптимальным классификатором является ƒ(x)=argmax(P(y|x)) для y∈Y. Однако, очевидно, что функцию P(x|y) найти из обучающей выборки невозможно. Нам придется находить ее каким-либо другим образом.
Идея алгоритма классификации с помощью метода ближайших соседей состоит в аппроксимации апостериорной вероятности класса P(y|x) через объекты обучающей выборки и расстояния до них. Алгоритм относится к классу алгоритмов ленивого обучения, т.е он обучается, запоминая обучающую выборку. Для работы алгоритма необходима метрика, то есть, пространство объектов должно быть метрическим [2].
Объекту x присваивается класс, характерный для большинства из k ближайших по метрике объектов ƒ(x)=argmax(∑(ƒ*(ci = y))). Сумма по i от 1 до k, {c1,c2,...,ck} — ближайшие к x объекты, k — параметр, существенно влияющий на качество классификации.
В некоторых случаях максимум может быть выражен неявно. В этом случае к нам приходит на помощь следующая модификация формулы: ƒ(x)=argmax(∑(ƒ*(ci = y)w(i))). Сумма по i от 1 до k, {c1,c2,...,ck} — ближайшие к x объекты, k — параметр, существенно влияющий на качество классификации, w(i) — весовая функция от ранга объекта. Этот алгоритм является более точным и гибким, т.к настройке подлежат k и w(i).
Весовую функцию можно ввести не от ранга, а от расстояния до объекта. В этом случае не нужно выбирать ближайшие объекты — дальние объекты сами по себе будут иметь маленький вес.

Параметр h называется шириной парзеновского окна. Функция K является произвольной положительной невозрастающей функцией.
Входные данные: x — объект, подлежащий классификации, множество пар {ti,ƒ(ti)}i=T — обучающая выборка, параметр k, метрика p.
Выходные данные: класс, определенный для объекта x.
Шаги алгоритма:
Рассмотрим работу алгоритма на примере классификации некоторых абстрактных объектов.
На изображении цветными точками представлены объекты из обучающей выборки. Серые точки алгоритму предстоит классифицировать по 4 классам, выделенным разными цветами.

Результат работы алгоритма:

Рассмотрим задачу, которую решали исследователи Center For Biological and Computation Learning, MIT. На вход классификатору подается обучающая выборка из двух наборов по 350 изображений размером 19x19 пикселей. В первом наборе лица людей, во втором — все что угодно, но не лица. Классификатору предстоит научиться отличать изображения с лицами от изображений без них.
Несколько изображений из обучающей выборки:

В качестве тестовых данных программе подается 50 изображений для классификации. Изображения представляют собой примерно следующий ряд:

При использовании метода k ближайших соседей качество работы алгорима можно представить графиком:

А при использовании метода парзеновских окон качество несколько иное:

Существует несколько методов повышения качества классификации:
Вычислительная сложность алгоритма складывается из сортировки всей обучающей выборки O(nln(n)) и обработки k ближайших объектов O(k). Однако, как правило, большую часть времени работы алгоритма занимает нахождение расстояния между объектами.
Таким образом, мы разобрали принцип минимизации эмперического риска, аппроксимацию апостеорной вероятности ближайшими соседями, узнали что представляют из себя методы ближайших k соседей, ближайших k взвешенных соседей, метод парзеновских окон. Рассмотрели примеры классификации абстрактных объектов и изображений. В следующий раз мы разберем еще один метод классификации.
1. История и введение. [3]
2. Пере/недо-обучение и классические задачи. [1]
3. Метод ближайших соседей в задачах классификации.
В целях улучшения цикла статей прошу принять участие в опросе.
Автор: Mellanore
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/iskusstvenny-j-intellekt/23821
Ссылки в тексте:
[1] предыдущих: http://habrahabr.ru/post/164211/
[2] метрическим: http://ru.wikipedia.org/wiki/Метрическое_пространство
[3] 1. История и введение.: http://habrahabr.ru/post/163675/
[4] Войдите: https://www.pvsm.ru/login/
[5] Источник: http://habrahabr.ru/post/164279/
Нажмите здесь для печати.