Ядро
Материал из MachineLearning.
(Новая: '''Ядро''' (англ. kernel) в контексте машинного обучения — это функция, позволяющая вып...) |
|||
| Строка 1: | Строка 1: | ||
| - | + | == Ядра в машинном обучении == | |
| - | + | '''Ядро''' (kernel) в контексте машинного обучения — это функция, задающая меру сходства или скалярное произведение между двумя объектами в некотором, часто неявном, спрямляющем пространстве признаков. Это фундаментальная концепция, позволяющая применять линейные алгоритмы к решению существенно нелинейных задач, избегая прямых вычислений в пространствах высокой размерности (так называемый ''kernel trick''). | |
| - | + | ||
| - | + | Не следует путать данное понятие с [[Свёртка (машинное обучение)|ядрами свёртки]] в [[Свёрточная нейронная сеть|свёрточных нейронных сетях]], где термин обозначает матрицу весов фильтра. | |
| - | == Определение == | + | === Определение и мотивация === |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Многие классические алгоритмы обучения, такие как [[метод опорных векторов]] (SVM) или [[метод главных компонент]] (PCA), являются линейными. Они хорошо работают, когда данные [[Линейная разделимость|линейно разделимы]], но терпят неудачу в реальных задачах со сложными зависимостями. Классический подход к решению — явное преобразование входных данных <tex>\mathbf{x} \in \mathcal{X}</tex> в новое признаковое пространство <tex>\mathcal{H}</tex> с помощью отображения <tex>\varphi: \mathcal{X} \rightarrow \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> | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Такой прием называется '''ядерной уловкой''' (kernel trick). | |
| - | === | + | === Формальные свойства === |
| - | + | ||
| - | + | С математической точки зрения, функция <tex>K: \mathcal{X} \times \mathcal{X} \rightarrow \mathbb{R}</tex> является допустимой для использования в методах, основанных на [[Воспроизводящее ядро гильбертова пространства|гильбертовых пространствах с воспроизводящим ядром]] (RKHS), тогда и только тогда, когда она является симметричной и положительно полуопределенной. | |
| - | + | ||
| - | + | ||
| - | === | + | ==== Теорема Мерсера ==== |
| - | + | Для того чтобы функция <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>K(\mathbf{x}, \mathbf{x}') = \langle \mathbf{x}, \mathbf{x}' \rangle</tex> | ||
| + | Используется, когда данные и так почти линейно разделимы, или при очень высокой размерности исходного пространства (например, в задачах классификации текстов). | ||
| - | == | + | ==== Полиномиальное ядро ==== |
| - | + | Представляет скалярные произведения в пространстве всех мономов степени до <tex>d</tex>. | |
| - | + | <tex>K(\mathbf{x}, \mathbf{x}') = (\gamma \langle \mathbf{x}, \mathbf{x}' \rangle + c_0)^d</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> граница решения получается гладкой (недообучение), при большом — сложной, подстраивающейся под каждый выброс (переобучение). | |
| - | * | + | * Является универсальным аппроксиматором. |
| - | == Литература == | + | ==== Сигмоидное ядро ==== |
| - | # Schölkopf, B., | + | <tex>K(\mathbf{x}, \mathbf{x}') = \tanh(\gamma \langle \mathbf{x}, \mathbf{x}' \rangle + c_0)</tex> |
| - | # Bishop, C. M | + | Происходит из теории нейронных сетей. Является допустимым (положительно определенным) только при определенных значениях параметров, что ограничивает его применение на практике по сравнению с RBF. |
| - | # | + | |
| - | # Rasmussen, C. E., | + | ==== Ядра для специфических структур данных ==== |
| - | # | + | Мощь ядерного подхода проявляется в возможности задавать сходство для невекторных объектов. |
| + | * '''Строковые ядра (String kernels):''' Измеряют сходство текстов через количество общих подстрок (спектральное ядро) или расстояние Левенштейна. | ||
| + | * '''Ядра на графах (Graph kernels):''' Вычисляют сходство графов через случайные блуждания (Random Walk kernel) или сравнение подграфов (Weisfeiler-Lehman kernel). | ||
| + | * '''Ядра на вероятностных распределениях:''' Например, ядро Фишера (Fisher kernel), использующее градиенты логарифмического правдоподобия порождающей модели. | ||
| + | |||
| + | === Конструирование ядер === | ||
| + | |||
| + | Новые ядра могут быть построены из существующих с помощью набора алгебраических операций, замкнутых относительно свойства положительной определенности: | ||
| + | # '''Сумма:''' <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>. | ||
| + | # '''Предельный переход:''' Предел сходящейся последовательности ядер также является ядром. | ||
| + | |||
| + | === Применение в алгоритмах === | ||
| + | |||
| + | Хотя ядерный трюк наиболее известен по SVM, он пронизывает все области машинного обучения. | ||
| + | |||
| + | ==== Метод опорных векторов (SVM) ==== | ||
| + | Классическая задача бинарной классификации. Двойственная задача Лагранжа для поиска разделяющей гиперплоскости формулируется исключительно через скалярные произведения. Замена скалярного произведения на ядро <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) ==== | ||
| + | Позволяет находить нелинейные многообразия в данных. Вместо анализа ковариационной матрицы исходных данных анализируется матрица Грама <tex>\mathbf{K}</tex>. Решение сводится к нахождению собственных векторов центрированной матрицы <tex>\mathbf{K}</tex>, что эквивалентно PCA в пространстве RKHS. | ||
| + | |||
| + | ==== Ядерная регрессия (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. ''Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond''. — MIT Press, 2002. (Классический фундаментальный труд). | ||
| + | # Bishop, C. M. ''Pattern Recognition and Machine Learning''. — Springer, 2006. — Глава 6: Kernel Methods. | ||
| + | # Hofmann, T., Schölkopf, B., Smola, A. J. ''Kernel methods in machine learning'' // The Annals of Statistics. — 2008. — Т. 36, № 3. — С. 1171–1220. | ||
| + | # Rasmussen, C. E., Williams, C. K. I. ''Gaussian Processes for Machine Learning''. — MIT Press, 2006. | ||
| + | # Вьюгин, В. В. ''Математические основы теории машинного обучения и прогнозирования''. — МЦНМО, 2013. | ||
Версия 16:22, 17 июля 2026
Содержание |
Ядра в машинном обучении
Ядро (kernel) в контексте машинного обучения — это функция, задающая меру сходства или скалярное произведение между двумя объектами в некотором, часто неявном, спрямляющем пространстве признаков. Это фундаментальная концепция, позволяющая применять линейные алгоритмы к решению существенно нелинейных задач, избегая прямых вычислений в пространствах высокой размерности (так называемый kernel trick).
Не следует путать данное понятие с ядрами свёртки в свёрточных нейронных сетях, где термин обозначает матрицу весов фильтра.
Определение и мотивация
Многие классические алгоритмы обучения, такие как метод опорных векторов (SVM) или метод главных компонент (PCA), являются линейными. Они хорошо работают, когда данные линейно разделимы, но терпят неудачу в реальных задачах со сложными зависимостями. Классический подход к решению — явное преобразование входных данных в новое признаковое пространство
с помощью отображения
, где данные становятся линейно разделимыми.
Прямое вычисление может быть вычислительно невозможным, если пространство
имеет огромную или даже бесконечную размерность. Однако многие алгоритмы зависят от данных только через скалярные произведения векторов вида
. Ядро
позволяет вычислить это произведение напрямую, не вычисляя сами отображения:
Такой прием называется ядерной уловкой (kernel trick).
Формальные свойства
С математической точки зрения, функция является допустимой для использования в методах, основанных на гильбертовых пространствах с воспроизводящим ядром (RKHS), тогда и только тогда, когда она является симметричной и положительно полуопределенной.
Теорема Мерсера
Для того чтобы функция была ядром, необходимо и достаточно, чтобы для любой конечной выборки
матрица Грама (матрица попарных близостей)
, определяемая как
, была положительно полуопределенной. Это условие гарантирует существование отображения
и пространства со скалярным произведением, для которых ядро является скалярным произведением.
Основные виды ядер
Выбор ядра определяет геометрию пространства признаков и гипотезы о данных. Наиболее распространены следующие семейства.
Линейное ядро
Самое простое ядро, соответствующее отсутствию преобразования.
Используется, когда данные и так почти линейно разделимы, или при очень высокой размерности исходного пространства (например, в задачах классификации текстов).
Полиномиальное ядро
Представляет скалярные произведения в пространстве всех мономов степени до .
- Параметры:
— степень полинома,
— свободный член (trade-off между влиянием старших и младших степеней),
— коэффициент масштабирования.
- Хорошо подходит для данных, где зависимости имеют полиномиальный характер, но склонно к переобучению при больших
.
Гауссово ядро (Radial Basis Function, RBF)
Наиболее популярное универсальное ядро, соответствующее бесконечномерному пространству признаков.
- Параметр:
(часто задается как
). Определяет «радиус влияния» одного примера на другой. При малом
граница решения получается гладкой (недообучение), при большом — сложной, подстраивающейся под каждый выброс (переобучение).
- Является универсальным аппроксиматором.
Сигмоидное ядро
Происходит из теории нейронных сетей. Является допустимым (положительно определенным) только при определенных значениях параметров, что ограничивает его применение на практике по сравнению с RBF.
Ядра для специфических структур данных
Мощь ядерного подхода проявляется в возможности задавать сходство для невекторных объектов.
- Строковые ядра (String kernels): Измеряют сходство текстов через количество общих подстрок (спектральное ядро) или расстояние Левенштейна.
- Ядра на графах (Graph kernels): Вычисляют сходство графов через случайные блуждания (Random Walk kernel) или сравнение подграфов (Weisfeiler-Lehman kernel).
- Ядра на вероятностных распределениях: Например, ядро Фишера (Fisher kernel), использующее градиенты логарифмического правдоподобия порождающей модели.
Конструирование ядер
Новые ядра могут быть построены из существующих с помощью набора алгебраических операций, замкнутых относительно свойства положительной определенности:
- Сумма:
- Произведение:
- Прямое произведение признаков:
для любой вещественной функции
.
- Предельный переход: Предел сходящейся последовательности ядер также является ядром.
Применение в алгоритмах
Хотя ядерный трюк наиболее известен по SVM, он пронизывает все области машинного обучения.
Метод опорных векторов (SVM)
Классическая задача бинарной классификации. Двойственная задача Лагранжа для поиска разделяющей гиперплоскости формулируется исключительно через скалярные произведения. Замена скалярного произведения на ядро дает нелинейный классификатор. Решающее правило приобретает вид:
,
где
— множество опорных векторов.
Ядерный метод главных компонент (Kernel PCA)
Позволяет находить нелинейные многообразия в данных. Вместо анализа ковариационной матрицы исходных данных анализируется матрица Грама . Решение сводится к нахождению собственных векторов центрированной матрицы
, что эквивалентно PCA в пространстве RKHS.
Ядерная регрессия (Kernel Ridge Regression)
Эквивалентна построению линейной регрессии в пространстве признаков с L2-регуляризацией. Решение в замкнутой форме:
,
где
— параметр регуляризации. Позволяет строить гладкие нелинейные регрессионные модели.
Гауссовские процессы
В гауссовских процессах ядро (часто называемое ковариационной функцией) определяет гладкость и свойства априорного распределения над функциями. Выбор ядра критичен: RBF-ядро порождает бесконечно дифференцируемые функции, а ядро Матерна позволяет контролировать степень гладкости явно.
Ограничения и практические аспекты
Несмотря на элегантность, ядерные методы обладают недостатками:
- Вычислительная сложность: Прямые методы требуют обращения матрицы Грама размером
, что приводит к сложности
и памяти
. Это делает их неприменимыми к миллионам объектов без аппроксимаций (например, Nyström method, Random Fourier Features).
- Выбор ядра и гиперпараметров: Критически важен и обычно осуществляется через кросс-валидацию (grid search). Неудачный выбор
в RBF легко ведет к переобучению.
- Интерпретируемость: Модель в неявном пространстве RKHS трудно интерпретировать, в отличие от разреженных линейных моделей на исходных признаках.
Литература
- Schölkopf, B., Smola, A. J. Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond. — MIT Press, 2002. (Классический фундаментальный труд).
- Bishop, C. M. Pattern Recognition and Machine Learning. — Springer, 2006. — Глава 6: Kernel Methods.
- Hofmann, T., Schölkopf, B., Smola, A. J. Kernel methods in machine learning // The Annals of Statistics. — 2008. — Т. 36, № 3. — С. 1171–1220.
- Rasmussen, C. E., Williams, C. K. I. Gaussian Processes for Machine Learning. — MIT Press, 2006.
- Вьюгин, В. В. Математические основы теории машинного обучения и прогнозирования. — МЦНМО, 2013.

