Ядро

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

Перейти к: навигация, поиск

Содержание

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

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

Формально, ядром называется функция \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).
Личные инструменты