Ядро

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 1: Строка 1:
== Ядра в машинном обучении ==
== Ядра в машинном обучении ==
-
'''Ядро''' (kernel) в контексте машинного обучения — это функция, задающая меру сходства или скалярное произведение между двумя объектами в некотором, часто неявном, спрямляющем пространстве признаков. Это фундаментальная концепция, позволяющая применять линейные алгоритмы к решению существенно нелинейных задач, избегая прямых вычислений в пространствах высокой размерности (так называемый ''kernel trick'').
+
'''Ядро''' (в контексте [[Машинное обучение|машинного обучения]], не путать с ядрами [[Сверточная нейронная сеть|сверточных нейронных сетей]]) — это функция, которая позволяет применять линейные алгоритмы в неявно заданном нелинейном пространстве признаков, не вычисляя координаты точек в этом пространстве напрямую. Этот подход, известный как '''ядерный трюк''', лежит в основе широкого класса алгоритмов, называемых [[Ядерные методы|ядерными методами]].
-
Не следует путать данное понятие с [[Свёртка (машинное обучение)|ядрами свёртки]] в [[Свёрточная нейронная сеть|свёрточных нейронных сетях]], где термин обозначает матрицу весов фильтра.
+
Формально, ядром называется функция <tex>\kappa: \mathcal{X} \times \mathcal{X} \to \mathbb{R}</tex>, которая для любых двух объектов <tex>x, x' \in \mathcal{X}</tex> эквивалентна скалярному произведению их образов в некотором гильбертовом пространстве признаков <tex>\mathcal{H}</tex>:
-
=== Определение и мотивация ===
+
<tex>\kappa(x, x') = \langle \phi(x), \phi(x') \rangle_{\mathcal{H}}</tex>,
-
Многие классические алгоритмы обучения, такие как [[метод опорных векторов]] (SVM) или [[метод главных компонент]] (PCA), являются линейными. Они хорошо работают, когда данные [[Линейная разделимость|линейно разделимы]], но терпят неудачу в реальных задачах со сложными зависимостями. Классический подход к решению — явное преобразование входных данных <tex>\mathbf{x} \in \mathcal{X}</tex> в новое признаковое пространство <tex>\mathcal{H}</tex> с помощью отображения <tex>\varphi: \mathcal{X} \rightarrow \mathcal{H}</tex>, где данные становятся линейно разделимыми.
+
где <tex>\phi: \mathcal{X} \to \mathcal{H}</tex> — неявное отображение из исходного пространства в пространство признаков.
-
Прямое вычисление <tex>\varphi(\mathbf{x})</tex> может быть вычислительно невозможным, если пространство <tex>\mathcal{H}</tex> имеет огромную или даже бесконечную размерность. Однако многие алгоритмы зависят от данных только через скалярные произведения векторов вида <tex>\langle \varphi(\mathbf{x}), \varphi(\mathbf{x}') \rangle</tex>. Ядро <tex>K</tex> позволяет вычислить это произведение напрямую, не вычисляя сами отображения:
+
=== Исторический контекст и мотивация ===
-
<tex>K(\mathbf{x}, \mathbf{x}') = \langle \varphi(\mathbf{x}), \varphi(\mathbf{x}') \rangle_{\mathcal{H}}</tex>
+
Классические линейные методы, такие как [[Метод опорных векторов|SVM]] или [[Регрессия (математическая статистика)|линейная регрессия]], просты в обучении и интерпретации, но неспособны улавливать сложные нелинейные зависимости в данных. Ручное конструирование нелинейных признаков (например, полиномиальных) может привести к комбинаторному взрыву размерности. Ядра решают эту дилемму, позволяя эффективно работать в пространствах очень высокой или даже бесконечной размерности, избегая ''проклятия размерности'' за счет того, что все вычисления сводятся к операциям с ядровой функцией в исходном пространстве.
-
Такой прием называется '''ядерной уловкой''' (kernel trick).
+
=== Необходимые математические условия ===
-
=== Формальные свойства ===
+
Чтобы функция <tex>\kappa</tex> могла быть ядром, она должна удовлетворять определенным условиям. Важнейшим из них является теорема Мерсера, а также симметричность и положительная полуопределенность.
-
С математической точки зрения, функция <tex>K: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R}</tex> является допустимой для использования в методах, основанных на [[Воспроизводящее ядро гильбертова пространства|гильбертовых пространствах с воспроизводящим ядром]] (RKHS), тогда и только тогда, когда она является симметричной и положительно полуопределенной.
+
'''Ядро Мерсера.''' Функция <tex>\kappa</tex> является ядром Мерсера тогда и только тогда, когда для любого конечного набора точек <tex>\{x_1, \dots, x_n\} \subset \mathcal{X}</tex> [[Матрица Грама|матрица Грама]] <tex>K</tex>, элементы которой <tex>K_{ij} = \kappa(x_i, x_j)</tex>, является симметричной и положительно полуопределенной (т.е. все ее собственные значения неотрицательны).
-
==== Теорема Мерсера ====
+
'''Воспроизводящее ядро гильбертова пространства (RKHS).''' Для каждого ядра Мерсера существует уникальное [[Воспроизводящее ядро гильбертова пространства|воспроизводящее ядро гильбертова пространства]] (Reproducing Kernel Hilbert Space, RKHS) <tex>\mathcal{H}_\kappa</tex>. Ключевое свойство RKHS — ''воспроизводящее свойство'': для любой функции <tex>f \in \mathcal{H}_\kappa</tex> и любого <tex>x \in \mathcal{X}</tex> выполняется <tex>f(x) = \langle f, \kappa(\cdot, x) \rangle_{\mathcal{H}_\kappa}</tex>. Это свойство связывает представление функции в гильбертовом пространстве с вычислением ядра.
-
Для того чтобы функция <tex>K(\mathbf{x}, \mathbf{y})</tex> была ядром, необходимо и достаточно, чтобы для любой конечной выборки <tex>\{\mathbf{x}_1, \dots, \mathbf{x}_n\}</tex> матрица Грама (матрица попарных близостей) <tex>\mathbf{K}</tex>, определяемая как <tex>K_{ij} = K(\mathbf{x}_i, \mathbf{x}_j)</tex>, была положительно полуопределенной. Это условие гарантирует существование отображения <tex>\varphi</tex> и пространства со скалярным произведением, для которых ядро является скалярным произведением.
+
-
=== Основные виды ядер ===
+
=== Распространенные ядра и конструирование ===
-
Выбор ядра определяет геометрию пространства признаков и гипотезы о данных. Наиболее распространены следующие семейства.
+
Выбор ядра критичен для успеха модели. Наиболее распространены следующие семейства:
-
==== Линейное ядро ====
+
* '''Линейное ядро:''' <tex>\kappa(x, x') = \langle x, x' \rangle</tex>. Соответствует отсутствию преобразования, используется как базовый случай.
-
Самое простое ядро, соответствующее отсутствию преобразования.
+
* '''Полиномиальное ядро:''' <tex>\kappa(x, x') = (\gamma \langle x, x' \rangle + r)^d</tex>. Позволяет строить разделяющие поверхности в виде полиномов степени <tex>d</tex>. Параметр <tex>\gamma</tex> масштабирует данные, <tex>r</tex> управляет влиянием старших степеней.
-
<tex>K(\mathbf{x}, \mathbf{x}') = \langle \mathbf{x}, \mathbf{x}' \rangle</tex>
+
* '''Ядро радиальной базисной функции (RBF):''' <tex>\kappa(x, x') = \exp\left(-\gamma \|x - x'\|^2\right)</tex>. Самое популярное нелинейное ядро, соответствующее признаковому пространству бесконечной размерности. Оно основано на расстоянии между объектами и является универсальным аппроксиматором. Параметр <tex>\gamma</tex> определяет радиус влияния одной точки.
-
Используется, когда данные и так почти линейно разделимы, или при очень высокой размерности исходного пространства (например, в задачах классификации текстов).
+
* '''Сигмоидное ядро:''' <tex>\kappa(x, x') = \tanh(\gamma \langle x, x' \rangle + r)</tex>. Исторически связано с нейронными сетями, но его матрица Грама не всегда положительно полуопределена, что ограничивает применение.
 +
* '''Ядра для специальных структур данных:''' Существуют ядра, определенные на строках (string kernels), графах (graph kernels), изображениях (например, ядро пересечения гистограмм) и вероятностных распределениях, которые позволяют применять ядерные методы в этих доменах.
-
==== Полиномиальное ядро ====
+
Ядра можно комбинировать для создания новых:
-
Представляет скалярные произведения в пространстве всех мономов степени до <tex>d</tex>.
+
* '''Сумма:''' <tex>\kappa(x, x') = \kappa_1(x, x') + \kappa_2(x, x')</tex>.
-
<tex>K(\mathbf{x}, \mathbf{x}') = (\gamma \langle \mathbf{x}, \mathbf{x}' \rangle + c_0)^d</tex>
+
* '''Произведение:''' <tex>\kappa(x, x') = \kappa_1(x, x') \cdot \kappa_2(x, x')</tex>.
-
* '''Параметры:''' <tex>d</tex> — степень полинома, <tex>c_0</tex> — свободный член (trade-off между влиянием старших и младших степеней), <tex>\gamma</tex> — коэффициент масштабирования.
+
Эти операции сохраняют свойства положительной полуопределенности.
-
* Хорошо подходит для данных, где зависимости имеют полиномиальный характер, но склонно к переобучению при больших <tex>d</tex>.
+
-
==== Гауссово ядро (Radial Basis Function, RBF) ====
+
=== Ядерный трюк в алгоритмах ===
-
Наиболее популярное универсальное ядро, соответствующее бесконечномерному пространству признаков.
+
-
<tex>K(\mathbf{x}, \mathbf{x}') = \exp\left( -\gamma \|\mathbf{x} - \mathbf{x}'\|^2 \right)</tex>
+
-
* '''Параметр:''' <tex>\gamma > 0</tex> (часто задается как <tex>\gamma = \frac{1}{2\sigma^2}</tex>). Определяет «радиус влияния» одного примера на другой. При малом <tex>\gamma</tex> граница решения получается гладкой (недообучение), при большом — сложной, подстраивающейся под каждый выброс (переобучение).
+
-
* Является универсальным аппроксиматором.
+
-
==== Сигмоидное ядро ====
+
Основная идея заключается в том, что многие линейные алгоритмы можно сформулировать так, чтобы они зависели только от попарных скалярных произведений объектов <tex>\langle x_i, x_j \rangle</tex>. Замена этих произведений на вызов ядра <tex>\kappa(x_i, x_j)</tex> неявно выполняет обучение в пространстве <tex>\mathcal{H}</tex>.
-
<tex>K(\mathbf{x}, \mathbf{x}') = \tanh(\gamma \langle \mathbf{x}, \mathbf{x}' \rangle + c_0)</tex>
+
-
Происходит из теории нейронных сетей. Является допустимым (положительно определенным) только при определенных значениях параметров, что ограничивает его применение на практике по сравнению с RBF.
+
-
==== Ядра для специфических структур данных ====
+
* '''В Методе опорных векторов (SVM):''' Двойственная задача [[SVM]] зависит от скалярных произведений. Применение ядра позволяет строить нелинейные разделяющие поверхности. Решающее правило принимает вид <tex>f(x) = \text{sign}\left(\sum_{i} \alpha_i y_i \kappa(x_i, x) + b\right)</tex>, где <tex>x_i</tex> — опорные векторы. Это классический пример непараметрической ядерной машины.
-
Мощь ядерного подхода проявляется в возможности задавать сходство для невекторных объектов.
+
* '''В Гребневой регрессии:''' Решение [[Гребневая регрессия|гребневой регрессии]] через ядерный трюк приводит к форме <tex>f(x) = Y^\top (K + \lambda I)^{-1} \mathbf{k}(x)</tex>, где <tex>\mathbf{k}(x)</tex> — вектор ядерых близостей объекта <tex>x</tex> ко всем объектам обучающей выборки.
-
* '''Строковые ядра (String kernels):''' Измеряют сходство текстов через количество общих подстрок (спектральное ядро) или расстояние Левенштейна.
+
* '''В Анализе главных компонент (PCA):''' [[Ядерный анализ главных компонент|Ядерный PCA]] выполняет поиск главных компонент в пространстве <tex>\mathcal{H}</tex>, решая задачу на собственные векторы центрированной матрицы Грама.
-
* '''Ядра на графах (Graph kernels):''' Вычисляют сходство графов через случайные блуждания (Random Walk kernel) или сравнение подграфов (Weisfeiler-Lehman kernel).
+
-
* '''Ядра на вероятностных распределениях:''' Например, ядро Фишера (Fisher kernel), использующее градиенты логарифмического правдоподобия порождающей модели.
+
-
=== Конструирование ядер ===
+
=== Практические аспекты: масштабируемость и аппроксимации ===
-
Новые ядра могут быть построены из существующих с помощью набора алгебраических операций, замкнутых относительно свойства положительной определенности:
+
Главный недостаток ядерных методов — их вычислительная сложность. Для построения и хранения матрицы Грама размером <tex>N \times N</tex> требуется <tex>O(N^2)</tex> памяти и до <tex>O(N^3)</tex> операций для ее обращения (как в случае [[Гауссовский процесс|Гауссовских процессов]]), что делает их неприменимыми для больших наборов данных.
-
# '''Сумма:''' <tex>K(\mathbf{x}, \mathbf{y}) = K_1(\mathbf{x}, \mathbf{y}) + K_2(\mathbf{x}, \mathbf{y})</tex>
+
-
# '''Произведение:''' <tex>K(\mathbf{x}, \mathbf{y}) = K_1(\mathbf{x}, \mathbf{y}) \cdot K_2(\mathbf{x}, \mathbf{y})</tex>
+
-
# '''Прямое произведение признаков:''' <tex>K(\mathbf{x}, \mathbf{y}) = f(\mathbf{x}) f(\mathbf{y})</tex> для любой вещественной функции <tex>f</tex>.
+
-
# '''Предельный переход:''' Предел сходящейся последовательности ядер также является ядром.
+
-
=== Применение в алгоритмах ===
+
Для решения этой проблемы разработаны методы аппроксимации:
 +
* '''Случайные признаки (Random Fourier Features):''' Позволяют явно аппроксимировать ядро RBF конечномерным отображением, сводя задачу к линейной со сложностью <tex>O(N)</tex>.
 +
* '''Разложение Нюстрёма (Nyström method):''' Аппроксимирует полную матрицу Грама с помощью низкорангового разложения на основе небольшого подмножества опорных точек.
-
Хотя ядерный трюк наиболее известен по SVM, он пронизывает все области машинного обучения.
+
=== Современное состояние и связь с глубоким обучением ===
-
==== Метод опорных векторов (SVM) ====
+
Хотя пик популярности ядерных методов пришелся на начало 2000-х, они сохраняют важное теоретическое и прикладное значение. Связь с глубинным обучением проявляется в нескольких аспектах:
-
Классическая задача бинарной классификации. Двойственная задача Лагранжа для поиска разделяющей гиперплоскости формулируется исключительно через скалярные произведения. Замена скалярного произведения на ядро <tex>K</tex> дает нелинейный классификатор. Решающее правило приобретает вид:
+
-
<tex>f(\mathbf{x}) = \text{sign}\left( \sum_{i \in \mathcal{S}} \alpha_i y_i K(\mathbf{x}_i, \mathbf{x}) + b \right)</tex>,
+
-
где <tex>\mathcal{S}</tex> — множество опорных векторов.
+
-
==== Ядерный метод главных компонент (Kernel PCA) ====
+
* '''Ядерные методы с множественным ядром (Multiple Kernel Learning, MKL):''' Изучают оптимальные комбинации ядер, что можно рассматривать как предшественника современных архитектур, автоматически настраивающих представления.
-
Позволяет находить нелинейные многообразия в данных. Вместо анализа ковариационной матрицы исходных данных анализируется матрица Грама <tex>\mathbf{K}</tex>. Решение сводится к нахождению собственных векторов центрированной матрицы <tex>\mathbf{K}</tex>, что эквивалентно PCA в пространстве RKHS.
+
* '''Гауссовские процессы:''' Используются в Bayesian Optimization и предоставляют хорошо откалиброванную оценку неопределенности, чего лишены многие нейронные сети.
 +
* '''Нейронные тангенциальные ядра (Neural Tangent Kernel, NTK):''' Теория, связывающая бесконечно широкие нейронные сети с ядерными методами. NTK описывает динамику обучения таких сетей в функциональном пространстве, давая строгое теоретическое обоснование их сходимости.
-
==== Ядерная регрессия (Kernel Ridge Regression) ====
+
Ядерные методы остаются мощным инструментом, когда интерпретируемость и работа с малыми и средними выборками важнее масштабирования на миллиарды примеров.
-
Эквивалентна построению линейной регрессии в пространстве признаков с L2-регуляризацией. Решение в замкнутой форме:
+
-
<tex>\boldsymbol{\alpha} = (\mathbf{K} + \lambda \mathbf{I})^{-1} \mathbf{y}</tex>,
+
-
где <tex>\lambda</tex> — параметр регуляризации. Позволяет строить гладкие нелинейные регрессионные модели.
+
-
==== Гауссовские процессы ====
+
== См. также ==
-
В [[Гауссовский процесс|гауссовских процессах]] ядро (часто называемое ковариационной функцией) определяет гладкость и свойства априорного распределения над функциями. Выбор ядра критичен: RBF-ядро порождает бесконечно дифференцируемые функции, а ядро Матерна позволяет контролировать степень гладкости явно.
+
-
=== Ограничения и практические аспекты ===
+
* [[Метод опорных векторов]]
 +
* [[Гауссовский процесс]]
 +
* [[Воспроизводящее ядро гильбертова пространства]]
 +
* [[Ядерный анализ главных компонент]]
 +
* [[Методы аппроксимации ядер]]
-
Несмотря на элегантность, ядерные методы обладают недостатками:
+
== Литература ==
-
* '''Вычислительная сложность:''' Прямые методы требуют обращения матрицы Грама размером <tex>n \times n</tex>, что приводит к сложности <tex>O(n^3)</tex> и памяти <tex>O(n^2)</tex>. Это делает их неприменимыми к миллионам объектов без аппроксимаций (например, Nyström method, Random Fourier Features).
+
-
* '''Выбор ядра и гиперпараметров:''' Критически важен и обычно осуществляется через [[кросс-валидация|кросс-валидацию]] (grid search). Неудачный выбор <tex>\gamma</tex> в RBF легко ведет к переобучению.
+
-
* '''Интерпретируемость:''' Модель в неявном пространстве RKHS трудно интерпретировать, в отличие от разреженных линейных моделей на исходных признаках.
+
-
=== Литература ===
+
# Schölkopf, B., & Smola, A. J. (2002). ''Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond''. MIT Press.
-
# Schölkopf, B., Smola, A. J. ''Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond''. MIT Press, 2002. (Классический фундаментальный труд).
+
# Bishop, C. M. (2006). ''Pattern Recognition and Machine Learning''. Springer. (Глава 6: Kernel Methods).
-
# Bishop, C. M. ''Pattern Recognition and Machine Learning''. Springer, 2006. Глава 6: Kernel Methods.
+
# Murphy, K. P. (2012). ''Machine Learning: A Probabilistic Perspective''. MIT Press. (Глава 14: Kernels).
-
# Hofmann, T., Schölkopf, B., Smola, A. J. ''Kernel methods in machine learning'' // The Annals of Statistics. — 2008. — Т. 36, 3. — С. 1171–1220.
+
# Hofmann, T., Schölkopf, B., & Smola, A. J. (2008). Kernel methods in machine learning. ''The Annals of Statistics'', 36(3), 1171–1220.
-
# Rasmussen, C. E., Williams, C. K. I. ''Gaussian Processes for Machine Learning''. — MIT Press, 2006.
+
# Rahimi, A., & Recht, B. (2007). Random Features for Large-Scale Kernel Machines. ''Advances in Neural Information Processing Systems (NIPS)''.
-
# Вьюгин, В. В. ''Математические основы теории машинного обучения и прогнозирования''. — МЦНМО, 2013.
+
# Jacot, A., Gabriel, F., & Hongler, C. (2018). Neural Tangent Kernel: Convergence and Generalization in Neural Networks. ''Advances in Neural Information Processing Systems (NeurIPS)''.

Версия 16:24, 17 июля 2026

Содержание

Ядра в машинном обучении

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

Формально, ядром называется функция \kappa: \mathcal{X} \times \mathcal{X} \to \mathbb{R}, которая для любых двух объектов x, x' \in \mathcal{X} эквивалентна скалярному произведению их образов в некотором гильбертовом пространстве признаков \mathcal{H}:

\kappa(x, x') = \langle \phi(x), \phi(x') \rangle_{\mathcal{H}},

где \phi: \mathcal{X} \to \mathcal{H} — неявное отображение из исходного пространства в пространство признаков.

Исторический контекст и мотивация

Классические линейные методы, такие как SVM или линейная регрессия, просты в обучении и интерпретации, но неспособны улавливать сложные нелинейные зависимости в данных. Ручное конструирование нелинейных признаков (например, полиномиальных) может привести к комбинаторному взрыву размерности. Ядра решают эту дилемму, позволяя эффективно работать в пространствах очень высокой или даже бесконечной размерности, избегая проклятия размерности за счет того, что все вычисления сводятся к операциям с ядровой функцией в исходном пространстве.

Необходимые математические условия

Чтобы функция \kappa могла быть ядром, она должна удовлетворять определенным условиям. Важнейшим из них является теорема Мерсера, а также симметричность и положительная полуопределенность.

Ядро Мерсера. Функция \kappa является ядром Мерсера тогда и только тогда, когда для любого конечного набора точек \{x_1, \dots, x_n\} \subset \mathcal{X} матрица Грама K, элементы которой K_{ij} = \kappa(x_i, x_j), является симметричной и положительно полуопределенной (т.е. все ее собственные значения неотрицательны).

Воспроизводящее ядро гильбертова пространства (RKHS). Для каждого ядра Мерсера существует уникальное воспроизводящее ядро гильбертова пространства (Reproducing Kernel Hilbert Space, RKHS) \mathcal{H}_\kappa. Ключевое свойство RKHS — воспроизводящее свойство: для любой функции f \in \mathcal{H}_\kappa и любого x \in \mathcal{X} выполняется f(x) = \langle f, \kappa(\cdot, x) \rangle_{\mathcal{H}_\kappa}. Это свойство связывает представление функции в гильбертовом пространстве с вычислением ядра.

Распространенные ядра и конструирование

Выбор ядра критичен для успеха модели. Наиболее распространены следующие семейства:

  • Линейное ядро: \kappa(x, x') = \langle x, x' \rangle. Соответствует отсутствию преобразования, используется как базовый случай.
  • Полиномиальное ядро: \kappa(x, x') = (\gamma \langle x, x' \rangle + r)^d. Позволяет строить разделяющие поверхности в виде полиномов степени d. Параметр \gamma масштабирует данные, r управляет влиянием старших степеней.
  • Ядро радиальной базисной функции (RBF): \kappa(x, x') = \exp\left(-\gamma \|x - x'\|^2\right). Самое популярное нелинейное ядро, соответствующее признаковому пространству бесконечной размерности. Оно основано на расстоянии между объектами и является универсальным аппроксиматором. Параметр \gamma определяет радиус влияния одной точки.
  • Сигмоидное ядро: \kappa(x, x') = \tanh(\gamma \langle x, x' \rangle + r). Исторически связано с нейронными сетями, но его матрица Грама не всегда положительно полуопределена, что ограничивает применение.
  • Ядра для специальных структур данных: Существуют ядра, определенные на строках (string kernels), графах (graph kernels), изображениях (например, ядро пересечения гистограмм) и вероятностных распределениях, которые позволяют применять ядерные методы в этих доменах.

Ядра можно комбинировать для создания новых:

  • Сумма: \kappa(x, x') = \kappa_1(x, x') + \kappa_2(x, x').
  • Произведение: \kappa(x, x') = \kappa_1(x, x') \cdot \kappa_2(x, x').

Эти операции сохраняют свойства положительной полуопределенности.

Ядерный трюк в алгоритмах

Основная идея заключается в том, что многие линейные алгоритмы можно сформулировать так, чтобы они зависели только от попарных скалярных произведений объектов \langle x_i, x_j \rangle. Замена этих произведений на вызов ядра \kappa(x_i, x_j) неявно выполняет обучение в пространстве \mathcal{H}.

  • В Методе опорных векторов (SVM): Двойственная задача SVM зависит от скалярных произведений. Применение ядра позволяет строить нелинейные разделяющие поверхности. Решающее правило принимает вид f(x) = \text{sign}\left(\sum_{i} \alpha_i y_i \kappa(x_i, x) + b\right), где x_i — опорные векторы. Это классический пример непараметрической ядерной машины.
  • В Гребневой регрессии: Решение гребневой регрессии через ядерный трюк приводит к форме f(x) = Y^\top (K + \lambda I)^{-1} \mathbf{k}(x), где \mathbf{k}(x) — вектор ядерых близостей объекта x ко всем объектам обучающей выборки.
  • В Анализе главных компонент (PCA): Ядерный PCA выполняет поиск главных компонент в пространстве \mathcal{H}, решая задачу на собственные векторы центрированной матрицы Грама.

Практические аспекты: масштабируемость и аппроксимации

Главный недостаток ядерных методов — их вычислительная сложность. Для построения и хранения матрицы Грама размером N \times N требуется O(N^2) памяти и до O(N^3) операций для ее обращения (как в случае Гауссовских процессов), что делает их неприменимыми для больших наборов данных.

Для решения этой проблемы разработаны методы аппроксимации:

  • Случайные признаки (Random Fourier Features): Позволяют явно аппроксимировать ядро RBF конечномерным отображением, сводя задачу к линейной со сложностью O(N).
  • Разложение Нюстрёма (Nyström method): Аппроксимирует полную матрицу Грама с помощью низкорангового разложения на основе небольшого подмножества опорных точек.

Современное состояние и связь с глубоким обучением

Хотя пик популярности ядерных методов пришелся на начало 2000-х, они сохраняют важное теоретическое и прикладное значение. Связь с глубинным обучением проявляется в нескольких аспектах:

  • Ядерные методы с множественным ядром (Multiple Kernel Learning, MKL): Изучают оптимальные комбинации ядер, что можно рассматривать как предшественника современных архитектур, автоматически настраивающих представления.
  • Гауссовские процессы: Используются в Bayesian Optimization и предоставляют хорошо откалиброванную оценку неопределенности, чего лишены многие нейронные сети.
  • Нейронные тангенциальные ядра (Neural Tangent Kernel, NTK): Теория, связывающая бесконечно широкие нейронные сети с ядерными методами. NTK описывает динамику обучения таких сетей в функциональном пространстве, давая строгое теоретическое обоснование их сходимости.

Ядерные методы остаются мощным инструментом, когда интерпретируемость и работа с малыми и средними выборками важнее масштабирования на миллиарды примеров.

См. также

Литература

  1. Schölkopf, B., & Smola, A. J. (2002). Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond. MIT Press.
  2. Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. (Глава 6: Kernel Methods).
  3. Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press. (Глава 14: Kernels).
  4. Hofmann, T., Schölkopf, B., & Smola, A. J. (2008). Kernel methods in machine learning. The Annals of Statistics, 36(3), 1171–1220.
  5. Rahimi, A., & Recht, B. (2007). Random Features for Large-Scale Kernel Machines. Advances in Neural Information Processing Systems (NIPS).
  6. Jacot, A., Gabriel, F., & Hongler, C. (2018). Neural Tangent Kernel: Convergence and Generalization in Neural Networks. Advances in Neural Information Processing Systems (NeurIPS).
Личные инструменты