Чи регрес хребта марний у великих розмірах ( )? Як OLS не може перевиконати?


50

Розглянемо стару добру проблему регресії з прогнокторами та розміром вибірки . Звичайна мудрість полягає в тому, що Оцінювач OLS буде перевершувати і, як правило, перевершує оцінку гребінної регресії:Для пошуку оптимального параметра регуляризації стандартно використовувати перехресну перевірку . Тут я використовую 10-кратне резюме. Оновлення уточнення: коли , під "Оцінювачем OLS" я розумію "Оцінювач мінімальної норми OLS", заданийpβ = ( Х Х + λ I ) - 1 х у . λ п < р β МНК = ( Х Х ) + Х у = Х + у .n

β^=(XX+λI)1Xy.
λn<p
β^OLS=(XX)+Xy=X+y.

У мене є набір даних з і . Всі прогнози стандартизовані, і є досить багато, що (поодинці) можуть зробити гарну роботу в прогнозуванні . Якщо я випадковим чином обрати мале-ish, скажімо, , кількість предикторів, я отримаю розумну криву CV: великі значення виходу дорівнює нулю R-квадрата, малі значення виходу від'ємного R-квадрата (тому що перевиконання) і є деякий максимум між ними. Для крива виглядає аналогічно. Однак для значно більшого за це, наприклад, , я взагалі не отримую жодного максимуму: криві плато, тобто OLS зp > 1000 y p = 50 < n λ λ p = 100 > n p p = 1000 λ 0 λn=80p>1000yp=50<nλλp=100>npp=1000λ0 працює так само добре, як і регресія хребта з оптимальним .λ

введіть тут опис зображення

Як це можливо і що це говорить про мій набір даних? Я пропускаю щось очевидне чи це насправді контрінтуїтивне? Як може існувати якісна різниця між і враховуючи, що обидва більше ?p = 1000 np=100p=1000n

За яких умов рішення OLS з мінімальною нормою для не перевищує?n<p


Оновлення: у коментарях була деяка невіра, тому ось приклад, який можна відтворити glmnet. Я використовую Python, але користувачі R легко адаптують код.

%matplotlib notebook

import numpy as np
import pylab as plt
import seaborn as sns; sns.set()

import glmnet_python    # from https://web.stanford.edu/~hastie/glmnet_python/
from cvglmnet import cvglmnet; from cvglmnetPlot import cvglmnetPlot

# 80x1112 data table; first column is y, rest is X. All variables are standardized
mydata = np.loadtxt('../q328630.txt')   # file is here https://pastebin.com/raw/p1cCCYBR
y = mydata[:,:1]
X = mydata[:,1:]

# select p here (try 1000 and 100)
p = 1000

# randomly selecting p variables out of 1111
np.random.seed(42)
X = X[:, np.random.permutation(X.shape[1])[:p]]

fit = cvglmnet(x = X.copy(), y = y.copy(), alpha = 0, standardize = False, intr = False, 
               lambdau=np.array([.0001, .001, .01, .1, 1, 10, 100, 1000, 10000, 100000]))
cvglmnetPlot(fit)
plt.gcf().set_size_inches(6,3)
plt.tight_layout()

введіть тут опис зображення введіть тут опис зображення


2
@DJohnson Не жартую. Звичайне 10-кратне резюме, тобто кожен навчальний набір має n = 72, а кожен тестовий набір n = 8.
Амеба каже: Відновити Моніку

2
Це далеко не звичайне резюме. З огляду на те, як можна було очікувати чогось подібного до помітного результату?
Майк Хантер

3
@DJohnson Я не розумію, чому ти кажеш, що це далеко не зазвичай. Це те, що становить 10-кратний резюме.
амеба каже: Відновити Моніку

2
@ seanv507 Я бачу. Ну, я пропоную визначити "рішення з лямбда = 0" як "рішення з мінімальною нормою з лямбда = 0". Я думаю, моє запитання можна переформулювати так: За яких умов буде OLS-рішення з мінімальною нормою з n <p overfit порівняно з not overfit?
Амеба каже, що поверніть Моніку

3
@amoeba: Дякую за це запитання. На сьогодні це було надзвичайно повчально та цікаво.
usεr11852 повідомляє Відновити Моніку

Відповіді:


23

Природна регуляризація відбувається через наявність у теоретичній PCA багатьох безлічі дрібних компонентів . Ці невеликі компоненти неявно використовуються для пристосування шуму за допомогою малих коефіцієнтів. Використовуючи мінімальну норму OLS, ви підходите до шуму безлічі маленьких незалежних компонентів, і це має ефект регуляризації, еквівалентний регуляризації хребта. Ця регуляризація часто занадто сильна, і компенсувати її можна, використовуючи "антирегуляризацію", відому як негативний хребет . У такому випадку ви побачите, що мінімум кривої MSE з'являється для негативних значень .λxλ

Під теоретичним PCA я маю на увазі:

Нехай багатоваріантний нормальний розподіл. Існує лінійна ізометрія така як де - діагональна: компоненти незалежні. просто отримується діагоналізацією .f u = f ( x ) N ( 0 , D ) D u D ΣxN(0,Σ)fu=f(x)N(0,D)DuDΣ

Тепер модель можна записати (лінійна ізометрія зберігає крапковий добуток). Якщо ви пишете , модель може бути записана . Крім тогоотже, такі методи пристосування, як Ridge або мінімальна норма OLS, абсолютно ізоморфні: оцінювач є зображенням оцінювача .y=β.x+ϵy=f(β).f(x)+ϵγ=f(β)y=γ.u+ϵβ=γy=γ.u+ϵfy=β.x+ϵ

Теоретична PCA перетворює незалежні предиктори в незалежні предиктори. Це лише слабко пов'язане з емпіричним PCA, де ви використовуєте матрицю емпіричної коваріації (що сильно відрізняється від теоретичної з малим розміром вибірки). Теоретичний PCA практично не обчислюється, але тут використовується лише для інтерпретації моделі в ортогональному прогностичному просторі.

Давайте подивимося, що станеться, коли ми додамо до моделі безліч незалежних прогнозів невеликої дисперсії:

Теорема

Регуляризація хребта з коефіцієнтом еквівалентна (коли ) до:λp

  • додавання підроблених незалежних предикторів (по центру та однаково розподіленим), кожен з яких має відхиленняpλp
  • відповідність збагаченої моделі мінімальним нормативом OLS-оцінки
  • зберігаючи лише параметри для справжніх прогнозів

(ескіз) Доказ

Ми збираємось довести, що функції витрат асимптотично рівні. Давайте розділимо модель на реальні та підроблені провісники: . Функцію витрат Ridge (для справжніх прогнозів) можна записати:y=βx+βx+ϵ

