Интуиции о регуляризации L1 и L2

Объяснение того, как L1 и L2 работают с использованием градиентного спуска

(Прыгайте прямо сюда, чтобы пропустить введение.)

Список изменений:
27 марта 2020 г .: Добавлен абсолют к условиям в 2-норме и p-норме. Спасибо Рикардо Н. Сантосу за указание на это.

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

Регуляризация - это процесс введения дополнительной информации во избежание переобучения. Основное внимание в этой статье уделяется регуляризации L1 и L2.

Есть много объяснений, но, честно говоря, они слишком абстрактны, и я, вероятно, забыл их и в конечном итоге посетил эти страницы только для того, чтобы снова забыть. В этой статье я поделюсь с вами некоторыми интуитивными объяснениями, почему L1 и L2 работают, объясняя использование градиентного спуска. Градиентный спуск - это просто метод нахождения правильных коэффициентов посредством итеративных обновлений с использованием значения градиента. (В этой статье показано, как градиентный спуск можно использовать в простой линейной регрессии.)

Содержание

0) Что такое L1 и L2?
1) Модель
2) Функции потерь
3) Градиентный спуск
4) Как предотвратить переобучение?

Пойдем!

0) Что такое L1 и L2?

Регуляризация L1 и L2 обязана своим названием норме L1 и L2 вектора w соответственно. Вот краткое описание норм:

‹Журнал изменений: пропущено взятие абсолютных значений для 2-нормы и p-нормы›

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

но именно расчет функции потерь включает в себя следующие условия регуляризации:

Примечание. Строго говоря, последнее уравнение (гребенчатая регрессия) представляет собой функцию потерь с возведенной в квадрат норме весов L2 (обратите внимание на отсутствие квадратного корня). (Спасибо, Макс Печёнкин, что обратил на это внимание!)

Термины регуляризации - это «ограничения», которым алгоритм оптимизации должен «придерживаться» при минимизации функции потерь, помимо необходимости минимизировать ошибку между истинным y и прогнозируемым ŷ .

1) Модель

Давайте определим модель, чтобы увидеть, как работают L1 и L2. Для простоты мы определяем простую модель линейной регрессии ŷ с одной независимой переменной.

Здесь я использовал условные обозначения глубокого обучения w («вес») и b («смещение»).

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

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

2) Функции потерь

Чтобы продемонстрировать эффект регуляризации L1 и L2, давайте подберем нашу модель линейной регрессии с использованием 3 различных функций / целей потерь:

  • L
  • L1
  • L2

Наша цель - минимизировать эти различные потери.

2.1) Функция потерь без регуляризации

Мы определяем функцию потерь L как квадрат ошибки, где ошибка - это разница между y (истинное значение) и ŷ (прогнозируемое значение).

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

2.2) Функция потерь с регуляризацией L1

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

где параметр регуляризации λ ›0 настраивается вручную. Назовем эту функцию потерь L1. Обратите внимание, что | w | дифференцируется везде, кроме случая, когда w = 0, как показано ниже. Нам это понадобится позже.

2.3) Функция потерь с регуляризацией L2

Точно так же добавление члена регуляризации L2 к L выглядит так:

где снова λ ›0.

3) Градиентный спуск

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

Давайте заменим последний член в приведенном выше уравнении градиентом L , L1 и L2 относительно. ш.

L:

L1:

L2:

4) Как предотвратить переобучение?

С этого момента давайте выполним следующие замены в приведенных выше уравнениях (для лучшей читаемости):

  • η = 1,
  • H = 2x(wx+b-y)

которые дают нам

L:

L1:

L2:

4.1) С или без регуляризации

Обратите внимание на различия между обновлениями весов с параметром регуляризации λ и без него. Вот несколько интуиций.

Интуиция А:

Скажем, с помощью уравнения 0 вычисление w-H дает нам значение w, которое приводит к переобучению. Тогда интуитивно понятно, что уравнения {1.1, 1.2 и 2} уменьшат вероятность переобучения, потому что введение λ заставляет нас отойти от самого w это должно было вызвать у нас проблемы с переобучением в предыдущем предложении.

Интуиция Б:

