<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=256331</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=256331"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/256331"/>
		<updated>2026-06-11T16:46:38Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73213</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73213"/>
				<updated>2020-03-23T16:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов]].&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответствует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Использование ядер в коде ==&lt;br /&gt;
&lt;br /&gt;
В библиотеке языка Python {{---}} sklearn.clustering&amp;lt;ref&amp;gt;https://scikit-learn.org/stable/modules/classes.html#module-sklearn.cluster - sklearn.cluster&amp;lt;/ref&amp;gt;, есть функции и классы которые используют ядра для кластеризации, например SVM(Support vector machines).&lt;br /&gt;
&lt;br /&gt;
* Подключаем библиотеки:&lt;br /&gt;
  '''import''' svm model&lt;br /&gt;
  '''from''' sklearn '''import''' svm&lt;br /&gt;
&lt;br /&gt;
* Создаём классификатор svm {{---}} Classifier. В данном случае используется линейное ядро. Так же можно использовать 'polynomial' и 'rbf' [[Ядро#Некоторые часто используемые ядра|(см. используемые ядра)]].&lt;br /&gt;
&lt;br /&gt;
  clf = svm.SVC(kernel='linear')&lt;br /&gt;
&lt;br /&gt;
*Тренируем модель  используя заданные сеты и смотрим на предсказанные ответы:&lt;br /&gt;
  clf.'''fit'''(X_train, y_train)&lt;br /&gt;
  y_pred = clf.'''predict'''(X_test)&lt;br /&gt;
&lt;br /&gt;
Кроме того, у этой функции так же присутствует гипперпараметры {{---}} '''регуляризация''' (англ. regularization), который отвечает за размер штрафа и гамма, которая отвечает за приближенность результирующей функций к датасету. Здесь нужно помнить, что при больших значениях гамма возможно [[Переобучение|переобучение]].&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
#[https://www.datacamp.com/community/tutorials/svm-classification-scikit-learn-python#kernels datacamp.com — Support Vector Machines with Scikit-learn]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73211</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73211"/>
				<updated>2020-03-23T15:27:24Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов]].&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответствует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Использование ядер в коде ==&lt;br /&gt;
&lt;br /&gt;
В библиотеке языка Python {{---}} sklearn.clustering&amp;lt;ref&amp;gt;https://scikit-learn.org/stable/modules/classes.html#module-sklearn.cluster - sklearn.cluster&amp;lt;/ref&amp;gt;, есть функции и классы которые используют ядра для кластеризации. &lt;br /&gt;
&lt;br /&gt;
* Подключаем библиотеки:&lt;br /&gt;
  '''import''' numpy '''as''' np&lt;br /&gt;
  '''from''' sklearn.datasets '''import''' make_blobs&lt;br /&gt;
  '''from''' sklearn.cluster '''import''' mean_shiftU&lt;br /&gt;
&lt;br /&gt;
* Генерируем данные:&lt;br /&gt;
&lt;br /&gt;
  centers = [['''1''', '''1'''], ['''-1''', '''-1'''], ['''1''', '''-1''']]&lt;br /&gt;
  X, _ = make_blobs(n_samples='''10000''', centers=centers, cluster_std='''0.6''')&lt;br /&gt;
&lt;br /&gt;
* Посчтитаем кластеризацию с помощью MeanShift&amp;lt;ref&amp;gt;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift - Meanshift documentaion&amp;lt;/ref&amp;gt;, находим разделяющуу полосу, добавляя в качестве первого парамента значение для пропускной способности ядра: &lt;br /&gt;
&lt;br /&gt;
  bandwidth = estimate_bandwidth(X, quantile='''0.2''', n_samples='''500''')&lt;br /&gt;
  ms = MeanShift(bandwidth=bandwidth, bin_seeding='''True''')&lt;br /&gt;
  ms.'''fit'''(X)&lt;br /&gt;
  labels = ms.labels_&lt;br /&gt;
  cluster_centers = ms.cluster_centers_&lt;br /&gt;
  labels_unique = np.'''unique'''(labels)&lt;br /&gt;
  n_clusters_ = '''len'''(labels_unique)&lt;br /&gt;
  print(&amp;quot;number of estimated clusters : %d&amp;quot; % n_clusters_)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73210</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73210"/>
				<updated>2020-03-23T15:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов]].&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответствует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Использование ядер в коде ==&lt;br /&gt;
