Ядро
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
== Ядра в машинном обучении == | == Ядра в машинном обучении == | ||
| - | '''Ядро''' ( | + | '''Ядро''' (в контексте [[Машинное обучение|машинного обучения]], не путать с ядрами [[Сверточная нейронная сеть|сверточных нейронных сетей]]) — это функция, которая позволяет применять линейные алгоритмы в неявно заданном нелинейном пространстве признаков, не вычисляя координаты точек в этом пространстве напрямую. Этот подход, известный как '''ядерный трюк''', лежит в основе широкого класса алгоритмов, называемых [[Ядерные методы|ядерными методами]]. |
| - | + | Формально, ядром называется функция <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>, |
| - | + | где <tex>\phi: \mathcal{X} \to \mathcal{H}</tex> — неявное отображение из исходного пространства в пространство признаков. | |
| - | + | === Исторический контекст и мотивация === | |
| - | + | Классические линейные методы, такие как [[Метод опорных векторов|SVM]] или [[Регрессия (математическая статистика)|линейная регрессия]], просты в обучении и интерпретации, но неспособны улавливать сложные нелинейные зависимости в данных. Ручное конструирование нелинейных признаков (например, полиномиальных) может привести к комбинаторному взрыву размерности. Ядра решают эту дилемму, позволяя эффективно работать в пространствах очень высокой или даже бесконечной размерности, избегая ''проклятия размерности'' за счет того, что все вычисления сводятся к операциям с ядровой функцией в исходном пространстве. | |
| - | + | === Необходимые математические условия === | |
| - | + | Чтобы функция <tex>\kappa</tex> могла быть ядром, она должна удовлетворять определенным условиям. Важнейшим из них является теорема Мерсера, а также симметричность и положительная полуопределенность. | |
| - | + | '''Ядро Мерсера.''' Функция <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>\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> | + | * '''Ядро радиальной базисной функции (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>\kappa(x, x') = \kappa_1(x, x') + \kappa_2(x, x')</tex>. | |
| - | + | * '''Произведение:''' <tex>\kappa(x, x') = \kappa_1(x, x') \cdot \kappa_2(x, x')</tex>. | |
| - | * ''' | + | Эти операции сохраняют свойства положительной полуопределенности. |
| - | + | ||
| - | ==== | + | === Ядерный трюк в алгоритмах === |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Основная идея заключается в том, что многие линейные алгоритмы можно сформулировать так, чтобы они зависели только от попарных скалярных произведений объектов <tex>\langle x_i, x_j \rangle</tex>. Замена этих произведений на вызов ядра <tex>\kappa(x_i, x_j)</tex> неявно выполняет обучение в пространстве <tex>\mathcal{H}</tex>. | |
| - | <tex> | + | |
| - | + | ||
| - | + | * '''В Методе опорных векторов (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> ко всем объектам обучающей выборки. | |
| - | * ''' | + | * '''В Анализе главных компонент (PCA):''' [[Ядерный анализ главных компонент|Ядерный PCA]] выполняет поиск главных компонент в пространстве <tex>\mathcal{H}</tex>, решая задачу на собственные векторы центрированной матрицы Грама. |
| - | * ''' | + | |
| - | * ''' | + | |
| - | === | + | === Практические аспекты: масштабируемость и аппроксимации === |
| - | + | Главный недостаток ядерных методов — их вычислительная сложность. Для построения и хранения матрицы Грама размером <tex>N \times N</tex> требуется <tex>O(N^2)</tex> памяти и до <tex>O(N^3)</tex> операций для ее обращения (как в случае [[Гауссовский процесс|Гауссовских процессов]]), что делает их неприменимыми для больших наборов данных. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Для решения этой проблемы разработаны методы аппроксимации: | |
| + | * '''Случайные признаки (Random Fourier Features):''' Позволяют явно аппроксимировать ядро RBF конечномерным отображением, сводя задачу к линейной со сложностью <tex>O(N)</tex>. | ||
| + | * '''Разложение Нюстрёма (Nyström method):''' Аппроксимирует полную матрицу Грама с помощью низкорангового разложения на основе небольшого подмножества опорных точек. | ||
| - | + | === Современное состояние и связь с глубоким обучением === | |
| - | + | Хотя пик популярности ядерных методов пришелся на начало 2000-х, они сохраняют важное теоретическое и прикладное значение. Связь с глубинным обучением проявляется в нескольких аспектах: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * '''Ядерные методы с множественным ядром (Multiple Kernel Learning, MKL):''' Изучают оптимальные комбинации ядер, что можно рассматривать как предшественника современных архитектур, автоматически настраивающих представления. | |
| - | + | * '''Гауссовские процессы:''' Используются в Bayesian Optimization и предоставляют хорошо откалиброванную оценку неопределенности, чего лишены многие нейронные сети. | |
| + | * '''Нейронные тангенциальные ядра (Neural Tangent Kernel, NTK):''' Теория, связывающая бесконечно широкие нейронные сети с ядерными методами. NTK описывает динамику обучения таких сетей в функциональном пространстве, давая строгое теоретическое обоснование их сходимости. | ||
| - | + | Ядерные методы остаются мощным инструментом, когда интерпретируемость и работа с малыми и средними выборками важнее масштабирования на миллиарды примеров. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== | + | == См. также == |
| - | + | ||
| - | + | * [[Метод опорных векторов]] | |
| + | * [[Гауссовский процесс]] | ||
| + | * [[Воспроизводящее ядро гильбертова пространства]] | ||
| + | * [[Ядерный анализ главных компонент]] | ||
| + | * [[Методы аппроксимации ядер]] | ||
| - | + | == Литература == | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | # 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''. | + | # Bishop, C. M. (2006). ''Pattern Recognition and Machine Learning''. Springer. (Глава 6: Kernel Methods). |
| - | # Bishop, C. M. ''Pattern Recognition and Machine Learning''. | + | # Murphy, K. P. (2012). ''Machine Learning: A Probabilistic Perspective''. MIT Press. (Глава 14: Kernels). |
| - | # Hofmann, T., Schölkopf, B., Smola, A. J. | + | # Hofmann, T., Schölkopf, B., & Smola, A. J. (2008). Kernel methods in machine learning. ''The Annals of Statistics'', 36(3), 1171–1220. |
| - | # | + | # Rahimi, A., & Recht, B. (2007). Random Features for Large-Scale Kernel Machines. ''Advances in Neural Information Processing Systems (NIPS)''. |
| - | # | + | # 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
Содержание |
Ядра в машинном обучении
Ядро (в контексте машинного обучения, не путать с ядрами сверточных нейронных сетей) — это функция, которая позволяет применять линейные алгоритмы в неявно заданном нелинейном пространстве признаков, не вычисляя координаты точек в этом пространстве напрямую. Этот подход, известный как ядерный трюк, лежит в основе широкого класса алгоритмов, называемых ядерными методами.
Формально, ядром называется функция , которая для любых двух объектов
эквивалентна скалярному произведению их образов в некотором гильбертовом пространстве признаков
:
,
где — неявное отображение из исходного пространства в пространство признаков.
Исторический контекст и мотивация
Классические линейные методы, такие как SVM или линейная регрессия, просты в обучении и интерпретации, но неспособны улавливать сложные нелинейные зависимости в данных. Ручное конструирование нелинейных признаков (например, полиномиальных) может привести к комбинаторному взрыву размерности. Ядра решают эту дилемму, позволяя эффективно работать в пространствах очень высокой или даже бесконечной размерности, избегая проклятия размерности за счет того, что все вычисления сводятся к операциям с ядровой функцией в исходном пространстве.
Необходимые математические условия
Чтобы функция могла быть ядром, она должна удовлетворять определенным условиям. Важнейшим из них является теорема Мерсера, а также симметричность и положительная полуопределенность.
Ядро Мерсера. Функция является ядром Мерсера тогда и только тогда, когда для любого конечного набора точек
матрица Грама
, элементы которой
, является симметричной и положительно полуопределенной (т.е. все ее собственные значения неотрицательны).
Воспроизводящее ядро гильбертова пространства (RKHS). Для каждого ядра Мерсера существует уникальное воспроизводящее ядро гильбертова пространства (Reproducing Kernel Hilbert Space, RKHS) . Ключевое свойство RKHS — воспроизводящее свойство: для любой функции
и любого
выполняется
. Это свойство связывает представление функции в гильбертовом пространстве с вычислением ядра.
Распространенные ядра и конструирование
Выбор ядра критичен для успеха модели. Наиболее распространены следующие семейства:
- Линейное ядро:
. Соответствует отсутствию преобразования, используется как базовый случай.
- Полиномиальное ядро:
. Позволяет строить разделяющие поверхности в виде полиномов степени
. Параметр
масштабирует данные,
управляет влиянием старших степеней.
- Ядро радиальной базисной функции (RBF):
. Самое популярное нелинейное ядро, соответствующее признаковому пространству бесконечной размерности. Оно основано на расстоянии между объектами и является универсальным аппроксиматором. Параметр
определяет радиус влияния одной точки.
- Сигмоидное ядро:
. Исторически связано с нейронными сетями, но его матрица Грама не всегда положительно полуопределена, что ограничивает применение.
- Ядра для специальных структур данных: Существуют ядра, определенные на строках (string kernels), графах (graph kernels), изображениях (например, ядро пересечения гистограмм) и вероятностных распределениях, которые позволяют применять ядерные методы в этих доменах.
Ядра можно комбинировать для создания новых:
- Сумма:
.
- Произведение:
.
Эти операции сохраняют свойства положительной полуопределенности.
Ядерный трюк в алгоритмах
Основная идея заключается в том, что многие линейные алгоритмы можно сформулировать так, чтобы они зависели только от попарных скалярных произведений объектов . Замена этих произведений на вызов ядра
неявно выполняет обучение в пространстве
.
- В Методе опорных векторов (SVM): Двойственная задача SVM зависит от скалярных произведений. Применение ядра позволяет строить нелинейные разделяющие поверхности. Решающее правило принимает вид
, где
— опорные векторы. Это классический пример непараметрической ядерной машины.
- В Гребневой регрессии: Решение гребневой регрессии через ядерный трюк приводит к форме
, где
— вектор ядерых близостей объекта
ко всем объектам обучающей выборки.
- В Анализе главных компонент (PCA): Ядерный PCA выполняет поиск главных компонент в пространстве
, решая задачу на собственные векторы центрированной матрицы Грама.
Практические аспекты: масштабируемость и аппроксимации
Главный недостаток ядерных методов — их вычислительная сложность. Для построения и хранения матрицы Грама размером требуется
памяти и до
операций для ее обращения (как в случае Гауссовских процессов), что делает их неприменимыми для больших наборов данных.
Для решения этой проблемы разработаны методы аппроксимации:
- Случайные признаки (Random Fourier Features): Позволяют явно аппроксимировать ядро RBF конечномерным отображением, сводя задачу к линейной со сложностью
.
- Разложение Нюстрёма (Nyström method): Аппроксимирует полную матрицу Грама с помощью низкорангового разложения на основе небольшого подмножества опорных точек.
Современное состояние и связь с глубоким обучением
Хотя пик популярности ядерных методов пришелся на начало 2000-х, они сохраняют важное теоретическое и прикладное значение. Связь с глубинным обучением проявляется в нескольких аспектах:
- Ядерные методы с множественным ядром (Multiple Kernel Learning, MKL): Изучают оптимальные комбинации ядер, что можно рассматривать как предшественника современных архитектур, автоматически настраивающих представления.
- Гауссовские процессы: Используются в Bayesian Optimization и предоставляют хорошо откалиброванную оценку неопределенности, чего лишены многие нейронные сети.
- Нейронные тангенциальные ядра (Neural Tangent Kernel, NTK): Теория, связывающая бесконечно широкие нейронные сети с ядерными методами. NTK описывает динамику обучения таких сетей в функциональном пространстве, давая строгое теоретическое обоснование их сходимости.
Ядерные методы остаются мощным инструментом, когда интерпретируемость и работа с малыми и средними выборками важнее масштабирования на миллиарды примеров.
См. также
- Метод опорных векторов
- Гауссовский процесс
- Воспроизводящее ядро гильбертова пространства
- Ядерный анализ главных компонент
- Методы аппроксимации ядер
Литература
- Schölkopf, B., & Smola, A. J. (2002). Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond. MIT Press.
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. (Глава 6: Kernel Methods).
- Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press. (Глава 14: Kernels).
- Hofmann, T., Schölkopf, B., & Smola, A. J. (2008). Kernel methods in machine learning. The Annals of Statistics, 36(3), 1171–1220.
- Rahimi, A., & Recht, B. (2007). Random Features for Large-Scale Kernel Machines. Advances in Neural Information Processing Systems (NIPS).
- Jacot, A., Gabriel, F., & Hongler, C. (2018). Neural Tangent Kernel: Convergence and Generalization in Neural Networks. Advances in Neural Information Processing Systems (NeurIPS).

