Понимание реализации Dlib Kernel

Я начинаю использовать dlib, и мне трудно понять, как реализованы ядра. Я начал с алгоритма k-kmeans, так как знаю этот метод кластеризации. Однако я не могу понять, где ядро ​​вычисляется. Входные данные представляют собой матрицу (не ядро), и алгоритм никогда не преобразует данные в ядро.
Я ожидал бы класс ядра, возвращающий квадратную матрицу. Но я не видел ничего подобного!
Я хочу использовать dlib для реализации алгоритма кластеризации с использованием ядер, и dlib кажется хорошим решением для этого. У кого-нибудь есть документация о том, как это реализовано, или можете объяснить мне, как это работает?

Спасибо за вашу помощь!

1

Решение

Ядро — это просто функция, которая берет две входные выборки и выводит одно число. Так что да, иногда вы увидите код, который затем вычисляет матрицу N на N всех возможных выходных данных функции ядра для N выборок. Тем не менее, это несколько наивная стратегия реализации, поскольку она требует О (N ^ 2) ОЗУ. Так что большинство реальных программных методов для ядра используют какую-то стратегию отложенного анализа или кэширования, чтобы избежать этой проблемы.

В реализации ядра K-means в dlib это делается с помощью kcentroid объект. Внутри kcentroid вы можете видеть, что он запускает функцию ядра в нескольких местах и ​​выполняет все «функции ядра». Вы можете прочитать документацию для kcentroid, чтобы понять, что он делает. Хотя, если вы только начинаете работать с методами ядра, вам действительно нужно получить книгу на эту тему. Я настоятельно рекомендую выбрать один из них:

  • Бернхард Шлкопф и Александр Дж. Смола: обучение с ядрами: машины опорных векторов, регуляризация, оптимизация и не только
  • Ядерные методы анализа паттернов Джона Шоу-Тейлора и Нелло Кристианини
1

Другие решения

Для набора из N точек данных ядро ​​обычно задается матрицей NxN, чья (i, j) -я запись дает значение ядра между точкой данных i и точкой данных j. Это работает для методов ядра, пока матрица симметрична и положительно определена, что гарантированно верно для истинного ядра.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector