Кажется, есть много алгоритмов машинного обучения, которые полагаются на функции ядра. SVM и NN, чтобы назвать, но два. Итак, каково определение функции ядра и каковы требования для ее правильности?
Кажется, есть много алгоритмов машинного обучения, которые полагаются на функции ядра. SVM и NN, чтобы назвать, но два. Итак, каково определение функции ядра и каковы требования для ее правильности?
Ответы:
Для x, y на S определенные функции K (x, y) могут быть выражены как внутреннее произведение (обычно в другом пространстве). K часто называют ядром или функцией ядра. Слово «ядро» по-разному используется в математике, но это наиболее распространенное использование в машинном обучении.
Уловка ядра - это способ отображения наблюдений из общего набора S во внутреннее пространство произведений V (снабженное его естественной нормой) без необходимости явно вычислять отображение в надежде, что наблюдения получат значимую линейную структуру в V Это важно с точки зрения эффективности (вычисление точечных произведений в очень многомерном пространстве очень быстро) и практичности (мы можем преобразовать линейные алгоритмы ML в нелинейные алгоритмы ML).
Чтобы функция K считалась допустимым ядром, она должна удовлетворять условиям Мерсера . На практике это означает, что мы должны гарантировать, что матрица ядра (вычисление продукта ядра каждого имеющегося у вас объекта данных) всегда будет положительно полуопределенной. Это обеспечит выпуклость целевой функции обучения, что является очень важным свойством.
От Уильямса, Кристофера К.И. и Карла Эдварда Расмуссена. « Гауссовские процессы для машинного обучения». MIT Press 2, no. 3 (2006). Страница 80 .
Кроме того, ядро = функция ядра.
Ядра, используемые в алгоритмах машинного обучения, обычно удовлетворяют большему количеству свойств, например, являются положительными полуопределенными.
Собираюсь попробовать для менее технического объяснения.
Сначала начните с точечного произведения между двумя векторами. Это говорит о том, насколько «похожи» векторы. Если векторы представляют точки в вашем наборе данных, скалярное произведение сообщает вам, похожи они или нет.
Но в некоторых (многих) случаях скалярное произведение не является лучшим показателем сходства. Например:
Таким образом, вместо использования скалярного произведения вы используете «ядро», которое представляет собой просто функцию, которая берет две точки и дает вам меру их сходства. Я не уверен на 100%, каким техническим условиям должна соответствовать функция, чтобы быть технически ядром, но это идея.
Одна очень приятная вещь заключается в том, что ядро может помочь вам применить знания о предметной области к проблеме в том смысле, что вы можете сказать, что две точки совпадают по причине xyz, которая возникает из-за того, что вы знаете о домене.