Линейная модель. Понятие переобучения

Практический курс по ML: https://stepik.org/course/209247/

Смотреть материал на YouTube | RuTube

На предыдущем занятии мы увидели, что задачи машинного обучения – это задачи оптимизации, в частности минимизации эмпирического риска:

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

Здесь  - найденная модель на этапе обучения по всем возможным моделям ; argmin – определяет значение аргумента, при котором функция принимает наименьшее значение.

В случае параметрических моделей  это выражение может быть записано относительно вектора параметров :

После обучения мы принимаем  и используем найденную зависимость в продакшене (при практической реализации).

Вот так математически можно кратко записать то, о чем мы говорили на предыдущем занятии. Давайте снова вернемся к нашему простейшему примеру – методу наименьших квадратов. Здесь у нас данные формируются по закону:

где  - по прежнему гауссовский шум с нулевым средним. Для такой задачи оптимальная модель имеет вид линейной функции:

Неизвестные параметры  я обозначил с крышечкой, что означает, что мы не можем их точно определить (всегда будет погрешность, неточность). Так вот, эту же модель можно записать и в таком виде:

если выбрать:  и . Модели, которые представляют собой линейную комбинацию признаков с некоторыми настраиваемыми параметрами (весами), называются линейными.

В общем случае любую линейную модель можно представить в виде следующей суммы:

Почему такая модель считается линейной? Если мы перейдем в пространство признаков , то в нем модель  будет описывать гиперплоскость, ориентация которой определяется вектором параметров :

Такие модели достаточно просты, хорошо изучены и нередко приводят к приемлемым результатам. Мы с вами вначале подробно изучим работу этих моделей.

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

Строго говоря, мы здесь имеем одномерную величину , по которой нужно спрогнозировать выходное значение . То есть, исходные измерения – это , а целевые выходные – это . Однако, если строить линейную модель по одному признаку  в виде:

то, как вы понимаете, мы очень грубо будем описывать изменения представленных (на графике) точек. Здесь явно нелинейная зависимость . Поэтому, чтобы оставаться в рамках линейной модели при решении подобных задач, мы расширим признаковое пространство следующими преобразованиями:

Причем, преобразования, как правило, выбираются так, чтобы признаки были линейно независимыми. Иначе, один признак просто сведется к другому. Например, пара преобразований:

это, фактически, один и тот же признак, т.к. значение +5 с успехом может быть добавлено признаком

Вот на это следует обращать внимание при формировании нового признакового пространства – оно должно быть информативным, а не просто дублировать данные.

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

где  - вектор весовых коэффициентов, которые определяются по входным эмпирическим данным (обучающей выборке). То есть, для каждого  мы будем вычислять  - это и будет прогнозом величины . В результате, если взять полином первой степени (), то получим аппроксимацию точек линейной функцией:

Увеличивая порядок полинома, мы все точнее и точнее будем описывать экспериментальные зависимости. Казалось бы, мы с вами только что нашли универсальное решения для задачи регрессии (да и классификацию тоже можно делать по этому принципу)? Берем полином сколь угодно большой степени и описываем им эмпирические данные с нужной точностью. Но, увы, природа так просто не сдает своих позиций и в полиномах с высокими степенями кроется один неприятный момент. Давайте возьмем функцию вида:

И будем ее приближать полиномом степени n = 54. Но коэффициенты полинома будем вычислять только по половине всех точек, взятых через отсчет. Тогда в другой половине точек полученная модель

будет строить прогноз.

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

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

А вот с полиномами меньших степеней таких проблем, как правило, нет. Я приведу еще один график, где покажу, как меняется значение эмпирического риска для двух моделей:

  •  - вычисленная по всем точкам функции ;
  •  - вычисленная по половине точек, взятых через отсчет.

В результате, имеем два выражения для эмпирических рисков:

и их графики при разных степенях полиномов :

Здесь синий график – это , а красный - . Хорошо видно, что сначала увеличение степени полиномов приводит к улучшению степени аппроксимации функции, а затем, при больших степенях синий график резко возрастает и расходится с красным. Это, как раз, связано с непредсказуемостью поведения полиномов с большими степенями и ухудшением их предсказательной способности.

С точки зрения машинного обучения – это яркий пример эффекта переобучения (overfitting). То есть, переобучение – это несоответствие найденной модели  закону изменения данных, часть которых была представлена в обучающей выборке. При этом данные самой обучающей выборки описываются моделью хорошо. В результате, такая переобученная модель не обладает достаточными обобщающими способностями – ее нельзя расширить на произвольный набор данных  той же природы, что и в обучающей выборке. А это именно то, что мы хотим от нашей модели – применять ее для новых наблюдений и получать корректные результаты. То есть, здесь важно не просто провести функцию по эмпирическим зависимостям, а выделить их модель, закон природы. В этом и заключается главная задача машинного обучения.

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

Практический курс по ML: https://stepik.org/course/209247/

Видео по теме