Регуляризация
Проблема переобучения часто появляется от того, что модель сильно зависит от некоторого параметра. Представим, что мы обучились определять шансы человека стать преступником. Для этого у нас есть множество различных признаков, таких как пол, возраст, проблемы с деньгами.
Например так:
Признак | Вес |
---|---|
Пол Ж/М | -10.5/12.3 |
Материальное состояние (какая-то мера) | 2.3 |
Учет в полиции | 0.8 |
Считая результат работы алгоритма на тестовых данных мы очевидно в среднем получаем результат "может" для мужчин и "не может" для женщин (впрочем как обычно). Казалось бы результат на обучающих данных хороший, но почему-то в реально жизни не идеален. А все дело в том, что пол в нашей модели из-за своего веса абсолютно перекрывает результаты других признаков. Это может быть по многим причинам, но сам факт того, что какой-либо фактор сильно влияет на результат от множества факторов может быть неправильным.
Для решения такой проблемы переобучения были придуманы разные методы, но одним из самых эффективных методов регуляризации является -регулизация.
Суть его заключается в добавлении дополнительного слагаемого . Где .
Добавив его в нашу функцию ошибки алгоритм будет пытаться уменьшить и это слагаемое. А уменьшаться оно будет в том случае, чем меньше будет значение квадрата каждого веса, следовательно, чем меньше сами веса. Таким образом если вернуться к примеру выше, то пол уже не будет влиять так сильно на результат в силу относительно малого веса.
Также есть -регуляризация в которой вместо квадратов весов будут просто модули весов. Особенность этой регуляризации является то, что в конце она делает веса разряженными, то есть будет зависеть только от самых важных важных весов, а остальные делать очень близкими к нулю.