В последних двух лекциях мы говорили о том, как определить гиперплоскости, которые могут оптимально разделить заданные наборы данных. В следующей паре постов мы рассмотрим концепцию ядер, что они из себя представляют и чем они так полезны в машинном обучении.

Цель обучения:

Понимать контекст, в котором ядра применяются в машинном обучении.

Основной вопрос:

Обратите внимание на изображение на рис. 1 ниже:

Предположим, нам нужно вычислить гиперплоскость, которая может правильно классифицировать различные точки на изображении, мы бы быстро поняли, что это очень сложная задача. Как мы собираемся придумать плоскость, которая может правильно различать точки, учитывая тот факт, что разные классы точек кажутся сгруппированными вместе?

Возможно, чтобы решить эту проблему, мы должны посмотреть на нее буквально из другого измерения. Когда мы масштабируем точки, представленные на рис. 1, из их 2-мерного представления в 3-мерное представление, мы получаем следующий результат, как показано на рис. 2:

Рис. 2 все еще может выглядеть не очень впечатляюще, учитывая тот факт, что точки все еще могут казаться перемешанными. Однако, если мы повернем оси при взгляде на него под углом, показанным на рис. 3, мы вскоре поймем, что точки все-таки линейно разделимы в этом измерении.

Следовательно, это означает, что для создания гиперплоскости, которая может правильно классифицировать различные классы точек, которые представлены аналогично классам точек на рис. 1, мы должны преобразовать каждую точку в более высокое измерение.

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

Вот тут и приходят на помощь ядра :)

В следующем посте мы узнаем больше о том, как ядра применяются к ситуации, представленной в этом посте.