&lt;br /&gt;
В библиотеке языка Python {{---}} sklearn.clustering&amp;lt;ref&amp;gt;https://scikit-learn.org/stable/modules/classes.html#module-sklearn.cluster - sklearn.cluster&amp;lt;/ref&amp;gt;, есть функции и классы которые используют ядра для кластеризации. &lt;br /&gt;
&lt;br /&gt;
* Подключаем библиотеки:&lt;br /&gt;
  '''import''' numpy '''as''' np&lt;br /&gt;
  '''from''' sklearn.datasets '''import''' make_blobs&lt;br /&gt;
  '''from''' sklearn.cluster '''import''' mean_shiftU&lt;br /&gt;
&lt;br /&gt;
* Генерируем данные:&lt;br /&gt;
&lt;br /&gt;
  centers = [['''1''', '''1'''], ['''-1''', '''-1'''], ['''1''', '''-1''']]&lt;br /&gt;
  X, _ = make_blobs(n_samples='''10000''', centers=centers, cluster_std='''0.6''')&lt;br /&gt;
&lt;br /&gt;
* Посчтитаем кластеризацию с помощью MeanShift&amp;lt;ref&amp;gt;https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift - Meanshift documentaion&amp;lt;/ref&amp;gt;, находим разделяющуу полосу, добавляя в качестве первого парамента значение для пропускной способности ядра: &lt;br /&gt;
&lt;br /&gt;
  bandwidth = estimate_bandwidth(X, quantile='''0.2''', n_samples='''500''')&lt;br /&gt;
  ms = MeanShift(bandwidth=bandwidth, bin_seeding='''True''')&lt;br /&gt;
  ms.fit(X)&lt;br /&gt;
  labels = ms.labels_&lt;br /&gt;
  cluster_centers = ms.cluster_centers_&lt;br /&gt;
  labels_unique = np.unique(labels)&lt;br /&gt;
  n_clusters_ = '''len'''(labels_unique)&lt;br /&gt;
  print(&amp;quot;number of estimated clusters : %d&amp;quot; % n_clusters_)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73200</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73200"/>
				<updated>2020-03-23T12:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответствует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73199</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73199"/>
				<updated>2020-03-23T12:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличие от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73198</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73198"/>
				<updated>2020-03-23T12:13:13Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов (локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторных представлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки, множества, картинки, тексты, графы, 3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие, как строки (число совместно встречающихся подстрок) или множества (напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой, лучшие из известных на данный момент решений основываются на генетических алгоритмах&amp;lt;ref&amp;gt;[https://www.researchgate.net/publication/221080223_An_Evolutionary_Approach_to_Automatic_Kernel_Construction - T.Howley, M.G.Madden — An Evolutionary Approach to Automatic Kernel Construction]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Polynomial_kernel - Polynomial kernel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF (Radial basis function)&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Radial_basis_function_kernel - RBF]&amp;lt;/ref&amp;gt; $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера (не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
* [[Линейная регрессия]]&lt;br /&gt;
* [[Логистическая регрессия]]&lt;br /&gt;
* [[Регуляризация]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;br /&gt;
[[Категория: Регрессия]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73195</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73195"/>
				<updated>2020-03-23T11:30:23Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3. '''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4. '''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73194</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73194"/>
				<updated>2020-03-23T11:29:39Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве $y$ выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF $K(x, x') = exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73193</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73193"/>
				<updated>2020-03-23T11:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1. Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ {{---}} функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73192</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73192"/>
				<updated>2020-03-23T11:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений размерностей.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра {{---}} признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73191</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73191"/>
				<updated>2020-03-23T11:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': На первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений D.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра - признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73190</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73190"/>
				<updated>2020-03-23T11:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': на первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом[[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
* Обобщение линейных методов на нелинейный случай:&lt;br /&gt;
&lt;br /&gt;
а) с сохранением вычислительной эффективности линейных методов.&lt;br /&gt;
&lt;br /&gt;
б) с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение).&lt;br /&gt;
&lt;br /&gt;
* Объекты для которых не существует векторныхпредставлений фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
* Ускоренное вычисление скалярных произведений для высоких значений D.&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
* Вычислительно сложно проверять принадлежность функции ядру.&lt;br /&gt;
&lt;br /&gt;
* Поиск подходящего ядра экспоненциально сложен из-за их большого многообразия.&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности.&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра - признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины.&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения.&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно.&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое'''&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73169</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73169"/>
				<updated>2020-03-23T00:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк''' (англ. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
'''Пример''': на первой картинке справа можно увидеть, что 2 класса не разделимы линейно, но после преобразования появляется разделяющая плоскость.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
Функция $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$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом [[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
*обобщение линейных методов на нелинейный случай&lt;br /&gt;
&lt;br /&gt;
а)с сохранением вычислительной эффективности линейных методов&lt;br /&gt;
&lt;br /&gt;
б)с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение)&lt;br /&gt;
&lt;br /&gt;
*объекты для которых не существует векторныхпредставлений фиксированной длины&lt;br /&gt;
&lt;br /&gt;
*ускоренное вычисление скалярных произведений для высоких значений D&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
*вычислительно сложно проверять принадлежность функции ядру&lt;br /&gt;
&lt;br /&gt;
*поиск подходящего ядра экспоненциально сложен из-за их большого многообразия&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени $M$, для случая Гаусовского ядра - признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$).&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
{{Теорема&lt;br /&gt;
|id=merser&lt;br /&gt;
|author=Мерсера&lt;br /&gt;
|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$ &lt;br /&gt;
|proof = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' (англ. linear) $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' (англ. polynomial) $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' (англ. gaussian) ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' (англ. sigmoid) ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера(не выполняет условие теоремы), но при этом на практике работает хорошо.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое''' ядро&lt;br /&gt;
&lt;br /&gt;
Строковые ядра &amp;lt;ref&amp;gt;[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 - Строковое ядро]&amp;lt;/ref&amp;gt; это различные ядерные функции для вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Kernel2_3.png&amp;diff=73168</id>
		<title>Файл:Kernel2 3.png</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Kernel2_3.png&amp;diff=73168"/>
				<updated>2020-03-22T23:25:14Z</updated>
		
		<summary type="html">&lt;p&gt;256331: Точки в двухмерном пространстве линейно не разделимы. Но при переходе в трёхмерное появляется разделяющая плоскость.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Точки в двухмерном пространстве линейно не разделимы. Но при переходе в трёхмерное появляется разделяющая плоскость.&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73167</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73167"/>
				<updated>2020-03-22T23:23:57Z</updated>
		
		<summary type="html">&lt;p&gt;256331: Добавлено 2 пунткта, изменена картинка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel2_3.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк'''(анг.-- ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Определение ==&lt;br /&gt;
Функция $K(x,x'):X×X\rightarrow \mathbb{R}$ называется '''ядром''', если она может быть представлена в виде $K(x,x')=\langle \varphi(x),\varphi(x')\rangle_H$ при некотором отображении $\varphi(x):X\rightarrow H$,где $H$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом [[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
'''Преимущества'''&lt;br /&gt;
&lt;br /&gt;
*обобщение линейных методов на нелинейный случай&lt;br /&gt;
&lt;br /&gt;
** с сохранением вычислительной эффективности линейных методов&lt;br /&gt;
&lt;br /&gt;
**с сохранением преимуществ линейных методов(локальный оптимум является глобальным, нет локальных оптимумов=&amp;gt;меньше переобучение)&lt;br /&gt;
&lt;br /&gt;
*объекты для которых не существует векторныхпредставлений фиксированной длины&lt;br /&gt;
&lt;br /&gt;
*ускоренное вычисление скалярных произведений для высоких значений D&lt;br /&gt;
&lt;br /&gt;
'''Недостатки'''&lt;br /&gt;
&lt;br /&gt;
*вычислительно сложно проверять принадлежность функции ядру&lt;br /&gt;
&lt;br /&gt;
*поиск подходящего ядра экспоненциально сложен из-за их большого многообразия&lt;br /&gt;
&lt;br /&gt;
== Характерные случаи применения ==&lt;br /&gt;
* Признаковое пространство высокой размерности&lt;br /&gt;
&lt;br /&gt;
Например все полиномы до степени M, для случая Гаусовского ядра - признаковое пространство бесконечной размерности.&lt;br /&gt;
&lt;br /&gt;
* Случай, когда сложно представить объекты векторами фиксированной длины&lt;br /&gt;
&lt;br /&gt;
Такие как строки, множества, картинки, тексты, графы,3D-структуры и т.д.&lt;br /&gt;
&lt;br /&gt;
* Существование естественного определения скалярного произведения&lt;br /&gt;
&lt;br /&gt;
Такие как строки(число совместно встречающихся подстрок) или множества(напр. для множеств $S_1$ и $S_2$ ядром будет являться $K(S_1, S_2) = 2^{|S_1\cap S_2|}$)&lt;br /&gt;
&lt;br /&gt;
* Скалярное произведение может быть подсчитано эффективно&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
    '''Теорема Мерсера''': Функция $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$&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые ядра ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' ядро $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
3.'''Сигмоидальное''' ядро $tangh (\gamma \langle x, x'\rangle + r)$ &lt;br /&gt;
&lt;br /&gt;
В отличии от предыдущих 3-х не является ядром Мерсера.&lt;br /&gt;
&lt;br /&gt;
4.'''Строковое''' ядро&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref&amp;gt;[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 - Строковые ядра]&amp;lt;/ref&amp;gt; это разлиные вариации вычисления расстояний между двумя строками.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/7/78/Kitov-ML-09-Kernel_methods.pdf www.machinelearning.ru — Виктор Китов Ядерные методы]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73144</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73144"/>
				<updated>2020-03-22T21:05:19Z</updated>
		
		<summary type="html">&lt;p&gt;256331: Исправлены опечатки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel3_2.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк'''(анг.-- ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Определение ==&lt;br /&gt;
Функция $K(x,x'):X×X\rightarrow \mathbb{R}$ называется '''ядром''', если она может быть представлена в виде $K(x,x')=\langle \varphi(x),\varphi(x')\rangle_H$ при некотором отображении $\varphi(x):X\rightarrow H$,где $H$ {{---}} пространство со скалярным произведением.&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$. Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта информация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом [[Метод опорных векторов (SVM) | опорных векторов ]].&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
    '''Теорема Мерсера''': Функция $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$&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая (обычно по критерию скользящего контроля). Такое решение не будет оптимальным, и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x')$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ где $z$ - функция ядра {{---}} являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые функции ==&lt;br /&gt;
&lt;br /&gt;
0. '''Линейное''' $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1. '''Полиномиальное''' ядро $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2. '''Гаусово''' ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73082</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73082"/>
				<updated>2020-03-22T00:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;256331: Добавлено описание ядер, подредактированы формулы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel3_2.png|500px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк'''(анг. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Определение ==&lt;br /&gt;
Функция $K(x,x'):X×X\rightarrow \mathbb{R}$ называется '''ядром''', если она может быть представлена в виде $K(x,x')=\langle \varphi(x),\varphi(x')\rangle_H$ при некотором отображении $\varphi(x):X\rightarrow H$,где H {{---}} пространство со скалярным произведением.&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$ Более того, можно вообще не строить спрямляющее пространство $H$ в явном виде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объектов. Во многих практических задачах объекты изначально задаются информацией об их попарном взаимоотношении, например, отношении сходства. Если эта инфор-мация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяющей аксиомам скалярного произведения, то задача может решаться методом [[Метод опорных векторов (SVM) | SVM ]].&lt;br /&gt;
&lt;br /&gt;
== Выбор функции ядра ==&lt;br /&gt;
    '''Теорема Мерсера''': Функция 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$&lt;br /&gt;
&lt;br /&gt;
Таким образом мы видим, что класс ядер достаточно широк.&lt;br /&gt;
&lt;br /&gt;
Проверка неотрицательной определённости функции в реальных задачах может быть сложной. Чаще всего ограничиваются перебором конечного числа функций, про которые известно, что они являются ядрами. Среди них выбирается лучшая(обычно по критерию скользящего контроля). Такое решение не будет оптимальным и на сегодняшний день проблема выбора ядра, оптимального для данной конкретной задачи, остаётся открытой.&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение $K(x,x′) =\psi(x)\psi(x')${{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами $K(x,x')=\alpha_1K_1(x,x') +\alpha_2K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядра $K_0$ является ядром: $K(x,x')=K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Если $s:X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int_Xs(x,z)s(x',z)dz$ является ядром.&lt;br /&gt;
&lt;br /&gt;
8. Функция вида $K(x,x') = k(x−x)$ является ядром тогда и только тогда, когда Фурье-образ $F[k](\omega) = (2\pi)^{\frac{n}{2}}\int_Xe^{−i\langle\omega,x\rangle }k(x)dx$ неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядра $K_0$ и произвольной функции $f:R\rightarrow R$, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и $f(z) =\frac{1}{1−z}$ от ядра являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые функции ==&lt;br /&gt;
&lt;br /&gt;
0.Линейное $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
Используется в алгоритме [[Метод опорных векторов (SVM) | SVM ]] по умолчанию.&lt;br /&gt;
&lt;br /&gt;
1.Полиномиальное ядро $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
Используется когда необходимо получить полином $p(y)$, где в качестве y выступает скалярное произведение $\langle x, x' \rangle$. Поскольку в конструктивных возможностях у нас есть умножение ядер, умножение на коэффициент и сложение, то любой многочлен так же является ядром.&lt;br /&gt;
&lt;br /&gt;
2.Гаусово ядро RBF K(x, x') = $exp(-\frac{\parallel x - x'\parallel^2}{2\sigma^2})$&lt;br /&gt;
&lt;br /&gt;
Такое ядро соответсвует бесконечномерному пространству. Поскольку оно является пределом последовательности полиномиальных ядер при стремлении степени ядра к бесконечности.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Метод опорных векторов (SVM)]]&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
#[https://github.com/esokolov/ml-course-msu/blob/master/ML16/lecture-notes/Sem12_linear.pdf github.com/esokolov/ml-course-msu — Евгений Соколов Ядра и их применение в машинном обучении]&lt;br /&gt;
#[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4#%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0:_%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D1%82%D1%80%D1%8E%D0%BA wikipedia.org — Ядерный метод]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;br /&gt;
[[Категория: Классификация]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Kernel3_2.png&amp;diff=73081</id>
		<title>Файл:Kernel3 2.png</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Kernel3_2.png&amp;diff=73081"/>
				<updated>2020-03-21T23:41:44Z</updated>
		
		<summary type="html">&lt;p&gt;256331: В правом пространстве объекты внутри овала линейно не отделимы от наружних. После применения ядра слева появляется разделяющая плоскость.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В правом пространстве объекты внутри овала линейно не отделимы от наружних. После применения ядра слева появляется разделяющая плоскость.&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73080</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73080"/>
				<updated>2020-03-21T23:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;256331: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:kernel3_2.png|600px|thumb|right|Пример использования ядерного трюка]]&lt;br /&gt;
'''Ядерный трюк'''(анг. ''kernel function'') метод в машинном обучении, позволяющий перевести элементы для случая линейной неразделимости в новое линейно разделимое пространство пространство. Такое пространство называют '''спрямляющим'''. Поскольку для любой непротиворечивой выборки соответствующее пространство большей размерности существует, главной проблемой становится его найти.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Определение ==&lt;br /&gt;
Функция $K(x,x'):X×X\rightarrow \mathbb{R}$ называется '''ядром''', если она может быть представлена в виде $K(x,x')=\langle \varphi(x),\varphi(x')\rangle_H$ при некотором отображении $\varphi(x):X\rightarrow H$,где H {{---}} пространство со скалярным произведением.&lt;br /&gt;
&lt;br /&gt;
Поскольку для задачи линейного разделения объектов не требуется их признаковое описание, а достаточно скаляров, то можно заменить скалярное произведение $\langle x,x'\rangle$ на ядро $K(x,x')$ Более того, можно вообще не строить спрямляющее пространствоHв явномвиде, и вместо подбора отображения $\varphi$ заниматься непосредственно подбором ядра.&lt;br /&gt;
&lt;br /&gt;
Можно пойти ещё дальше, и вовсе отказаться от признаковых описаний объек-тов. Во многих практических задачах объекты изначально задаются информациейоб их попарном взаимоотношении, например, отношении сходства. Если эта инфор-мация допускает представление в виде двуместной функции $K(x,x')$, удовлетворяю-щей аксиомам скалярного произведения, то задача может решаться методом [[Метод опорных векторов (SVM) | SVM ]].&lt;br /&gt;
&lt;br /&gt;
== Теорема Мерсера ==&lt;br /&gt;
Функция K(x,y) является ядром тогда и только тогда, когда:&lt;br /&gt;
&lt;br /&gt;
Она симметрична: $K(x,y)=K(y,x)$&lt;br /&gt;
&lt;br /&gt;
Она неотрицательно определена, то есть $\forall g: X \rightarrow \mathbb{R}, \int_X \int_X K(x, x')g(x)g(x')dxdx' \geqslant 0$&lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведение $ K(x,x') =\langle x,x'\rangle $ является ядром.&lt;br /&gt;
&lt;br /&gt;
2. Константа $K(x,x') = 1$ является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер $K(x,x')=K_1(x,x')K_2(x,x')$является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции $\psi :X\rightarrow R$ произведение &amp;lt;tex&amp;gt;K(x,x′) =\psi(x)\psi(x′)&amp;lt;/tex&amp;gt;{{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентами K(x,x′) ==\alpha_1K_1(x,x') +\alpha_2K_2(x,x')является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции $\varphi:X \rightarrow X$ и произвольного ядраK0является ядром: $K(x,x') =K_0(\varphi(x),\varphi(x'))$.&lt;br /&gt;
&lt;br /&gt;
7. Еслиs:$X×X\rightarrow R$ произвольная симметричная интегрируемая функция, то $K(x,x′) =\int Xs(x,z)s(x',z)$dzявляется ядром.//TODO&lt;br /&gt;
&lt;br /&gt;
8. Функция вида K(x,x') = k(x−x)является ядром тогда и только тогда, когдаФурье-образ F[k](\omega) = (2\Pi)n_2∫Xe−i〈\owmega,x〉k(x)dx неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядраK0и произвольной функции ''f'':R\rightarrow R, представимой в виде сходящегося степенного ряда с неотрицательными коэффициентами $K(x,x') = f(K_0(x,x'))$, является ядром. В частности, функции $f(z) =e^z$ и f(z) =1/{1−z} от ядра являются ядрами.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ядерный трюк ==&lt;br /&gt;
Поскольку для обучения зачастую необходима уже функция &amp;quot;расстояния&amp;quot; между элементами в новом пространстве, то вместо явного нахождения ядра {{---}}  его можно зашить внутрь соответсвующей функции k(x, x'). Такую функцию k называют '''ядерной функцией'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые функции ==&lt;br /&gt;
0.Линейное $K(x, x')= \langle x, x'\rangle$&lt;br /&gt;
&lt;br /&gt;
1.Полиномиальное ядро $K(x, x') = (\langle x, x' \rangle + R)^d$&lt;br /&gt;
&lt;br /&gt;
2.Гаусово ядро RBF K(x, x') = exp(-\gamma ||x - x'||^2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
&lt;br /&gt;
#[http://www.machinelearning.ru/wiki/images/6/6d/Voron-ML-1.pdf Ядра и спрямляющие пространства p.73-75 — К. В. Воронцов Математические методы обучения по прецедентам]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Машинное обучение]]&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73055</id>
		<title>Ядро</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%AF%D0%B4%D1%80%D0%BE&amp;diff=73055"/>
				<updated>2020-03-21T16:33:45Z</updated>
		
		<summary type="html">&lt;p&gt;256331: Новая страница: «'''Ядро(Kernel) в машинном обучении''' - функция x-&amp;gt;\fi(x), которая позволяет совершить преобразов…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Ядро(Kernel) в машинном обучении''' - функция x-&amp;gt;\fi(x), которая позволяет совершить преобразование признаков и получить линейно разделимое пространство.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Определение ==&lt;br /&gt;
Функция K(x,x′):X×X-&amp;gt;R называется ядром, если она может быть представлена в виде K(x,x')=&amp;lt;\fi(x),\fi(x')&amp;gt;_H для какой либо функции \fi(x):X-&amp;gt;H.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Теорема Мерсера ==&lt;br /&gt;
Функция K(x,y) является ядром тогда и только тогда, когда:&lt;br /&gt;
&lt;br /&gt;
    Она симметрична: K(x,y)=K(y,x)&lt;br /&gt;
&lt;br /&gt;
    Она неотрицательно определена, то есть для любой конечной выборки матрица K=(K(x_i,x_j))^l_{i,j=1} неотрицательно определена &lt;br /&gt;
&lt;br /&gt;
== Конструктивные способы построения ядер ==&lt;br /&gt;
1.Произвольное скалярное произведениеK(x,x') =&amp;lt;x,x'&amp;gt;является ядром.&lt;br /&gt;
&lt;br /&gt;
2. КонстантаK(x,x') = 1 является ядром.&lt;br /&gt;
&lt;br /&gt;
3. Произведение ядер &amp;lt;tex&amp;gt;K(x,x') =K_1(x,x')K_2(x,x')&amp;lt;tex&amp;gt;является ядром.&lt;br /&gt;
&lt;br /&gt;
4. Для любой функции &amp;lt;tex&amp;gt;\psi :X-&amp;gt;R&amp;lt;tex&amp;gt; произведение &amp;lt;tex&amp;gt;K(x,x′) =\psi(x)\psi(x′)&amp;lt;tex&amp;gt;{{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
5. Линейная комбинация ядер с неотрицательными коэффициентамиK(x,x′) ==\alpha_1K_1(x,x') +\alpha_2K_2(x,x')является ядром.&lt;br /&gt;
&lt;br /&gt;
6. Композиция произвольной функции \fi:X-&amp;gt;X и произвольного ядраK0является ядром: K(x,x') =K_0(\fi(x),\fi(x')).&lt;br /&gt;
&lt;br /&gt;
7. Еслиs:X×X→R произвольная симметричная интегрируемая функция, тоK(x,x′) =∫Xs(x,z)s(x′,z)dzявляется ядром.//TODO&lt;br /&gt;
&lt;br /&gt;
8. Функция вида K(x,x') = k(x−x)является ядром тогда и только тогда, когдаФурье-образ F[k](\omega) = (2\Pi)n_2∫Xe−i〈\owmega,x〉k(x)dx неотрицателен.&lt;br /&gt;
&lt;br /&gt;
9. Предел локально-равномерно сходящейся последовательности ядер {{---}} ядро.&lt;br /&gt;
&lt;br /&gt;
10. Композиция произвольного ядраK0и произвольной функции ''f'':R-&amp;gt;R, представимой в виде сходящегося степенного ряда с неотрицательными коэффици-ентамиK(x,x') =f(K_0(x,x')), является ядром. В частности, функцииf(z) =e^z и f(z) =1/{1−z} от ядра являются ядрами&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ядерный трюк ==&lt;br /&gt;
Поскольку для обучения зачастую необходима уже функция &amp;quot;расстояния&amp;quot; между элементами в новом пространстве, то вместо явного нахождения ядра {{---}}  его можно зашить внутрь соответсвующей функции k(x, x'). Такую функцию k называют '''ядерной функцией'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Некоторые часто используемые функции ==&lt;br /&gt;
0.Линейное K(x, x')=&amp;lt;x, x'&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.Полиномиальное ядро K(x, x') = (&amp;lt;x, x'&amp;gt; + R)^d&lt;br /&gt;
&lt;br /&gt;
2.Гаусово ядро RBF K(x, x') = exp(-\gamma ||x - x'||^2)&lt;/div&gt;</summary>
		<author><name>256331</name></author>	</entry>

	</feed>