Повышение: почему скорость обучения называется параметром регуляризации?


19

Параметр скорости обучения ( ) в Gradient Boosting сокращает вклад каждой новой базовой модели - обычно мелкого дерева - который добавляется в серию. Было показано, что резко повышается точность набора тестов, что понятно, так как при меньших шагах минимум функции потерь может быть достигнут более точно. ν[0,1]

Я не понимаю, почему скорость обучения считается параметром регуляризации ? Ссылаясь на элементы статистического обучения , раздел 10.12.1, с.364:

Контроль количества деревьев - не единственная возможная стратегия регуляризации. Как и в случае регрессии гребня и нейронных сетей, также могут быть использованы методы усадки. Меньшие значения (больше усадки) приводит к большому риску для обучения такого же количества итераций . Таким образом, и контролируют риск прогнозирования на данных обучения.νMνM

Регуляризация означает «способ избежать переоснащения», поэтому ясно, что число итераций имеет решающее значение в этом отношении ( слишком большое значение приводит к переобучению). Но:MM

Меньшие значения (больше усадки) приводит к большому риску для обучения такого же количества итераций .νM

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

Ответы:


23

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

  • Первый способ - «большая скорость обучения» и несколько итераций. Предположим, что вы можете уменьшить потери на в каждой итерации, а затем, в итерациях, вы можете уменьшить потери до .10,0100.0

  • Вторым способом будет «медленная скорость обучения», но больше итераций. Предположим, что вы можете уменьшить потери на в каждой итерации, и вам нужно итераций, чтобы иметь 0,0 потери на ваших тренировочных данных.1,0100

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

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

Мы можем думать о первом подходе как о «грубом поиске по сетке уровня», а второй подход - как о «поиске по сетке с точным уровнем». Второй подход обычно работает лучше, но требует больше вычислительных мощностей для большего количества итераций.

Чтобы предотвратить переопределение, мы можем делать разные вещи, первым способом было бы ограничить количество итераций, предположим, что мы используем первый подход, мы ограничиваем количество итераций до 5. В конце, потеря для обучающих данных составляет , (Кстати, это было бы очень странно с точки зрения оптимизации , что означает, что мы можем улучшить наше решение в будущем / оно не сходится, но мы решили этого не делать. При оптимизации обычно мы явно добавляем ограничения или штрафные термины к целевой функции, но обычно не ограничивают количество итераций.)50

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

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

Вот пример использования различной скорости обучения с использованием экспериментальных данных xgboost. Пожалуйста, проверьте следующие две ссылки, чтобы увидеть, что значит etaили что n_iterationsзначит.

Параметры для Tree Booster

XGBoost Control переоснащение

Для того же количества итераций, скажем, . Небольшая скорость обучения «недостаточно соответствует» (или модель имеет «высокий уклон»), а большая скорость обучения «соответствует» (или модель имеет «высокую дисперсию»).50

Пример изменения скорости обучения ETA в модели XGBoost

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


Вы имеете в виду, что при низкой скорости обучения вам разрешается повторять больше (улучшать свой поиск), чем с высокой скоростью обучения, при той же потере? Я думаю, что у меня есть интуиция, которую вы пытаетесь передать, но более строгие объяснения и / или иллюстративный пример не повредят.
Антуан

Спасибо. Не могли бы вы обновить свои ссылки? Они не работают для меня
Антуан

Использование большей скорости обучения всегда лучше, если вы не увеличиваете ошибку обучения в последующих итерациях. Регуляризация, на которую вы ссылаетесь (смещение против дисперсии), связана с ошибкой обучения / проверки, а не с скоростью обучения. Независимо от того, используете ли вы большую или малую скорость обучения, если вы достигнете 0,0 ошибок обучения, то вы перебираете столько же. Если вы используете большую скорость обучения, то вам нужно остановить оптимизацию раньше, чтобы избежать переобучения. Вы можете использовать набор проверки, чтобы увидеть, увеличивается ли ваша ошибка проверки, в какой момент вы прекращаете обучение.
Любопытно

или я мог что-то упустить :)
Любопытно

This is why small learning rate is sort of equal to "more regularizations", Согласно этой статье, чем больше скорость обучения, тем больше регуляризация: супер-конвергенция: очень быстрое обучение нейронных сетей с использованием больших
Antoine

2

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

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

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

Другие примеры регуляризации, которые оправдывают эту перспективу:

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

- Я не понимаю In other words, the reciprocal of the learning rate is used in place of the real loss curvature. - Я не эксперт в области, и я впервые вижу определение a regularization parameter is any term that is in the optimized loss, but not the problem loss. Я тоже не совсем понимаю. Не могли бы вы предоставить соответствующую ссылку? Заранее спасибо
Антуан

@ Антуан, я не могу предоставить ссылку. Это только мой опыт, который я пытался оправдать, используя три других примера. Что касается скорости обучения вместо обратной кривизны потерь, вы можете увидеть это, если вы напишете метод Ньютона и правила обновления градиентного спуска бок о бок.
Нил Дж
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.