costλ=β2+1λyXβ2

При використанні мінімальної норми OLS відповідь підходить ідеально: термін помилки дорівнює 0. Функція витрат стосується лише норми параметрів. Його можна розділити на справжні параметри та підроблені:

costλ,p=β2+inf{β2Xβ=yXβ}

У правильному виразі рішення мінімальної норми задається:

β=X+(yXβ)

Тепер використовується SVD для :X

X=UΣV

X+=VΣ+U

Ми бачимо, що норма по суті залежить від сингулярних значень які є взаємними значеннями сингулярних значень . Нормалізована версія - . Я переглянув літературу та окремі значення великих випадкових матриць добре відомі. Для і достатньо великих розмірів мінімальні та максимальні сингулярні значення апроксимуються (див. Теорему 1.1 ):βX+XXp/λXpnsminsmax

smin(p/λX)p(1n/p)
smax(p/λX)p(1+n/p)

Так як при великому , прагне до 0, ми можемо тільки сказати , що все особливі значення аппроксимируются . Таким чином:pn/pp

β1λyXβ

Нарешті:

costλ,pβ2+1λyXβ2=costλ

Примітка . Неважливо, чи зберігаєте ви у своїй моделі коефіцієнти підроблених прогнозів. Дисперсія, введена є . Таким чином, ви збільшуєте свій MSE лише на коефіцієнт який у будь-якому випадку спрямований на 1. Якось не потрібно ставитися до підроблених передбачувачів інакше, ніж до справжніх.βxλpβ21pyXβ2npMSE(β)1+n/p

Тепер повернемося до даних @ amoeba. Після застосування теоретичного PCA до (вважається нормальним) перетворюється лінійною ізометрією в змінну , компоненти якої незалежні і сортуються у порядку зменшення дисперсії. Задача еквівалентна перетвореній задачі .xxuy=βx+ϵy=γu+ϵ

А тепер уявіть, як виглядає дисперсія компонентів:

введіть тут опис зображення

Розглянемо багато останніх компонентів, назвіть суму їх дисперсії . Кожна з них має дисперсію, приблизно приблизну і є незалежною. Вони відіграють роль фальшивих предикторів у теоремі.pλλ/p

Цей факт є чіткішим у моделі @ jonny: лише перша складова теоретичної PCA корелює з (вона пропорційна ) і має величезну дисперсію. Усі інші компоненти (пропорційні ) мають порівняно дуже малу дисперсію (запишіть коваріаційну матрицю та діагоналізуйте її, щоб побачити це) та грають роль фальшивих прогнозів. Я підрахував, що регуляризація тут відповідає (приблизно) попередньому на тоді як справжній . Це однозначно зменшується. Це видно за тим, що кінцевий MSE набагато більший, ніж ідеальний MSE. Ефект регуляризації занадто сильний.yx¯xix¯N(0,1p2)γ1γ12=1p

Іноді можливо покращити цю природну регуляризацію Рідж. По-перше, вам іноді потрібен у дійсно великій теоремі (1000, 10000 ...), щоб серйозно конкурувати з Ріджем, а кінцевість - як неточність. Але це також показує, що Рідж - це додаткова регуляризація над природно наявною неявною регуляризацією і, таким чином, може мати лише дуже малий ефект. Іноді ця природна регуляризація вже занадто сильна, і Рідж може навіть не бути покращенням. Більше цього краще використовувати антирегуляризацію: Хребет з від’ємним коефіцієнтом. Це показує MSE для моделі @ jonny ( ), використовуючи :ppp=1000λR

введіть тут опис зображення


2
+1 Дуже приємно, дякую, що написав це. Я думаю, що важливо уточнити, що, коли ви говорите "регуляризація", ви маєте на увазі регуляризацію (тобто хребта). Можна сподіватися, що ласо або еластична сітка може вести себе краще, і саме це люди використовують у ситуаціях. Ніхто не використовує чистий хребет у таких умовах, а стандартна порада - використовувати регуляризатори, що забезпечують рідкість; тому поведінка чистого хребта може мати лише академічний інтерес. І все-таки досить дивовижно, що ми, здається, виявляємо це тут. Чому це невідомо ?? L2np
Амеба каже, що повернеться до Моніки

1
Погано жорстко закодований пропорційний . Вибачте, що не встиг на щось належне. Моя основна увага зосередилась на поведінці мінімальної норми OLS, щоб побачити, що вона відрізняється від вашого прикладу і що "деяка не надто погана регуляризація" на 40 перших була жорстоко кращою. λσ2
Бенуа Санчес

3
Я думаю, що я зрозумів таємницю: регуляризація хребта з коефіцієнтом еквівалентна мінімальній нормі OLS, додаючи підроблені предиктори кожного з варіацією (асимптотично для великого ). За вашими даними та моделлю Джонні, це відбувається без нічого, завдяки найменшим компонентам дисперсії від PCA. Тепер мені потрібен час, щоб знайти спосіб пояснити це чітко ...λpλ/pp
Бенуа Санчес

1
Я уточнив невеликий момент: коефіцієнти фальшивих передбачувачів значно не збільшують помилку (див. Примітку в кінці доказу). Це важливо, оскільки у ваших даних / джонні вони неминуче зберігаються.
Бенуа Санчес

3
Я спробував негативний Ридж. Я не можу повірити, але це працює !!! (і не тільки за моделлю Джонні ...)
Бенуа Санчес

16

Дякую всім за велику дискусію, що триває. Суть справи полягає в тому, що OLS з мінімальними нормами ефективно виконує усадку, схожу на регресію хребта. Здається, це відбувається щоразу, коли . За іронією долі, додавання провісників чистого шуму навіть може використовуватися як дуже дивна форма або регуляризація.pn


Частина I. Демонстрація штучних даних та аналітичне резюме

@Jonny (+1) придумав дійсно простий штучний приклад, який я тут трохи адаптую. з розміром і генеруються таким чином, що всі змінні є гауссовими з одиничною дисперсією, а кореляція між кожним предиктором та відповіддю є . Я виправлю .Xn×pyρρ=.2

Я використовуватиму резюме, що залишається один, оскільки є аналітичний вираз для помилки у квадраті: він відомий як PRESS , "передбачувана сума квадратів". де - залишки а - матриця капелюха у частині SVD . Це дозволяє копіювати результати @ Jonny без використання та без фактичної перехресної перевірки (я будую графік відношення PRESS до суми квадратів ):

PRESS=i(ei1Hii)2,
ei
e=yy^=yHy,
H
H=X(XX+λI)1X=US2S2+λU
X=USVglmnety

введіть тут опис зображення

