Здається, існує багато алгоритмів машинного навчання, які покладаються на функції ядра. SVM та NN, щоб назвати, але два. Отже, що таке визначення функції ядра та які вимоги до неї мають бути дійсними?
Здається, існує багато алгоритмів машинного навчання, які покладаються на функції ядра. SVM та NN, щоб назвати, але два. Отже, що таке визначення функції ядра та які вимоги до неї мають бути дійсними?
Відповіді:
Для x, y на S певні функції K (x, y) можуть бути виражені як внутрішній добуток (зазвичай в іншому просторі). K часто називають ядром або функцією ядра. Слово ядро використовується по-різному в математиці, але це найбільш поширене використання в машинному навчанні.
Трюк ядра - це спосіб відображення спостережень із загального набору S у внутрішній простір V (оснащений його природною нормою), не потребуючи явного обчислення відображення, сподіваючись, що спостереження набудуть значущої лінійної структури в V Це важливо з точки зору ефективності (обчислення точкових продуктів у дуже великому просторовому просторі дуже швидко) та практичності (ми можемо перетворити лінійні алгоритми ML в нелінійні алгоритми ML).
Щоб функцію K вважати допустимим ядром, вона повинна задовольняти умовам Мерсера . Це на практиці означає, що нам потрібно забезпечити, щоб матриця ядра (обчислення продукту ядра кожної точки даних) завжди була напіввизначеною. Це забезпечить випуклу функцію навчальної мети, дуже важливу властивість.
Від Вільямса, Крістофера К.І. та Карла Едварда Расмуссена. " Гауссові процеси для машинного навчання ". MIT Press 2, вип. 3 (2006). Сторінка 80 .
kernel = функція двох аргументів, які відображають пару входів , в .x ′ ∈ X R
Також ядро = функція ядра.
Ядра, що використовуються в алгоритмах машинного навчання, як правило, задовольняють більше властивостей, таких як позитивний напівфініт.
Збираюся спробувати менш технічне пояснення.
Спочатку почніть з крапкового добутку між двома векторами. Це говорить вам про те, наскільки "схожі" вектори. Якщо вектори представляють точки у вашому наборі даних, точковий виріб повідомляє, чи вони подібні чи ні.
Але в деяких (багатьох) випадках крапковий добуток не є найкращою метрикою подібності. Наприклад:
Отже, замість того, щоб використовувати крапковий продукт, ви використовуєте "ядро", яке є лише функцією, яка займає два моменти і дає вам міру їх подібності. Я не на 100% впевнений, яким технічним умовам повинна відповідати функція, щоб технічно бути ядром, але це ідея.
Дуже приємно, що ядро може допомогти вам поставити свої доменні знання в проблему в тому сенсі, що ви можете сказати, що два моменти однакові через причину xyz, яка надходить у форму, яку ви знаєте про домен.