Изменения

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

Ядро

617 байт добавлено, 03:02, 23 марта 2020
Нет описания правки
[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]
'''Ядерный трюк'''(ангангл.-- ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.
'''Пример''': на первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.
 == Описание == {{Определение =|definition=Функция $K(x,x'):X×X\rightarrow \mathbb{R}$ называется '''ядром'''(англ. kernel), если она может быть представлена в виде $K(x,x')=\langle \varphi(x),\varphi(x')\rangle_H$ при некотором отображении $\varphi(x):X\rightarrow H$,где $H$ {{---}} пространство со скалярным произведением.}}
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.
*обобщение линейных методов на нелинейный случай
** а)с сохранением вычислительной эффективности линейных методов
**б)с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=>меньше переобучение)
*объекты для которых не существует векторныхпредставлений фиксированной длины
* Признаковое пространство высокой размерности
Например все полиномы до степени $M$, для случая Гаусовского ядра - признаковое пространство бесконечной размерности.
* Случай, когда сложно представить объекты векторами фиксированной длины
* Существование естественного определения скалярного произведения
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).
* Скалярное произведение может быть подсчитано эффективно
== Выбор функции ядра ==
'''{{Теорема |id=merser|author=Мерсера''': |statement = Функция $K(x,y)$ является ядром тогда и только тогда, когда она симметрична: $K(x,y)=K(y,x)$ и неотрицательно определена, то есть $\forall g: X \rightarrow \mathbb{R}, \int_X \int_X K(x, x')g(x)g(x')dxdx' \geqslant 0$|proof = }}
Таким образом мы видим, что класс ядер достаточно широк.
== Некоторые часто используемые ядра ==
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.
1. '''Полиномиальное''' ядро (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.
4.'''Строковое''' ядро
Строковые ядра <ref>[https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%BE%D0%B2%D0%BE%D0%B5_%D1%8F%D0%B4%D1%80%D0%BE#%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5 - Строковые ядраСтроковое ядро]</ref> это разлиные вариации различные ядерные функции для вычисления расстояний между двумя строками.
== См. также ==
20
правок

Навигация