Практический курс по ML: https://stepik.org/course/209247/
На предыдущем
занятии мы увидели, что задачи машинного обучения – это задачи оптимизации, в
частности минимизации эмпирического риска:
зависящего, в
общем виде, от модели и
вида функции потерь .
То есть, нам нужно выбрать такую модель, чтобы функционал принимал наименьшее
значение на обучающей выборке. Математически это можно записать так:
Здесь - найденная
модель на этапе обучения по всем возможным моделям ; argmin – определяет
значение аргумента, при котором функция принимает наименьшее значение.
В случае
параметрических моделей это
выражение может быть записано относительно вектора параметров :
После обучения
мы принимаем и
используем найденную зависимость в продакшене (при практической реализации).
Вот так
математически можно кратко записать то, о чем мы говорили на предыдущем
занятии. Давайте снова вернемся к нашему простейшему примеру – методу
наименьших квадратов. Здесь у нас данные формируются по закону:
где - по
прежнему гауссовский шум с нулевым средним. Для такой задачи оптимальная модель
имеет вид линейной функции:
Неизвестные
параметры я
обозначил с крышечкой, что означает, что мы не можем их точно определить
(всегда будет погрешность, неточность). Так вот, эту же модель можно записать и
в таком виде:
если выбрать: и . Модели,
которые представляют собой линейную комбинацию признаков с некоторыми
настраиваемыми параметрами (весами), называются линейными.
В общем случае
любую линейную модель можно представить в виде следующей суммы:
Почему такая
модель считается линейной? Если мы перейдем в пространство признаков , то
в нем модель будет
описывать гиперплоскость, ориентация которой определяется вектором параметров :
Такие модели
достаточно просты, хорошо изучены и нередко приводят к приемлемым результатам. Мы
с вами вначале подробно изучим работу этих моделей.
Давайте для примера
рассмотрим задачу линейной регрессии, в которой будем строить аппроксимацию
эмпирических данных, сформированных по правилу:
Строго говоря,
мы здесь имеем одномерную величину , по
которой нужно спрогнозировать выходное значение . То
есть, исходные измерения – это , а целевые
выходные – это .
Однако, если строить линейную модель по одному признаку в
виде:
то, как вы
понимаете, мы очень грубо будем описывать изменения представленных (на графике)
точек. Здесь явно нелинейная зависимость .
Поэтому, чтобы оставаться в рамках линейной модели при решении подобных задач,
мы расширим признаковое пространство следующими преобразованиями:
Причем,
преобразования, как правило, выбираются так, чтобы признаки были линейно
независимыми. Иначе, один признак просто сведется к другому. Например, пара
преобразований:
это, фактически,
один и тот же признак, т.к. значение +5 с успехом может быть добавлено
признаком
Вот на это
следует обращать внимание при формировании нового признакового пространства –
оно должно быть информативным, а не просто дублировать данные.
Итак, расширение
пространства признаков с помощью функциональных преобразований – это нормальная
практика. В результате, наша линейная модель будет вычислять выходные значения
в виде полинома:
где - вектор
весовых коэффициентов, которые определяются по входным эмпирическим данным
(обучающей выборке). То есть, для каждого мы
будем вычислять -
это и будет прогнозом величины . В
результате, если взять полином первой степени (),
то получим аппроксимацию точек линейной функцией:
Увеличивая
порядок полинома, мы все точнее и точнее будем описывать экспериментальные
зависимости. Казалось бы, мы с вами только что нашли универсальное решения для
задачи регрессии (да и классификацию тоже можно делать по этому принципу)?
Берем полином сколь угодно большой степени и описываем им эмпирические данные с
нужной точностью. Но, увы, природа так просто не сдает своих позиций и в
полиномах с высокими степенями кроется один неприятный момент. Давайте возьмем
функцию вида:
И будем ее
приближать полиномом степени n = 54. Но коэффициенты полинома будем
вычислять только по половине всех точек, взятых через отсчет. Тогда в другой
половине точек полученная модель
будет строить
прогноз.
На рисунке ниже
красными точками показаны значения функции, участвующие в расчетах параметров , а
зелеными – точки, в которых строится прогноз по полученной модели.
Как видите, при
больших значениях полином
ведет себя совершенно непредсказуемым образом. Это известный факт, знакомый
всем математикам. Применительно к нашей задаче, это означает, что такая модель плохо
будет строить прогнозы в новых, неизвестных ей точках. То есть, с одной
стороны, полином высокой степени хорошо описывает точки обучающей выборки, но
совершенно непригоден для построения прогнозов в новых точках.
А вот с
полиномами меньших степеней таких проблем, как правило, нет. Я приведу еще один
график, где покажу, как меняется значение эмпирического риска для двух моделей:
-
- вычисленная
по всем точкам функции ;
-
-
вычисленная по половине точек, взятых через отсчет.
В результате,
имеем два выражения для эмпирических рисков:
и их графики при
разных степенях полиномов :
Здесь синий
график – это , а
красный - . Хорошо
видно, что сначала увеличение степени полиномов приводит к улучшению степени
аппроксимации функции, а затем, при больших степенях синий график резко
возрастает и расходится с красным. Это, как раз, связано с непредсказуемостью
поведения полиномов с большими степенями и ухудшением их предсказательной
способности.
С точки зрения машинного
обучения – это яркий пример эффекта переобучения (overfitting). То есть,
переобучение – это несоответствие найденной модели закону
изменения данных, часть которых была представлена в обучающей выборке. При этом
данные самой обучающей выборки описываются моделью хорошо. В результате, такая
переобученная модель не обладает достаточными обобщающими способностями – ее
нельзя расширить на произвольный набор данных той
же природы, что и в обучающей выборке. А это именно то, что мы хотим от нашей
модели – применять ее для новых наблюдений и получать корректные результаты. То
есть, здесь важно не просто провести функцию по эмпирическим зависимостям, а
выделить их модель, закон природы. В этом и заключается главная задача
машинного обучения.
Надо сказать,
что абсолютно любая модель ,
найденная по эмпирическим данным, обладает то или иной степенью
переобученности. Избавиться полностью от этого эффекта невозможно, мы всегда
будем, так или иначе, подстраиваться под данные обучающей выборки. И все, что
можем сделать – это минимизировать данный эффект и, как следствие, повысить обобщающую
способность нашей модели.
Практический курс по ML: https://stepik.org/course/209247/