Регуляризация

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

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

В процессе обучения мы ожидаем, что из переданного объема исходных данных модель выделит существенные признаки и построит зависимости между этими признаками и ожидаемым результатом. Но в результате чрезмерного усложнения модели она находит возможность найти несуществующие зависимости между случайными величинами — она «заучивает» обучающую выборку. Как результат, на обучающей выборке мы получаем ошибку близкую к нулю. При этом данные тестовой выборки содержат свои случайные шумовые отклонения, которые не вписываются в концепцию, выученную на обучающей выборке. Это вводит нашу модель в замешательство. В итоге мы получаем разительную разницу погрешности работы нейронной сети на обучающей и тестовой выборке.

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

L1-регуляризация

L1-регуляризацию часто называют регрессией лассо или Манхэттенской. Суть данного метода заключается в добавлении к функции потерь суммы абсолютных значений весовых коэффициентов.

где:

  • LL1(Y,Y',W) — функция потерь с L1-регуляризацией;
  • L(Y,Y') — одна из рассмотренных ранее функций потерь;
  • λ — коэффициент регуляризации (штраф);
  • wii-ый весовой коэффициент.

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

Частная производная такой функции потерь примет вид:

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

Функция sign(wi) возвращает знак при весовом коэффициенте, когда он отличен от нуля и 0, когда весовой коэффициент равен нулю. Так как λ — константа, а в процессе обновления весовых коэффициентов мы постоянно отнимаем значение производной, помноженной на обучающий коэффициент и градиент ошибки, то в процессе обучения нейронной сети модель обнулит признаки, не оказывающие прямое влияние на результат. Тем самым она полностью исключит влияние случайного шума на результат.

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

L2-регуляризация

L2, или гребневая, регуляризация, как и L1-регуляризация, вводит в функцию потерь штраф за большие весовые коэффициенты. Но при этом используется L2-норма — сумма квадратов весовых коэффициентов. В результате функция потерь будет иметь следующий вид.

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

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

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

Elastic Net

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

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

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

В такие моменты применяется эластичная регуляризация (Elastic Net regularization). Данная модель добавляет к функции потерь штрафы по первой и второй норме весовых коэффициентов и объединяет в себе преимущества L1 и L2-регуляризации.

Обратите внимание, что в формуле Elastic Net L1 и L2-регуляризации получили собственный коэффициент регуляризации. Таким образом, изменяя коэффициенты регуляризации λ1 и λ2, можно управлять моделью регуляризации. При этом, приравняв их к нулю, получим оптимизации модели без регуляризации. При λ1>0 и λ2=0 имеем L1-регуляризацию в чистом виде, а при λ1=0 и λ2>0 получаем L2-регуляризацию.