Классификация с большим запасом ближайшего соседа ( LMNN ) [1] — это статистический алгоритм машинного обучения для метрического обучения . Он изучает псевдометрику, разработанную для классификации k-ближайших соседей . Алгоритм основан на полуопределенном программировании , подклассе выпуклой оптимизации .
Целью контролируемого обучения (точнее классификации) является изучение правила принятия решения, которое может классифицировать экземпляры данных по предопределенным классам. Правило k-ближайших соседей предполагает наличие обучающего набора данных из помеченных экземпляров (т. е. классы известны). Оно классифицирует новый экземпляр данных с классом, полученным из большинства голосов k ближайших (помеченных) обучающих экземпляров. Близость измеряется с помощью предопределенной метрики . Алгоритм Large margin neighbors изучает эту глобальную (псевдо-)метрику контролируемым образом для повышения точности классификации правила k-ближайших соседей.
Основная идея LMNN — изучить псевдометрику, при которой все экземпляры данных в обучающем наборе окружены по крайней мере k экземплярами, имеющими ту же метку класса. Если это достигнуто, ошибка исключения одного элемента (особый случай перекрестной проверки ) сводится к минимуму. Пусть обучающие данные состоят из набора данных , где набор возможных категорий классов равен .
Алгоритм изучает псевдометрику типа
Для того, чтобы быть хорошо определенной, матрица должна быть положительно полуопределенной . Евклидова метрика является частным случаем, где — единичная матрица. Это обобщение часто (ошибочно [ требуется цитата ] ) называют метрикой Махаланобиса .
Рисунок 1 иллюстрирует влияние метрики при изменении . Два круга показывают множество точек с одинаковым расстоянием до центра . В евклидовом случае это множество представляет собой окружность, тогда как при модифицированной метрике (Махаланобиса) оно становится эллипсоидом .
Алгоритм различает два типа специальных точек данных: целевые соседи и самозванцы .
Целевые соседи выбираются перед обучением. Каждый экземпляр имеет совершенно разных целевых соседей в пределах , которые все имеют одну и ту же метку класса . Целевые соседи — это точки данных, которые должны стать ближайшими соседями в соответствии с изученной метрикой . Обозначим набор целевых соседей для точки данных как .
Самозванец точки данных — это другая точка данных с другой меткой класса (т.е. ), которая является одним из ближайших соседей . Во время обучения алгоритм пытается минимизировать количество самозванцев для всех экземпляров данных в обучающем наборе.
Large margin neighbors оптимизирует матрицу с помощью полуопределенного программирования . Цель двоякая: для каждой точки данных целевые соседи должны быть близко , а самозванцы должны быть далеко . Рисунок 1 показывает эффект такой оптимизации на наглядном примере. Изученная метрика заставляет входной вектор окружаться обучающими экземплярами того же класса. Если бы это была тестовая точка, она была бы правильно классифицирована по правилу ближайшего соседа.
Первая цель оптимизации достигается путем минимизации среднего расстояния между экземплярами и их целевыми соседями.
Вторая цель достигается путем штрафования расстояний до самозванцев , которые находятся менее чем на одну единицу дальше, чем целевые соседи (и, следовательно, выталкивают их из локальной окрестности ). Результирующее значение, которое необходимо минимизировать, можно сформулировать как:
С функцией потери шарнира , которая гарантирует, что близость самозванца не штрафуется, когда находится за пределами поля. Поле ровно в одну единицу фиксирует масштаб матрицы . Любой альтернативный выбор приведет к изменению масштаба с коэффициентом .
Окончательная задача оптимизации принимает вид:
Гиперпараметр — это некоторая положительная константа (обычно задаваемая через перекрестную проверку). Здесь переменные (вместе с двумя типами ограничений) заменяют член в функции стоимости. Они играют роль, аналогичную переменным слэка , чтобы поглощать степень нарушений ограничений самозванца. Последнее ограничение гарантирует, что является положительно полуопределенным. Задача оптимизации является примером полуопределенного программирования (SDP). Хотя SDP, как правило, страдают от высокой вычислительной сложности, этот конкретный пример SDP может быть решен очень эффективно из-за базовых геометрических свойств задачи. В частности, большинство ограничений самозванца естественным образом удовлетворяются и не нуждаются в принудительном соблюдении во время выполнения (т. е. набор переменных разрежен). Особенно хорошо подходящим методом решения является метод рабочего набора , который сохраняет небольшой набор ограничений, которые активно соблюдаются, и отслеживает оставшиеся (вероятно, удовлетворенные) ограничения только изредка, чтобы гарантировать правильность.
LMNN был расширен на несколько локальных метрик в статье 2008 года. [2] Это расширение значительно улучшает ошибку классификации, но включает в себя более затратную задачу оптимизации. В своей публикации 2009 года в Journal of Machine Learning Research [3] Вайнбергер и Сол выводят эффективный решатель для полуопределенной программы. Он может выучить метрику для набора рукописных цифр MNIST за несколько часов, включая миллиарды парных ограничений. Реализация Matlab с открытым исходным кодом доступна бесплатно на веб-странице авторов.
Кумал и др. [4] расширили алгоритм, включив локальные инвариантности в многомерные полиномиальные преобразования и улучшенную регуляризацию.