Вопрос по machine-learning, data-mining, regression – Как рассчитать параметр регуляризации в линейной регрессии

35

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

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

Какой конкретный язык вы используете? Thomas Jungblut

Ваш Ответ

3   ответа
7

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

@Gschneider Спасибо за освобождение знаний и образования. Ха, URL-адрес веб-сайта поста ... Скорее, должен называться ScienceIndirect.
И если у вас нет доступа к приличной университетской библиотеке, она кажется доступнойhere.
45

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

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

Уменьшает ли добавление параметра регуляризации дисперсию параметров? Значит ли это, что все они будут почти равны по величине? Это разница в их значениях, на которые вы ссылаетесь? London guy
Да, это уменьшает дисперсию параметров. Давайте предположим, что у вас естьK параметры (a_1, a_2, ..., a_K) в вашей линейной модели, и ваш размер выборкиN, Учитывая конкретный образец размераN, вы будете вычислять значения от a_1 до a_k. Если бы вы взяли другую случайную выборку размеромN, это привело бы к другому набору коэффициентов (а). Если размер вашей выборки небольшой, то конкретный коэффициент (например, a_1) может сильно различаться между выборками (высокая дисперсия). Регуляризация уменьшает эту дисперсию. Это не означает, что все коэффициенты (a_1 ... a_k) будут почти равны.
22
CLOSED FORM (TIKHONOV) VERSUS GRADIENT DESCENT

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

Я предполагаю, что вы говорите оL2 (a.k. «снижение веса») регуляризация, линейно взвешенная поlambda термин, и что вы оптимизируете вес вашей модели либо сclosed-form Тихонов уравнение (настоятельно рекомендуется для низкоразмерных моделей линейной регрессии) или с некоторым вариантомgradient descent with backpropagation, И что в этом контексте вы хотите выбрать значение дляlambda это обеспечивает лучшую способность обобщения.

CLOSED FORM (TIKHONOV)

Если ты умеешь идти Тихоновым путем со своей моделью (Эндрю Нг говорит под габариты 10к, но этому предложению минимум 5 лет)Википедия - определение тихоновского фактора предлагает интересныйclosed-form solution, which has been proved to provide the optimal value, Но это решение, вероятно, поднимает какие-то проблемы реализации (временная сложность / численная стабильность), о которых я не знаю, потому что нет основного алгоритма для его выполнения. этоБумага 2016 года выглядит очень многообещающе и, возможно, стоит попробовать, если вам действительно нужно оптимизировать линейную модель в лучшую сторону.

For a quicker prototype implementation, this 2015 Python package seems to deal with it iteratively, you could let it optimize and then extract the final value for the lambda:

In this new innovative method, we have derived an iterative approach to solving the general Tikhonov regularization problem, which converges to the noiseless solution, does not depend strongly on the choice of lambda, and yet still avoids the inversion problem.

И из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)

GRADIENT DESCENT

All links of this part are from Michael Nielsen's amazing online book "Neural Networks and Deep Learning", recommended lecture!

Для этого подхода, кажется, еще меньше сказать: функция стоимости обычно невыпуклая, оптимизация выполняется численно, а производительность модели измеряется с помощью некоторой формы перекрестной проверки (см.Переоснащение и регуляризация а такжепочему регуляризация помогает уменьшить переоснащение если вам этого не надоело). Но даже при перекрестной проверке Нильсен предлагает что-то: вы можете взглянуть наэто подробное объяснение  о том, как регуляризация L2 обеспечивает эффект затухания веса, но в итоге этоinversely proportional to the number of samples nТаким образом, при расчете уравнения градиентного спуска с членом L2,

just use backpropagation, as usual, and then add (λ/n)*w to the partial derivative of all the weight terms.

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

we need to modify the regularization parameter. The reason is because the size n of the training set has changed from n=1000 to n=50000, and this changes the weight decay factor 1−learning_rate*(λ/n). If we continued to use λ=0.1 that would mean much less weight decay, and thus much less of a regularization effect. We compensate by changing to λ=5.0.

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

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

Take small subsets of the training and validation sets (to be able to make many of them in a reasonable amount of time) Starting with λ=0 and increasing by small amounts within some region, perform a quick training&validation of the model and plot both loss functions You will observe three things: The CV loss function will be consistently higher than the training one, since your model is optimized for the training data exclusively (EDIT: After some time I've seen a MNIST case where adding L2 helped the CV loss decrease faster than the training one until convergence. Probably due to the ridiculous consistency of the data and a suboptimal hyperparametrization though). The training loss function will have its minimum for λ=0, and then increase with the regularization, since preventing the model from optimally fitting the training data is exactly what regularization does. The CV loss function will start high at λ=0, then decrease, and then start increasing again at some point (EDIT: this assuming that the setup is able to overfit for λ=0, i.e. the model has enough power and no other regularization means are heavily applied). The optimal value for λ will be probably somewhere around the minimum of the CV loss function, it also may depend a little on how does the training loss function look like. See the picture for a possible (but not the only one) representation of this: instead of "model complexity" you should interpret the x axis as λ being zero at the right and increasing towards the left.

L2 diagnostics: instead of "model complexity" one should interpret the x axis **as <code>λ</code> being zero at the right and increasing towards the left

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

Похожие вопросы