Вопрос:

Почему регуляризация L1 работает в машинном обучении

machine-learning neural-network deep-learning supervised-learning

1442 просмотра

3 ответа

6 Репутация автора

Что ж, в машинном обучении один из способов предотвращения переоснащения - это добавить регуляризацию L2, а некоторые говорят, что регуляризация L1 лучше, почему так? Также я знаю, что L1 используется для обеспечения разреженности данных, какова теоретическая поддержка этого результата?

Автор: Mingyao Chen Источник Размещён: 22.04.2015 02:01

Ответы (3)


4 плюса

839 Репутация автора

Решение

Регуляризация L1 используется для экономии. Это может быть полезно, особенно если вы имеете дело с большими данными, поскольку L1 может генерировать больше сжатых моделей, чем регуляризация L2. Это в основном связано с тем, что при увеличении параметра регуляризации вероятность того, что ваша оптима будет равна 0, возрастает.

Регуляризация L2 наказывает большее число из-за возведения в квадрат. Конечно, L2 более «элегантен» в плавности.

Вы должны проверить эту веб-страницу

PS

Более математически исчерпывающее объяснение может не подходить для этого сайта, вы можете попробовать другие сайты Stack Exchange, например

Автор: Semih Korkmaz Размещён: 22.04.2015 02:19

0 плюса

5401 Репутация автора

Хорошо известно, что регуляризация L1 помогает выполнять выбор объектов в разреженных пространственных объектах, и это является хорошей практической причиной для использования L1 в некоторых ситуациях. Однако, помимо этой конкретной причины, я никогда не видел, чтобы L1 работал лучше, чем L2 на практике. Если вы посмотрите LIBLINEAR FAQ по этой проблеме, вы увидите, как они не видели практического примера, где L1 побеждает L2, и призываем пользователей библиотеки связаться с ними, если они найдут. Даже в ситуации, когда вы можете извлечь выгоду из разреженности L1 для выбора функции, использование L2 для остальных переменных, вероятно, даст лучшие результаты, чем само L1.

Итак, как объясняет Эндрю Нг

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

Когда количество функций достаточно велико, вы можете дать L1 шанс, но L2 всегда должен быть вашим выбором.

Даже в том случае, если у вас есть веская причина использовать L1 с учетом количества функций, я бы рекомендовал вместо этого использовать Elastic Nets. Согласитесь, это будет практический вариант, если вы делаете линейную / логистическую регрессию. Но в этом случае Эластичные Сети оказались (в теории и на практике) лучше, чем L1 / Лассо. Эластичные сети сочетают регуляризацию L1 и L2 за «единственную» стоимость введения другого гиперпараметра для настройки (см. Статью Хасти для более подробной информации на странице stanford.edu).

Таким образом, в шортах регуляризация L1 лучше всего подходит для выбора объектов в разреженных пространственных объектах.

Автор: ishandutta2007 Размещён: 28.07.2016 01:57

0 плюса

31 Репутация автора

Поскольку регуляризатор l1 создает разреженность, он сходится быстрее к вашему минимуму по сравнению с регуляризатором l1. Теперь попробуем доказать это. Регулятор l1 - это функция абсолютного значения (| w_i |), которая является линейной функцией, т.е. независимо от того, является ли значение положительным или отрицательным, результат всегда является положительным. Теперь при решении задач оптимизации любой модели нам требуется SGD (стохастический градиентный спуск), который требует дифференциальной функции. Так что теперь нам нужно дифференцировать l1 регуляризатор. Дифференциация | w_i | всегда постоянен, поэтому на этапе обновления в SGD требуется больше шагов.

Переход к l2 регуляризатору, который является | w_i | ^ 2, который является квадратичной функцией, и его график выглядит как парабола, минимум которой равен 0, а максимума нет. Производная регулятора l2 является линейной функцией, и она медленно уменьшается, что означает, что она не является постоянной по сравнению с регуляризатором l1. Поэтому для сходимости требуется больше времени, чем для l1. Это отвечает на ваш теоретический вопрос поддержки.

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

Надеюсь это поможет.

Автор: Aditya Размещён: 07.06.2019 10:54
Вопросы из категории :
32x32