Допустим, переобученная модель означает, что у нас есть значение w, которое идеально для нашей модели. «Идеально» означает, что если мы заменим данные (x) обратно в модели, наш прогноз ŷ будет очень, очень близок к истинному y . Конечно, это хорошо, но мы не хотим совершенства. Почему? Потому что это означает, что наша модель предназначена только для набора данных, на котором мы тренировались. Это означает, что наша модель будет давать прогнозы, далекие от истинного значения для других наборов данных. Поэтому мы соглашаемся на менее чем идеальный в надежде, что наша модель также сможет давать точные прогнозы с другими данными. Чтобы сделать это, мы «испачкаем» этот идеальный w в уравнении 0 штрафным членом λ. Это дает нам уравнения {1.1, 1.2 и 2}.

Интуиция C:

Обратите внимание, что H (как определено здесь) зависит от модели (w и b) и данные (x и y). Обновление весов на основе только модели и данных в уравнении 0 может привести к переобучению, что приведет к плохому обобщению. С другой стороны, в уравнениях {1.1, 1.2 и 2} на конечное значение w влияют не только модель и данные, но и также предопределенный параметр. λ, который не зависит от модели и данных. Таким образом, мы можем предотвратить переобучение, если установим соответствующее значение λ, хотя слишком большое значение приведет к тому, что модель будет сильно недооценена.

Интуиция D:

Эдден Гербер (спасибо!) интуитивно понял, в каком направлении смещается наше решение. Смотрите в комментариях: https://medium.com/@edden.gerber/thanks-for-the-article-1003ad7478b2

4.2) L1 vs. L2

Теперь мы сосредоточим наше внимание на L1 и L2 и перепишем уравнения {1.1, 1.2 и 2}, переставив их члены λ и H следующим образом:

L1:

L2:

Сравните второй член каждого из приведенных выше уравнений. Помимо H, изменение w зависит от ± λ члена или -2 λ w term, которые подчеркивают влияние следующих факторов:

  1. знак тока w (L1, L2)
  2. величина тока w (L2)
  3. удвоение параметра регуляризации (L2)

В то время как на обновления веса с использованием L1 влияет первая точка, на обновления веса из L2 влияют все три точки. Хотя я провел это сравнение только на основе обновления итеративного уравнения, обратите внимание, что это не означает, что одно «лучше», чем другое.

А пока давайте посмотрим, как эффект регуляризации от L1 может быть достигнут только знаком текущего w.

4.3) Эффект L1 при приближении к нулю (разреженность)

Взгляните на L1 в уравнении 3.1. Если w положительно, параметр регуляризации λ ›0 подтолкнет w к менее положительному значению путем вычитания λ от w. И наоборот, в уравнении 3.2, если w отрицательное, λ будет добавлено к w, что сделает его менее отрицательным. Следовательно, это имеет эффект смещения w к 0.

Это, конечно, бессмысленно в модели линейной регрессии с одной переменной, но докажет ее способность «удалять» бесполезные переменные в моделях многомерной регрессии. Вы также можете думать о L1 как о полном сокращении количества функций в модели. Вот произвольный пример того, как L1 пытается «протолкнуть» некоторые переменные в модели многомерной линейной регрессии:

Итак, как подталкивание w к 0 помогает в переобучении регуляризации L1? Как упоминалось выше, когда w становится равным 0, мы сокращаем количество функций за счет уменьшения важности переменной. В приведенном выше уравнении мы видим, что x_2, x_4 и x_5 почти «бесполезны» из-за их малых коэффициентов, поэтому мы можем удалить их. из уравнения. Это, в свою очередь, снижает сложность модели, делая нашу модель более простой. Более простая модель может снизить вероятность переобучения.

Примечание

Хотя L1 имеет влияние на толкание весов к 0, а L2 - нет, это не означает, что веса не могут приблизиться к 0 из-за L2.

Если вы найдете какую-либо часть статьи запутанной, не стесняйтесь выделить и оставить отзыв. Кроме того, если у вас есть какие-либо отзывы или предложения по улучшению этой статьи, оставьте, пожалуйста, комментарий ниже!

использованная литература

Норма (математика) (wikipedia.org)

Лассо (Статистика) (wikipedia.org)

Регуляризация лассо и хребта (medium.com)

Особая благодарность Yu Xuan, Ren Jie, Daniel и Derek за идеи, предложения и исправления к этой статье. Также благодарим вас, C Gam, за указание на ошибку в производной.

Подписывайтесь на меня в Twitter @remykarem или LinkedIn. Вы также можете связаться со мной по [email protected]. Не стесняйтесь посетить мой сайт remykarem.github.io.