Подтвердить что ты не робот

Как рассчитать параметр регуляризации в линейной регрессии

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

Мой вопрос в том, как мы вычисляем этот параметр регуляции лямбда?

4b9b3361

Ответ 1

Параметр регуляризации (лямбда) является входом в вашу модель, поэтому то, что вы, вероятно, хотите знать, - это то, как вы выбираете значение лямбда. Параметр регуляризации уменьшает переопределение, что уменьшает дисперсию ваших оценочных параметров регрессии; однако он делает это за счет добавления смещения к вашей оценке. Увеличение лямбда приводит к меньшему переосмыслению, но также к большей предвзятости. Таким образом, реальный вопрос: "Сколько уклонов вы готовы терпеть в своей оценке?"

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

Ответ 2

ЗАКРЫТАЯ ФОРМА (ТИХОНОВ) ПРОТИВ ГРАДИЧЕСКОГО ПРОСТРАНСТВА

Привет! хорошие объяснения для интуитивных и первоклассных математических подходов. Я просто хотел добавить некоторые особенности, которые, где не "решение проблем", могут определенно помочь ускорить и дать некоторую согласованность процессу нахождения хорошего регуляризационного гиперпараметра.

Я предполагаю, что вы говорите о регуляризации L2 (ak "weight decay" ), линейно взвешенной по лямбда-терминам, и что вы оптимизируете вес вашей модели либо с помощью закрытая форма Tikhonov уравнение (рекомендуется для моделей с низкой размерной линейной регрессией) или с некоторым вариантом градиентный спуск с backpropagation. И в этом контексте вы хотите выбрать значение для лямбда, которое обеспечивает наилучшие возможности обобщения.


ЗАКРЫТАЯ ФОРМА (ТИХОНОВ)

Если вы можете пойти по Тихонову с вашей моделью (Andrew Ng говорит о размерах 10 тыс., но это предложение составляет не менее 5 лет старый) Википедия - определение коэффициента Тихонова предлагает интересное решение с закрытой формой, доказано, что оно обеспечивает оптимальное значение. Но это решение, вероятно, вызывает какие-то проблемы с реализацией (временная сложность/численная стабильность), о которых я не знаю, потому что для его выполнения нет основного алгоритма. Эта статья 2016 выглядит очень многообещающей, хотя и может стоить попробовать, если вам действительно нужно оптимизировать свою линейную модель в лучшем виде.

  • Для более быстрой реализации прототипа этот 2015 Пакет Python, похоже, обрабатывает его итеративно, вы можете позволить ему оптимизировать, а затем извлечь окончательное значение для лямбда:

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

И из GitHub README проекта: InverseProblem.invert(A, be, k, l) #this will invert your A matrix, where be is noisy be, k is the no. of iterations, and lambda is your dampening effect (best set to 1)


ПРОСМОТР ГРАДИЕНТОВ

Все ссылки этой части принадлежат Майклу Нильсену, изучающей онлайн-книгу "Нейронные сети и глубокое обучение", рекомендуемая лекция!

Для этого подхода, как представляется, еще меньше сказать: функция стоимости, как правило, не выпуклая, оптимизация выполняется численно, а производительность модели измеряется с помощью какой-либо формы перекрестной проверки (см. Overfitting and Регуляризация и почему регуляризация помогает уменьшить передозировку, если у вас не было достаточно этого). Но даже при перекрестной проверке Нильсен что-то предлагает: вы можете взглянуть на это подробное объяснение о том, как регулирование L2 обеспечивает вес, но сводка состоит в том, что она обратно пропорциональна числу образцов n, поэтому при вычислении уравнения градиентного спуска с термином L2

просто используйте backpropagation, как обычно, а затем добавьте (λ/n)*w к частной производной всех весовых членов.

И его вывод состоит в том, что при желании аналогичного эффекта регуляризации с различным количеством выборок лямбда должна быть пропорционально изменена:

нам нужно изменить параметр регуляризации. Причина в том, что размер n обучающего набора изменился с n=1000 на n=50000, и это изменяет коэффициент распада веса 1−learning_rate*(λ/n). Если бы мы продолжали использовать λ=0.1, что означало бы гораздо меньший распад и, следовательно, гораздо меньший эффект регуляризации. Мы компенсируем изменение до λ=5.0.

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

Для выбора точных значений он предлагает в своих заключениях как выбрать гиперпараметры нейронной сетичисто эмпирический подход: начинайте с 1, а затем постепенно умножайте и делите на 10, пока не найдете правильный порядок величины, а затем выполните локальный поиск в этом регионе. В комментариях этого вопроса, связанного с SE, пользователь Brian Borchers предлагает также очень известный метод, который может быть полезен для этого локального поиска:

  • Возьмите небольшие подмножества наборов обучения и валидации (чтобы иметь возможность сделать многие из них за разумное время)
  • Начиная с λ=0 и увеличиваясь небольшими суммами в пределах некоторого региона, выполните быструю подготовку и проверку модели и постройте обе функции потерь
  • Вы увидите три вещи:
    • Функция потери CV будет постоянно выше, чем учебная, поскольку ваша модель оптимизирована исключительно для учебных данных.
    • Функция потери тренировки будет иметь минимум для λ=0, а затем увеличится с регуляризацией, так как предотвращение оптимальной подгонки модели к данным тренировки - это именно то, что делает регуляризация.
    • Функция потери CV начнет высоко в λ=0, а затем уменьшится, а затем начнет увеличиваться снова в какой-то момент.
  • Оптимальное значение для λ будет, вероятно, где-то рядом с минимумом функции потери CV, это также может немного зависеть от того, как выглядит функция потери обучения. См. Изображение для возможного (но не единственного) представления этого: вместо "сложности модели" вы должны интерпретировать ось x как λ, равную нулю справа и увеличиваясь влево.

Диагностика L2: вместо

Надеюсь, это поможет! Cheers,
Andres

Ответ 3

Перекрестная проверка, описанная выше, является методом, часто используемым в Machine Learning. Однако выбор надежного и безопасного параметра регуляризации по-прежнему является очень актуальной темой исследований в области математики. Если вам нужны идеи (и у вас есть доступ к приличной университетской библиотеке), вы можете взглянуть на эту статью: http://www.sciencedirect.com/science/article/pii/S0378475411000607