Цей аналітичний підхід дозволяє обчислити межу в . Просто підключити до формули PRESS не працює: коли і , залишки всі нульові, а матриця hat - матриця тотожності з одиницями по діагоналі, тобто фракції в PRESS рівняння не визначені. Але якщо ми обчислимо обмеження у , то воно відповідатиме мінімальним нормальним рішенням OLS з .λ0λ=0n<pλ=0λ0λ=0

Хитрість полягає в тому, щоб виконати розширення Тейлора матриці капелюхів, коли : Тут я ввів матрицю Грама .λ0

H=U11+λ/S2UU(1λ/S2)U=IλUS2U=IλG1.
G=XX=US2U

Ми майже закінчили:Лямбда була скасована, тому тут ми маємо граничне значення. Я намалював це великою чорною крапкою на малюнку вгорі (на панелях, де ), і вона ідеально відповідає.

PRESS=i(λ[G1y]iλGii1)2=i([G1y]iGii1)2.
p>n

Оновлення 21 лютого. Вищенаведена формула є точною, але ми можемо отримати деяке розуміння, зробивши подальші наближення. Схоже, що має приблизно однакові значення по діагоналі, навіть якщо має дуже неоднакові значення (можливо, тому, що досить добре змішує всі власні значення). Отже, для кожного ми маємо, що де кутові дужки позначають усереднення. Використовуючи це наближення, ми можемо переписати:Це наближення зображено на малюнку вище червоними відкритими колами.G1SUiGii1S2

PRESSS2S2Uy2.

Чи буде це бути більше або менше , ніж залежить від особливих значень . У цьому моделюванні корелює з першим ПК тому великий, а всі інші доданки малі. (У моїх реальних даних також добре прогнозується провідними ПК.) Тепер, у випадку , якщо стовпці є достатньо випадковими, то всі сингулярні значення будуть досить близькими один до одного (рядки приблизно ортогональні). "Головний" термінy2=Uy2SyXU1yypnXU1yбуде помножено на коефіцієнт, менший від 1. Умови в кінці будуть множитися на коефіцієнти, більші за 1, але не набагато більші. В цілому норма знижується. На відміну від цього, у випадку знайдуться дуже маленькі сингулярні значення. Після інверсії вони стануть великими факторами, що збільшать загальну норму.pn

[Цей аргумент дуже рухомий; Я сподіваюся, що це можна зробити більш точним.]

Як перевірка обґрунтованості, якщо я поміняю порядок сингулярних значень, S = diag(flipud(diag(S)));тоді передбачуваний MSE вище повсюди на 2-й та 3-й панелях.1

figure('Position', [100 100 1000 300])
ps = [10, 100, 1000];

