Якою функцією може бути ядро?


21

У контексті машинного навчання та розпізнавання шаблонів існує концепція під назвою хитрість ядра . Зіткнувшись із проблемами, коли мене просять визначити, чи може функція бути функцією ядра чи ні, що саме потрібно робити? Чи варто спочатку перевірити, чи вони мають форму трьох-чотирьох функцій ядра, таких як поліном, RBF та Гауссан? Тоді що я повинен робити? Чи варто показати, що це є позитивним? Чи може хтось вирішити приклад, щоб показати покрокове рішення таких проблем? Як, наприклад, є функція ядраf(x)=extx (припустимо , що ми не знаємо , що це Gaussian ядро)?

Відповіді:


27

Як правило, функція є дійсною функцією ядра (у значенні хитрості ядра), якщо вона задовольняє двом ключовим властивостям:k(x,y)

  • симетрія: k(x,y)=k(y,x)

  • позитивна напіввизначеність.

Довідка: Сторінка 4 з http://www.cs.berkeley.edu/~jordan/courses/281B-spring04/lectures/lec3.pdf

Перевірка симетрії зазвичай проста шляхом огляду. Перевірка позитивної напіввизначеності аналітично може бути часом досить волохатою. Я можу придумати дві стратегії перевірки цього факту:

  • (1) Перевірка на предмет представлення "внутрішнього продукту"

Розглянемо . Чи можемо ми знайти деяку таку, що ? Маленька математика показує, що , тому нехай і ми закінчили.k(x,y)=ex+yϕ(a)k(x,y)=ϕ(x)Tϕ(y)ex+y=exeyϕ(a)=ea

Якщо вам пощастить, ваш буде придатний до цього аналізу. Якщо ні, ви можете вдатися до варіанту (2):k()

  • (2) Перевірка позитивної визначеності за допомогою випадкового моделювання.

Розглянемо функцію на -dim векторах , де кожен вектор має бути невід’ємним та дорівнювати одиниці. Це дійсне ядро?k ( x , y ) = D d = 1 хв ( x d , y d ) x , yDk(x,y)=d=1Dmin(xd,yd)x,y

Ми можемо перевірити це за допомогою моделювання. Накресліть набір з випадкових векторів та побудуйте матрицю Грама де . Потім перевірте, чи позитивний (напів-) визначений.{ x i } N i = 1 K K i j = k ( x i , x j ) KN{xi}i=1NKKij=k(xi,xj)K

Найкращий спосіб зробити це чисельно - це знайти власні значення матриці (використовуючи хороші існуючі числові бібліотеки, такі як scipy чи matlab), і переконатися, що найменше власне значення більше або дорівнює 0 . Якщо так, то матриця ОСЧС В іншому випадку, ви НЕ маєте дійсне ядро.K

Зразок коду MATLAB / Octave:

D=5;
N=100;

X = zeros(N,D);
for n = 1:N
   xcur = rand(1,D);
   X(n,:) = xcur/sum(xcur);
end

K = zeros(N,N);
for n = 1:N;  for m = 1:N
    K(n,m) = sum( min( X(n,:), X(m,:) ) );
end;  end;

disp( min( eig(K) ) );

Це дуже простий тест, але будьте уважні . Якщо тест не пройдений, то ви можете бути впевнені , що ядро НЕ діє, але якщо вона проходить ядро ще не може бути дійсним.

Я вважаю, що незалежно від кількості випадкових матриць, які я генерую, і незалежно від і , це ядро ​​проходить тест, тому воно, ймовірно, є напіввизначеним позитивним (насправді це добре відоме ядро перетину гістограми , і це було доведено дійсний).DND

Однак той самий тест на провалюється під час кожної спроби, яку я йому дав (принаймні 20) . Тож це, безумовно, недійсне і досить легко перевірити.k(x,y)=d=1Dmax(xd,yd)

Мені дуже подобається цей другий варіант, тому що це досить швидко та набагато простіше налагодження, ніж складені офіційні докази. Згідно слайду 19 Джітндри Малік , ядро ​​перехрестя було введено в 1991 році, але до 2005 року воно не було правильним. Офіційні докази можуть бути дуже складними!


Як я розумію , це друга умова тільки позитивні підлозі -definiteness. І з того, що мені сказано, це потрібно лише в тому випадку, якщо ви хочете довести збіжність алгоритму SVM. На практиці існує багато ядер, які не є PSD, але добре працюють на практиці.
Пітер

@ Петер: так, ти маєш рацію. Це може бути * напів- * визначено, а не просто визначено. Відредаговано відповідно.
Майк Х'юз

У домені SVM використання ядра PSD забезпечує проблему опуклою, тому оптимізація досягає унікального глобально оптимального рішення. Без PSD-власності немає жодної гарантії, що знайдене рішення знаходиться десь поблизу найкращого. Але так, є кілька ядер (як Sigmoid), які не є PSD, але все ще успішні на практиці. Гідною посиланням на це питання є: perso.lcpc.fr/tarel.jean-philippe/publis/jpt-icme05.pdf .
Майк Х'юз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.