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

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

Например так:

Признак Вес
Пол Ж/М -10.5/12.3
Материальное состояние (какая-то мера) 2.3
Учет в полиции 0.8

Считая результат работы алгоритма на тестовых данных мы очевидно в среднем получаем результат "может" для мужчин и "не может" для женщин (впрочем как обычно). Казалось бы результат на обучающих данных хороший, но почему-то в реально жизни не идеален. А все дело в том, что пол в нашей модели из-за своего веса абсолютно перекрывает результаты других признаков. Это может быть по многим причинам, но сам факт того, что какой-либо фактор сильно влияет на результат от множества факторов может быть неправильным.

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

Суть его заключается в добавлении дополнительного слагаемого λR(w) \lambda*R(w) . Где R(w)=(w2) R(w)=\sum(w^2) .

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

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

results matching ""

    No results matching ""