for pnum = 1:length(ps)
    rng(42)
    n = 80;
    p = ps(pnum);
    rho = .2;
    y = randn(n,1);
    X = repmat(y, [1 p])*rho + randn(n,p)*sqrt(1-rho^2);

    lambdas = exp(-10:.1:20);
    press = zeros(size(lambdas));
    [U,S,V] = svd(X, 'econ');
    % S = diag(flipud(diag(S)));   % sanity check

    for i = 1:length(lambdas)
        H = U * diag(diag(S).^2./(diag(S).^2 + lambdas(i))) * U';
        e = y - H*y;
        press(i) = sum((e ./ (1-diag(H))).^2);
    end

    subplot(1, length(ps), pnum)
    plot(log(lambdas), press/sum(y.^2))
    hold on
    title(['p = ' num2str(p)])
    plot(xlim, [1 1], 'k--')

    if p > n
        Ginv = U * diag(diag(S).^-2) * U';
        press0 = sum((Ginv*y ./ diag(Ginv)).^2);
        plot(log(lambdas(1)), press0/sum(y.^2), 'ko', 'MarkerFaceColor', [0,0,0]);

        press0approx = sum((diag(diag(S).^-2/mean(diag(S).^-2)) * U' * y).^2);
        plot(log(lambdas(1)), press0approx/sum(y.^2), 'ro');
    end
end

Частина ІІ. Додавання чистих предикторів шуму як форми регуляризації

Хороші аргументи висловили @Jonny, @Benoit, @Paul, @Dikran та інші, що збільшення кількості прогнозів призведе до зменшення рішення OLS з мінімальною нормою. Дійсно, щойно , будь-який новий предиктор може лише знизити норму рішення мінімальної норми. Таким чином, додавання предикторів призведе до зменшення норми, дещо схоже на те, як регресія хребта карає норму.p>n

То чи можна це використовувати як стратегію регуляризації? Почнемо з і а потім продовжуємо додавати чистих прогнозів шуму як спробу регуляризації. Я буду робити LOOCV і порівнювати його з LOOCV для хребта (обчислюється як вище). Зверніть увагу, що після отримання на провісниках, я "обрізаю" його на тому що мене цікавлять лише оригінальні прогнози.n=80p=40qβ^p+qp

введіть тут опис зображення

ЦЕ ПРАЦЮЄ!!!

Насправді, бета-версію не потрібно «обрізати»; навіть якщо я використовую повну бета-версію та повний предиктори, я можу отримати хороші показники (пунктирна лінія праворуч. Це, на мій погляд, імітує мої фактичні дані у запитанні: лише деякі передбачувачі справді прогнозують , більшість з них чистий шум, і вони служать регуляризацією. У цьому режимі додаткова регуляризація гребеня зовсім не допомагає.p+qy

rng(42)
n = 80;
p = 40;
rho = .2;
y = randn(n,1);
X = repmat(y, [1 p])*rho + randn(n,p)*sqrt(1-rho^2);

lambdas = exp(-10:.1:20);
press = zeros(size(lambdas));
[U,S,V] = svd(X, 'econ');

for i = 1:length(lambdas)
    H = U * diag(diag(S).^2./(diag(S).^2 + lambdas(i))) * U';
    e = y - H*y;
    press(i) = sum((e ./ (1-diag(H))).^2);
end

figure('Position', [100 100 1000 300])
subplot(121)
plot(log(lambdas), press/sum(y.^2))
hold on
xlabel('Ridge penalty (log)')
plot(xlim, [1 1], 'k--')
title('Ridge regression (n=80, p=40)')
ylim([0 2])

ps = [0 20 40 60 80 100 200 300 400 500 1000];
error = zeros(n, length(ps));
error_trunc = zeros(n, length(ps));
for fold = 1:n
    indtrain = setdiff(1:n, fold);
    for pi = 1:length(ps)
        XX = [X randn(n,ps(pi))];
        if size(XX,2) < size(XX,1)
            beta = XX(indtrain,:) \ y(indtrain,:);
        else
            beta = pinv(XX(indtrain,:)) * y(indtrain,:);
        end
        error(fold, pi) = y(fold) - XX(fold,:) * beta;
        error_trunc(fold, pi) = y(fold) - XX(fold,1:size(X,2)) * beta(1:size(X,2));
    end
end

subplot(122)
hold on
plot(ps, sum(error.^2)/sum(y.^2), 'k.--')
plot(ps, sum(error_trunc.^2)/sum(y.^2), '.-')
legend({'Entire beta', 'Truncated beta'}, 'AutoUpdate','off')
legend boxoff
xlabel('Number of extra predictors')
title('Extra pure noise predictors')
plot(xlim, [1 1], 'k--')
ylim([0 2])

@MartijnWeterings У цьому експерименті я починаю з n = 80 і p = 40. Коли загальна кількість предикторів (p + q) наближається до n = 80, проблема стає поганою умовою, і рішення OLS переважає різко. Існує величезний пік помилки навколо q = 40. Як тільки p + q> n, обмеження "мінімальної норми" починає зменшуватися, і помилка починає зменшуватися, але проходить деякий час, поки він не повернеться туди, де було з q = 0. Це відбувається навколо q = 70, тобто p + q = 130. Після цього похибка ще більше зменшується, і ця частина ділянки схожа на регресійний графік хребта. Чи має сенс?
Амеба каже: Відновити Моніку

@MartijnWeterings На 1-му коментарі: ми на одній сторінці. Щодо другого коментаря: в моєму питанні я не обрізаю бета-версію, це правильно. Але насправді, якщо я не обрізаю бета-версію у своєму моделюванні (використовую y(fold) - XX(fold,:) * betaзамість XX(fold,1:size(X,2)) * beta(1:size(X,2))), результати не надто змінюються. Я думаю, я повинен додати це до своєї відповіді. Я думаю, що мої вихідні дані свідчать про таку поведінку.
Амеба каже: Відновити Моніку

(1/2): Я все ще працюю над усіма коментарями та кодом, щоб зрозуміти, але в мене виникає думка: чи існує взаємозв'язок між цим явищем, яке ми спостерігаємо, і співвідношенням між регресією хребта та випадковими ефектами?
Райан Сіммонс

(2/2): Тут на відповідь Ренделя ( stats.stackexchange.com/questions/122062/… ) ми бачимо оцінку, еквівалентну між випадковими ефектами та регресією хребта, де лямбда дорівнює відношенню залишків до дисперсії випадковий ефект. Тут, відповідно до відповіді Бенуа Санчеса, ми бачимо, що регресія хребта еквівалентна додаванню довільної кількості фальшивих незалежних прогнокторів, кожен з відхиленням, рівним функції лямбда та кількості параметрів. Мені здається, є концептуальні стосунки.
Райан Сіммонс

@amoeba це була помилка. додавання масштабованого вектора y до матриці X робить дещо регуляризованим, але не таким же, як регресний або регресний вектори. Однак мене не дивує, що трапляється, коли ми віднімаємо трохи від кожного x, щоб кожна змінна була дещо негативно корельованою (або менш позитивною) з вектором y. Це для того, щоб здійснити деяку «негативну» регуляризацію. Це для того, щоб "скасувати" регуляризацію 1000 векторів (в певний момент це може стати занадто великим, як ви бачите, коли коефіцієнт піку / оптимального регуляризації зараз майже поза діапазоном). y
Секст Емпірік

15

Ось штучна ситуація, коли це відбувається. Припустимо, кожна змінна предиктора є копією цільової змінної із великою кількістю застосованого гаусового шуму. Найкраща можлива модель - це середнє значення всіх змінних прогнозів.

library(glmnet)
set.seed(1846)
noise <- 10
N <- 80
num.vars <- 100
target <- runif(N,-1,1)
training.data <- matrix(nrow = N, ncol = num.vars)
for(i in 1:num.vars){
  training.data[,i] <- target + rnorm(N,0,noise)
}
plot(cv.glmnet(training.data, target, alpha = 0,
               lambda = exp(seq(-10, 10, by = 0.1))))

MSE для різних лямбда з 100 передбачувачами

100 змінних поводяться "нормально": деяке позитивне значення лямбда мінімізується із-за помилки вибірки.

Але збільште число.vars у наведеному вище коді до 1000, і ось новий шлях MSE. (Я продовжив лог (Lambda) = -100, щоб переконати себе.

MSE для різних лямбда з 1000 передбачувачами

Те, що я думаю, що відбувається

При встановленні безлічі параметрів з низькою регуляризацією коефіцієнти випадковим чином розподіляються навколо їх справжнього значення з великою дисперсією.

Оскільки кількість предикторів стає дуже великою, "середня помилка" має тенденцію до нуля, і стає краще просто дозволити падіння коефіцієнтів там, де вони можуть, і підсумувати все, а не зміщувати їх до 0.

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

Редагувати:

"Плоска" поведінка для дуже низької лямбда завжди буде, оскільки рішення конвергується до мінімальної норми OLS. Аналогічно, крива буде плоскою для дуже високої лямбда, оскільки розчин сходиться до 0. Не буде мінімального, якщо один з цих двох розчинів є оптимальним.

Чому рішення OLS з мінімальною нормою настільки (порівняно) добре в цьому випадку? Я думаю, що це пов'язане з такою поведінкою, яку я вважав дуже контрінтуїтивною, але в роздумах має багато сенсу.

max.beta.random <- function(num.vars){
  num.vars <- round(num.vars)
  set.seed(1846)
  noise <- 10
  N <- 80
  target <- runif(N,-1,1)
  training.data <- matrix(nrow = N, ncol = num.vars)

  for(i in 1:num.vars){
    training.data[,i] <- rnorm(N,0,noise)
  }
  udv <- svd(training.data)

  U <- udv$u
  S <- diag(udv$d)
  V <- udv$v

  beta.hat <- V %*% solve(S) %*% t(U) %*% target

  max(abs(beta.hat))
}


curve(Vectorize(max.beta.random)(x), from = 10, to = 1000, n = 50,
      xlab = "Number of Predictors", y = "Max Magnitude of Coefficients")

abline(v = 80)

Діаграма максимальної величини коефіцієнтів із збільшенням кількості прогнокторів збільшується

Якщо випадково генеровані передбачувачі не пов'язані з відповіддю, оскільки p збільшує коефіцієнти стають більшими, але, коли р набагато більший за N, вони зменшуються до нуля. Це трапляється і в моєму прикладі. Так що дуже нещільно, нерегламентовані рішення цих проблем не потребують усадки, оскільки вони вже дуже малі!

Це трапляється з тривіальної причини. може бути виражений точно в вигляді лінійної комбінації стовпців . - вектор мінімальних норм коефіцієнтів. У міру додавання більшої кількості стовпців норма повинна зменшуватися або залишатися незмінною, оскільки можлива лінійна комбінація - зберегти попередні коефіцієнти однаковими, а нові коефіцієнти - .yXβ^β^0


1
(+1). Здається, це явище трапляється тоді, коли прогнози співвідносяться. Формально це не означає, що крива помилок не має мінімуму для позитивного , а також, що межа у 0 не є великим. Це просто означає, що крива, як правило, стає плоскою, і що величина наскільки мала повинна бути регуляризованою, щоб припинити роботу, має тенденцію до 0 для великого . Тут цей поріг виходить за рамки обчислювальної межі, але відповідь Firebug припускає, що він завжди може існувати. λλp
Бенуа Санчес

1
Для чого вам потрібне glmnetоновлення? Якщо вам потрібна лише мінімальна норма OLS-рішення, то існує пряма формула (див. Другу формулу в моєму запитанні), і якщо одна обчислює SVD то ця формула стає просто . Можливо, також існує функція R, яка обчислює це рішення, але я не знаю R :)X=USVβ^=VS1Uy
амеба каже, що повернеться до Моніки

2
Якщо подумати над цим ще трохи, це зовсім не дивно. може бути виражений точно в вигляді лінійної комбінації векторів в . - вектор коефіцієнтів з найменшою нормою. Коли ви додаєте вектор, норма повинна зменшуватися або залишатися однакового розміру, тому що ви можете зберегти старі коефіцієнти однаковими, а нові встановити на нуль. yXβ^β^
Джоні Ломонд

3
Приклад Джоні хороший, тому що він уже проаналізований: див . Оцінювач Джеймса-Штейна . Оцінюючи середнє значення фіксованого вектора з розмірністю 3 або більше, ми завжди можемо покращитись при простому усередненні шляхом зміщення до нуля, що є більш-менш тим, що робить регресія хребта. Цікаво, чи можливо поліпшення занадто незначне, щоб спостерігатись у цьому випадку? θ
Пол

3
Загальновідомий факт, що регресія хребта еквівалентна додаванню до набору даних додаткових "фальшивих" зразків, при цьому кожен зразок, що має значення в одній функції та нулі скрізь, а всі відповіді відповідають нулю. (Це тривіально переписати функцію витрат на RR у цій формі.) Мені зараз цікаво, чи є спосіб додати додаткові функції (наприклад, чистий шум?), Який мав би подібний ефект. Звичайно, додавання додаткових функцій означає, що збільшить її розмірність, але можна було б дивитись на його значення лише у "оригінальних" прогнокторів. @Paulpλβ^
каже

6

Тому я вирішив запустити вкладену перехресну перевірку за допомогою спеціалізованого mlrпакету в R, щоб побачити, що насправді виходить із підходу моделювання.

Код (для запуску звичайного ноутбука потрібно кілька хвилин)

library(mlr)
daf = read.csv("https://pastebin.com/raw/p1cCCYBR", sep = " ", header = FALSE)

tsk = list(
  tsk1110 = makeRegrTask(id = "tsk1110", data = daf, target = colnames(daf)[1]),
  tsk500 = makeRegrTask(id = "tsk500", data = daf[, c(1,sample(ncol(daf)-1, 500)+1)], target = colnames(daf)[1]),
  tsk100 = makeRegrTask(id = "tsk100", data = daf[, c(1,sample(ncol(daf)-1, 100)+1)], target = colnames(daf)[1]),
  tsk50 = makeRegrTask(id = "tsk50", data = daf[, c(1,sample(ncol(daf)-1, 50)+1)], target = colnames(daf)[1]),
  tsk10 = makeRegrTask(id = "tsk10", data = daf[, c(1,sample(ncol(daf)-1, 10)+1)], target = colnames(daf)[1])
)

rdesc = makeResampleDesc("CV", iters = 10)
msrs = list(mse, rsq)
configureMlr(on.par.without.desc = "quiet")
bm3 = benchmark(learners = list(
    makeLearner("regr.cvglmnet", alpha = 0, lambda = c(0, exp(seq(-10, 10, length.out = 150))),
    makeLearner("regr.glmnet", alpha = 0, lambda = c(0, exp(seq(-10, 10, length.out = 150))), s = 151)
    ), tasks = tsk, resamplings = rdesc, measures = msrs)

Результати

getBMRAggrPerformances(bm3, as.df = TRUE)
#   task.id    learner.id mse.test.mean rsq.test.mean
#1    tsk10 regr.cvglmnet     1.0308055  -0.224534550
#2    tsk10   regr.glmnet     1.3685799  -0.669473387
#3   tsk100 regr.cvglmnet     0.7996823   0.031731316
#4   tsk100   regr.glmnet     1.3092522  -0.656879104
#5  tsk1110 regr.cvglmnet     0.8236786   0.009315037
#6  tsk1110   regr.glmnet     0.6866745   0.117540454
#7    tsk50 regr.cvglmnet     1.0348319  -0.188568886
#8    tsk50   regr.glmnet     2.5468091  -2.423461744
#9   tsk500 regr.cvglmnet     0.7210185   0.173851634
#10  tsk500   regr.glmnet     0.6171841   0.296530437

Вони в основному виконують те саме для завдань.

Отже, як щодо оптимальних лямбда?

sapply(lapply(getBMRModels(bm3, task.ids = "tsk1110")[[1]][[1]], "[[", 2), "[[", "lambda.min")
# [1] 4.539993e-05 4.539993e-05 2.442908e-01 1.398738e+00 4.539993e-05
# [6] 0.000000e+00 4.539993e-05 3.195187e-01 2.793841e-01 4.539993e-05

Зауважте, лямбди вже перетворені. Деякі рази навіть вибрали мінімальний лямбда .λ=0

Я трохи більше поспілкувався glmnetі не виявив ні мінімальної лямбда. Перевірка:

Редагувати:

Після коментарів амеби з'ясувалося, що шлях регуляризації є важливим кроком в glmnetоцінці, тому код тепер це відображає. Таким чином, більшість розбіжностей зникло.

cvfit = cv.glmnet(x = x, y = y, alpha = 0, lambda = exp(seq(-10, 10, length.out = 150)))
plot(cvfit)

введіть тут опис зображення

Висновок

Отже, в основному дійсно покращує придатність ( редагувати: але не набагато! ).λ>0

Як це можливо і що це говорить про мій набір даних? Я пропускаю щось очевидне чи це насправді контрінтуїтивне?

Ми, ймовірно, ближче до справжнього розподілу налаштувань даних до малого значення, що перевищує нуль. У цьому немає нічого контрінтуїтивного.λ

Редагувати: Майте на увазі, хоча шлях регуляризації хребта використовує попередні оцінки параметрів, коли ми викликаємо glmnet, але це поза моїми знаннями. Якщо ми встановимо дуже низьку lambdaізоляцію, це, швидше за все, погіршить продуктивність.

EDIT: Вибір лямбда говорить про ваші дані. Оскільки великі лямбдази знижують продуктивність, це означає , що у вашій моделі є переважні, тобто більші коефіцієнти, оскільки великі лямбдаси зменшують всі коефіцієнти до нуля. Хоча означає, що ефективні ступені свободи у вашій моделі менші, ніж уявні ступені свободи, .λ0p

Як може існувати якісна різниця між р = 100 і р = 1000, враховуючи, що обидва більше n?

p=1000 незмінно містить принаймні однакову інформацію або навіть більше .p=100


Коментарі

Здається, ви отримуєте крихітний мінімум для якоїсь ненульової лямбда (я дивлюся на вашу фігуру), але крива все-таки дійсно плоска зліва від неї. Тож головним моїм питанням залишається, чому λ → 0 помітно не підходить. Тут я ще не бачу відповіді. Чи очікуєте ви цього загального явища? Тобто для будь-яких даних з n≪p, лямбда = 0 буде [майже] настільки ж хорошим, як і оптимальна лямбда? Або це щось особливе у цих даних? Якщо ви подивитесь вище в коментарі, то побачите, що багато людей навіть не повірили мені, що це можливо.

Я думаю, ви пов'язуєте ефективність перевірки з тестовою продуктивністю, і таке порівняння не є гарантійним.

Редагувати: помічайте, хоча коли ми встановимо lambda0 після запуску всього шляху регуляризації, продуктивність як така не погіршується, тому шлях регуляризації є ключовим для розуміння того, що відбувається!

Крім того, я не зовсім розумію ваш останній рядок. Подивіться на вихід cv.glmnet для p = 100. Він буде мати зовсім іншу форму. Отже, що впливає на цю форму (асимптота зліва проти асимптоти), коли p = 100 або p = 1000?

Порівняємо шляхи регуляризації для обох:

fit1000 = glmnet(x, y, alpha = 0, lambda = exp(seq(-10,10, length.out = 1001)))
fit100 = glmnet(x[, sample(1000, 100)], y, alpha = 0, lambda = exp(seq(-10,10, length.out = 1001)))
plot(fit1000, "lambda")

введіть тут опис зображення

x11()
plot(fit100, "lambda")

введіть тут опис зображення

Зрозуміло, що дає більший коефіцієнт при збільшенні , навіть якщо він має менші коефіцієнти для асимптотично-OLS-гребеня, зліва від обох ділянок. Таким чином, в основному перевищує ліворуч від графіка, і це, ймовірно, пояснює різницю в поведінці між ними.p=1000λp=100

Для важче переборщити, тому що, хоча Ридж скорочує коефіцієнти до нуля, вони ніколи не досягають нуля. Це означає, що сила прогнозування розподіляється між багатьма компонентами, що спрощує передбачення середнього значення, а не захопленням шумом.p=1000


+1 Дякуємо, що зробили ці експерименти! Здається, ви отримуєте крихітний мінімум для якоїсь ненульової лямбда (я дивлюся на вашу фігуру), але крива все-таки дійсно плоска зліва від неї. Тож основним моїм питанням залишається, чому не помітно переповнює. Тут я ще не бачу відповіді. Чи очікуєте ви цього загального явища? Тобто для будь-яких даних з , лямбда = 0 буде [майже] настільки ж хорошим, як і оптимальна лямбда? Або це щось особливе у цих даних? Якщо ви подивитесь вище в коментарі, то побачите, що багато людей навіть не повірили мені, що це можливо. λ0np
амеба каже: Відновити Моніку

Крім того, я не зовсім розумію ваш останній рядок. Подивіться на cv.glmnetвихід для p = 100. Він буде мати зовсім іншу форму. Отже, що впливає на цю форму (асимптота зліва проти асимптоти), коли p = 100 або p = 1000?
Амеба каже: Відновити Моніку

Чи знаєте ви, чи mlrвибирає lambda.minабо lambda.1secv.glmnetтермінології)?
Амеба каже: Відновити Моніку

@amoeba lambda.min. Також є regr.cvglmnetучень, який, ймовірно, дозволяє обирати інші правила.
Firebug

Дякую. Якщо чесно, я не розумію вихід вашого показника 1e-100. Наприклад, p = 1100, це дає MSE = 1,45. Але тут відсутня настройка гіперпараметрів у внутрішній циклі, так що взагалі не потрібна внутрішня петля CV. Це означає, що результат повинен бути таким же, як і при невкладеному резюме при лямбда = 1e-100. Але ми бачимо на першій цифрі, що середній показник MSE становить близько 0,7. Для мене це не має сенсу.
Амеба каже: Відновити Моніку

5

Яким чином (мінімальна норма) OLS не може перевиконати?

Коротко:

Експериментальні параметри, що співвідносяться з (невідомими) параметрами в справжній моделі, швидше за все, будуть оцінені з високими значеннями в процедурі встановлення мінімальної норми OLS. Це тому, що вони відповідатимуть «модель + шум», тоді як інші параметри підходять лише до «шуму» (таким чином, вони помістять більшу частину моделі з меншим значенням коефіцієнта і, швидше за все, мають високе значення в мінімальній нормі OLS).

Цей ефект дозволить зменшити кількість надягання при мінімальній нормі OLS-процедури. Ефект є більш вираженим, якщо доступно більше параметрів, оскільки з тих пір стає більшою ймовірність, що більша частина "справжньої моделі" буде включена в оцінку.

Довша частина:
(Я не впевнений, що тут розмістити, оскільки питання мені не зовсім зрозуміло, або я не знаю, до якої точності потрібно відповісти, щоб вирішити питання)

Нижче наводиться приклад, який легко побудувати і демонструє проблему. Ефект не такий дивний, і приклади легко зробити.

  • Я взяв sin-функцій (оскільки вони перпендикулярні) як змінніp=200
  • створили випадкову модель з вимірювань. n=50
    • Модель побудована лише з змінних, тому 190 із 200 змінних створюють можливість генерувати надмірні розміри.tm=10
    • модельні коефіцієнти визначаються випадковим чином

У цьому прикладі ми бачимо, що є деяка перевиконання, але коефіцієнти параметрів, що належать до справжньої моделі, мають більш високе значення. Таким чином, R ^ 2 може мати деяке позитивне значення.

Зображення нижче (та код для його створення) демонструють, що надмірне розміщення обмежене. Точки, які стосуються моделі оцінки 200 параметрів. Червоні точки відносяться до тих параметрів, які також є у "справжній моделі", і ми бачимо, що вони мають більш високе значення. Таким чином, існує деякий ступінь наближення до реальної моделі та отримання R ^ 2 вище 0.

  • Зауважимо, що я використовував модель з ортогональними змінними (синусо-функції). Якщо параметри співвідносяться, вони можуть виникати в моделі з відносно дуже високим коефіцієнтом і ставати більш покараними при мінімальній нормі OLS.
  • Зауважимо, що "ортогональні змінні" не є ортогональними, коли ми розглядаємо дані. Внутрішній добуток дорівнює лише нулю, коли ми інтегруємо весь простір а не тоді, коли у нас є лише кілька зразків . Наслідком цього є те, що навіть при нульовому шумі відбудеться перезміщення (а здається, що значення R ^ 2 залежить від багатьох факторів, крім шуму. Звичайно, є співвідношення і , але також важливо, скільки змінних у справжній моделі та скільки їх у примірній моделі).sin(ax)sin(bx)xxnp

приклад зменшення перевитрати

library(MASS)

par(mar=c(5.1, 4.1, 9.1, 4.1), xpd=TRUE)

p <- 200       
l <- 24000
n <- 50
tm <- 10

# generate i sinus vectors as possible parameters
t <- c(1:l)
xm <- sapply(c(0:(p-1)), FUN = function(x) sin(x*t/l*2*pi))

# generate random model by selecting only tm parameters
sel <- sample(1:p, tm)
coef <- rnorm(tm, 2, 0.5)

# generate random data xv and yv with n samples
xv <- sample(t, n)
yv <- xm[xv, sel] %*% coef + rnorm(n, 0, 0.1)

# generate model
M <- ginv(t(xm[xv,]) %*% xm[xv,])

Bsol <- M %*% t(xm[xv,]) %*% yv
ysol <- xm[xv,] %*% Bsol

# plotting comparision of model with true model
plot(1:p, Bsol, ylim=c(min(Bsol,coef),max(Bsol,coef)))
points(sel, Bsol[sel], col=1, bg=2, pch=21)
points(sel,coef,pch=3,col=2)

title("comparing overfitted model (circles) with true model (crosses)",line=5)
legend(0,max(coef,Bsol)+0.55,c("all 100 estimated coefficients","the 10 estimated coefficients corresponding to true model","true coefficient values"),pch=c(21,21,3),pt.bg=c(0,2,0),col=c(1,1,2))

Укорочена бета-техніка стосовно регресії хребта

Я перетворив код пітона з Амеби в R і поєднав два графіки разом. Для кожної мінімальної норми оцінки OLS з доданими змінними шуму я співпадаю з оцінкою регресії хребта з однаковим (приблизно) -нормом для вектора .l2β

  • Схоже, модель усіченого шуму робить те саме (лише обчислює трохи повільніше, а може бути, трохи частіше і менше).
  • Однак без усічення ефект набагато менш сильний.
  • Ця відповідність між додаванням параметрів і штрафом не обов'язково є найсильнішим механізмом відсутності надмірної підгонки. Це особливо добре видно в кривій 1000p (на зображенні питання), що дорівнює майже 0,3, тоді як інші криві, з різною p, не досягають цього рівня, незалежно від параметра регресії хребта. У цьому практичному випадку додаткові параметри не є такими ж, як зміщення параметра гребня (і, мабуть, це тому, що додаткові параметри створять кращу, більш повну модель).

  • Параметри шуму знижують норму з одного боку (подібно до регресії хребта), але також вносять додатковий шум. Бенуа Санчес показує, що в межах межі, додавши багато багатьох параметрів шуму з меншим відхиленням, він з часом стане таким самим, як регресія хребта (зростаюча кількість параметрів шуму скасовує один одного). Але в той же час для цього потрібно набагато більше обчислень (якщо збільшити відхилення шуму, щоб дозволити використовувати менше параметрів і прискорити обчислення, різниця стає більшою).

Rho = 0,2 порівняння усіченого шуму з регресією хребта

Rho = 0,4 порівняння усіченого шуму з регресією хребта

Rho = 0,2, збільшуючи дисперсію параметрів шуму до 2 порівняння усіченого шуму з регресією хребта

приклад коду

# prepare the data
set.seed(42)
n = 80
p = 40
rho = .2
y = rnorm(n,0,1)
X = matrix(rep(y,p), ncol = p)*rho + rnorm(n*p,0,1)*(1-rho^2)

# range of variables to add
ps = c(0, 5, 10, 15, 20, 40, 45, 50, 55, 60, 70, 80, 100, 125, 150, 175, 200, 300, 400, 500, 1000)
#ps = c(0, 5, 10, 15, 20, 40, 60, 80, 100, 150, 200, 300) #,500,1000)

# variables to store output (the sse)
error   = matrix(0,nrow=n, ncol=length(ps))
error_t = matrix(0,nrow=n, ncol=length(ps))
error_s = matrix(0,nrow=n, ncol=length(ps))

# adding a progression bar
pb <- txtProgressBar(min = 0, max = n, style = 3)

# training set by leaving out measurement 1, repeat n times 
for (fold in 1:n) {
    indtrain = c(1:n)[-fold]

    # ridge regression
    beta_s <- glmnet(X[indtrain,],y[indtrain],alpha=0,lambda = 10^c(seq(-4,2,by=0.01)))$beta
    # calculate l2-norm to compare with adding variables
    l2_bs <- colSums(beta_s^2)

    for (pi in 1:length(ps)) {
        XX = cbind(X, matrix(rnorm(n*ps[pi],0,1), nrow=80))
        XXt = XX[indtrain,]

        if (p+ps[pi] < n) {
            beta = solve(t(XXt) %*% (XXt)) %*% t(XXt) %*% y[indtrain]
        }
        else {
            beta = ginv(t(XXt) %*% (XXt)) %*% t(XXt) %*% y[indtrain]
        }

        # pickout comparable ridge regression with the same l2 norm      
        l2_b <- sum(beta[1:p]^2)
        beta_shrink <- beta_s[,which.min((l2_b-l2_bs)^2)] 

        # compute errors
        error[fold, pi] = y[fold] - XX[fold,1:p] %*% beta[1:p]
        error_t[fold, pi] = y[fold] - XX[fold,] %*% beta[]
        error_s[fold, pi] = y[fold] - XX[fold,1:p] %*% beta_shrink[]
    }
    setTxtProgressBar(pb, fold) # update progression bar
}

# plotting
plot(ps,colSums(error^2)/sum(y^2) , 
     ylim = c(0,2),
     xlab ="Number of extra predictors",
     ylab ="relative sum of squared error")
lines(ps,colSums(error^2)/sum(y^2))
points(ps,colSums(error_t^2)/sum(y^2),col=2)
lines(ps,colSums(error_t^2)/sum(y^2),col=2)
points(ps,colSums(error_s^2)/sum(y^2),col=4)
lines(ps,colSums(error_s^2)/sum(y^2),col=4)

title('Extra pure noise predictors')

legend(200,2,c("complete model with p + extra predictors",
               "truncated model with p + extra predictors",
               "ridge regression with similar l2-norm",
               "idealized model uniform beta with 1/p/rho"),
       pch=c(1,1,1,NA), col=c(2,1,4,1),lt=c(1,1,1,2))

# idealized model (if we put all beta to 1/rho/p we should theoretically have a reasonable good model)
error_op <- rep(0,n)
for (fold in 1:n) {
  beta = rep(1/rho/p,p)
    error_op[fold] = y[fold] - X[fold,] %*% beta
}
id <- sum(error_op^2)/sum(y^2)
lines(range(ps),rep(id,2),lty=2)

1
(+1) Дякую Я думаю, що інтуїтивний аргумент на початку вашої відповіді має сенс.
Амеба каже: Відновити Моніку

1

Якщо ви знайомі з лінійними операторами, то, можливо, вам сподобається моя відповідь як найбільш прямий шлях до розуміння явища: чому регресія норми найменшої норми не провалюється прямо? Причина полягає в тому, що ваша проблема ( ) - це неправомірна обернена проблема, а псевдо-зворотна є одним із способів її вирішення. Однак регуляризація - це покращення.np

Цей документ, мабуть, є найбільш компактним і актуальним поясненням: Лоренцо Росаско та ін., Навчання, регуляризація та недоброзичливі зворотні проблеми . Вони задають вашу проблему регресії як навчання, див. Урівень 3, де кількість параметрів перевищує кількість спостережень: де - лінійний оператор на просторі Гільберта, а - шумні дані.

Ax=gδ,
Agδ

Очевидно, що це неправильна обернена проблема. Таким чином, ви можете вирішити це за допомогою SVD або Мура-Пенроуза, зворотного, що справді мало б рішення з найменшою нормою. Таким чином, не повинно дивуватися, що ваше найменше нормальне рішення не виходить з ладу.

Однак якщо ви дотримуєтесь роботи, то видно, що регресія хребта буде покращенням вищесказаного. Поліпшення дійсно є кращою поведінкою оцінювача, оскільки рішення Мура-Пенроуза не обов'язково обмежується.

ОНОВЛЕННЯ

Я зрозумів, що не даю зрозуміти, що недобре поставлені проблеми призводять до надмірного пристосування. Ось цитата з статті Gábor A, Banga JR. Надійна та ефективна оцінка параметрів у динамічних моделях біологічних систем . Біологія систем BMC. 2015; 9: 74. doi: 10.1186 / s12918-015-0219-2:

Неправильне обумовлення цих проблем, як правило, виникає внаслідок (i) моделей з великою кількістю параметрів (надпараметризація), (ii) дефіциту експериментальних даних та (iii) значних помилок вимірювань [19, 40]. Як наслідок, ми часто отримуємо надмірну кількість таких кінетичних моделей, тобто каліброваних моделей з розумним підходом до наявних даних, але поганою здатністю до узагальнення (низька прогнозованість)

Отже, мій аргумент можна викласти так:

  • погано поставлені проблеми призводять до надмірного оснащення
  • (n <p) випадок - надзвичайно недобре поставлена ​​зворотна проблема
  • Псудоінверсія Мура-Пенроуза (або інші інструменти, такі як SVD), про які ви посилаєтесь у питанні як , вирішує неправомірну задачуX+
  • отже, вона піклується про надмірне обладнання, принаймні, до певної міри, і не слід дивуватися, що це не повністю виходить з ладу, на відміну від звичайного OLS повинно

Знову ж таки, регуляризація - все ж більш надійне рішення.


1
(+1) Дякую, але я не зовсім розумію, наскільки цей документ актуальний. Я розгляну це завтра детальніше. Де саме вони говорять про те, що OLS-рішення з мінімальною нормою не буде перевищувати або що вимога мінімальної норми може розглядатися як регуляризація?
Амеба каже: Відновити Моніку

1
Давайте обговоримо, коли ви прочитаєте статтю. Вони не кажуть, що псудо зворотне - це регуляризація. Що вони кажуть, що це рішення неправомірної проблеми. Що я говорю, це те, що перевиконання пов'язане з поганою сутністю проблеми, тому, звертаючись до останнього, ви піклуєтесь про колишнє, хоч і не так, як з регуляризацією.
Аксакал

1
Я думаю, що дивовижне полягає не в тому, що рішення мінімальної норми певною мірою не полегшує переналагодження, а те, що додавання більшої кількості регуляризації не покращує справи. Крім того, чому рішення мінімальної норми є більш ефективним, оскільки кількість ознак зростає. Моя інтуїція полягає в тому, що проблеми з більшою кількістю параметрів потребують більше регуляризації (інакше всі рівні), а не менше. Це дійсно цікава проблема і може допомогти пояснити, чому, наприклад, навіть нерегулярні нейронні мережі не надто підходять, як ви могли очікувати.
Дікран Марсупіал

1
@Dikran Насправді інші форми чи регуляризація все ще можуть покращити продуктивність: наприклад, я можу покращити продуктивність (порівняно з мінімальною нормою OLS) за допомогою регресії основних компонентів або з еластичною сіткою. Просто регуляризація хребта стає марною. Аналогія нейронних мереж - це захоплююча думка, яка не перейшла мені на думку. Те , що я зробив думати про недавно , хоча, є те , що не дивно , що ніхто не розуміє , чому складні глибокі навчання речі , як пакетної нормалізації реально працювати, враховуючи , що навіть лінійна регресія гряда з статистики 101 може бути настільки загадкове :-)
амеба говорить відновило Моніка

2
Це не головне питання, але я вважаю, що ця іначе відмінна серія питань, відповідей та коментарів ухилилася від перехресної перевірки. Для цього обговорення було б набагато простіше обчислити лінійний предиктор сукупності з s, які використовувались для моделювання даних, та для обчислення MSE будь-якого оцінювача лінійного предиктора. І я бачив випадок, коли для я не зміг знайти оптимально скореговану AIC для регресії хребта ( функція пакету R ). Але мені потрібно повторити це, використовуючи справжній лінійний предиктор як золотий стандарт. βn<<prmsols
Френк Харрелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.