Анализ компонентов соседства
Часть серии о |
Машинное обучение и интеллектуальный анализ данных |
---|
Анализ компонентов соседства — это контролируемый метод обучения для классификации многомерных данных в отдельные классы в соответствии с заданной метрикой расстояния над данными. Функционально он служит тем же целям, что и алгоритм K-ближайших соседей , и напрямую использует родственную концепцию, называемую стохастическими ближайшими соседями .
Определение
[ редактировать ]Анализ компонентов соседства направлен на «изучение» метрики расстояния путем нахождения линейного преобразования входных данных таким образом, чтобы средняя эффективность классификации с исключением одного (LOO) была максимальной в преобразованном пространстве. Ключевая идея алгоритма заключается в том, что матрица соответствующее преобразованию можно найти, определив дифференцируемую целевую функцию для с последующим использованием итеративного решателя, такого как сопряженный градиентный спуск . Одним из преимуществ этого алгоритма является то, что количество классов можно определить как функцию , с точностью до скалярной константы. Таким образом, такое использование алгоритма решает проблему выбора модели .
Объяснение
[ редактировать ]Чтобы определить , мы определяем целевую функцию, описывающую точность классификации в преобразованном пространстве, и пытаемся определить так, что эта целевая функция максимизируется.
Классификация с исключением одного (LOO)
[ редактировать ]Рассмотрите возможность прогнозирования метки класса одной точки данных путем консенсуса ее участников. -ближайшие соседи с заданной метрикой расстояния. Это известно как классификация с исключением одного . Однако множество ближайших соседей может быть совершенно другим после прохождения всех точек через линейное преобразование. В частности, набор соседей точки может претерпевать дискретные изменения в ответ на плавные изменения элементов , подразумевая, что любая целевая функция на основе соседей точки будет кусочно-постоянной и, следовательно, недифференцируемой .
Решение
[ редактировать ]Мы можем решить эту трудность, используя подход, основанный на стохастическом градиентном спуске . Вместо того, чтобы рассматривать -ближайших соседей в каждой преобразованной точке в LOO-классификации, мы будем рассматривать весь преобразованный набор данных как стохастических ближайших соседей . Мы определяем их, используя функцию softmax квадрата евклидова расстояния между данной точкой LOO-классификации и каждой другой точкой в преобразованном пространстве:
Вероятность правильной классификации точки данных - вероятность отнесения точек каждого из своих соседей к одному и тому же классу :
где - вероятность классификации соседа точки .
Определите целевую функцию, используя классификацию LOO, на этот раз используя весь набор данных в качестве ближайших стохастических соседей:
Обратите внимание, что при стохастических ближайших соседях консенсусный класс для одной точки - это ожидаемое значение класса точки в пределе бесконечного числа выборок, взятых из распределения по ее соседям. то есть: . Таким образом, предсказанный класс представляет собой аффинную комбинацию классов всех остальных точек, взвешенную функцией softmax для каждой точки. где теперь это весь преобразованный набор данных.
Такой выбор целевой функции предпочтителен, поскольку она дифференцируема по (обозначаем ):
Получение градиента для означает, что его можно найти с помощью итеративного решателя, такого как сопряженный градиентный спуск . Обратите внимание, что на практике большинство самых внутренних членов градиента имеют незначительный вклад из-за быстро уменьшающегося вклада удаленных от точки интереса точек. Это означает, что внутренняя сумма градиента может быть усечена, что приводит к разумному времени вычислений даже для больших наборов данных.
Альтернативная формулировка
[ редактировать ]«Максимализация эквивалентно минимизации -расстояние между предсказанным распределением классов и истинным распределением классов (т. е.: где вызванный все равны 1). Естественной альтернативой является КЛ-дивергенция, которая порождает следующую целевую функцию и градиент:» (Гольдбергер 2005).
На практике оптимизация использование этой функции имеет тенденцию давать такие же результаты производительности, как и оригинал.
История и предыстория
[ редактировать ]Анализ компонентов соседства был разработан Джейкобом Голдбергером, Сэмом Роуэйсом, Русланом Салахудиновым и Джеффом Хинтоном на факультете компьютерных наук Университета Торонто в 2004 году.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Дж. Голдбергер, Г. Хинтон, С. Роуэйс, Р. Салахутдинов. (2005) Анализ компонентов соседства . Достижения в области нейронных систем обработки информации. 17, 513–520, 2005.
Внешние ссылки
[ редактировать ]Программное обеспечение
[ редактировать ]- Библиотека MLPACK содержит C++. реализацию
- инка ( C++ )
- » от scikit-learn Реализация « NeighborhoodComponentsAnaанализ ( Python )