Differenza tra regressione cresta primordiale, doppia e del kernel


18

Qual è la differenza tra Primal , Dual e Kernel Ridge Regression? Le persone usano tutte e tre le cose e, a causa della diversa notazione che tutti usano su fonti diverse, è difficile per me seguire.

Qualcuno può dirmi in parole semplici qual è la differenza tra questi tre? Inoltre, quali potrebbero essere alcuni vantaggi o svantaggi di ciascuno e quale può essere la loro complessità?

Risposte:


39

Risposta breve: nessuna differenza tra Primal e Dual: riguarda solo il modo di arrivare alla soluzione. La regressione della cresta del kernel è essenzialmente la stessa della normale regressione della cresta, ma usa il trucco del kernel per andare non lineare.

Regressione lineare

Prima di tutto, una normale regressione lineare dei minimi quadrati cerca di adattare una linea retta all'insieme dei punti dati in modo tale che la somma degli errori al quadrato sia minima.

enter image description here

Parametrizziamo la linea di adattamento migliore con w e per ciascun punto dati (xi,yi) vogliamo wTxiyi . Sia ei=yiwTxi l'errore - la distanza tra i valori previsti e reali. Quindi il nostro obiettivo è ridurre al minimo la somma degli errori al quadrato ei2=e2=Xwy2dove X=[x1x2xn]- una matrice di dati traxiessendo una riga, ey=(y1, ... ,yn)un vettore con tutti iyis'.

Pertanto, l'obiettivo è minwXwy2 e la soluzione è w=(XTX)1XTy (nota come "Equazione normale").

Per un nuovo punto dati invisibile ne prevediamo il valore target as .xyy^y = w T xy^=wTx

Regressione della cresta

Quando ci sono molte variabili correlate nei modelli di regressione lineare, i coefficienti w possono diventare scarsamente determinati e presentare molte varianze. Una delle soluzioni a questo problema è quello di limitare i pesi w in modo che non superino un certo budget C . Ciò equivale all'utilizzo della regolarizzazione di L2 , nota anche come "riduzione del peso": diminuirà la varianza al costo di perdere talvolta i risultati corretti (ovvero introducendo alcuni errori).

Ora l'obiettivo diventa minwXwy2+λw2 , conλ come parametro di regolarizzazione. Passando attraverso la matematica, otteniamo la seguente soluzione:w=(XTX+λI)1XTy . E 'molto simile al consueto regressione lineare, ma qui si aggiungeλ a ciascun elemento diagonale diXTX .

Nota che possiamo riscrivere w come w=XT(XXT+λI)1y (vediquiper i dettagli). Per un nuovo punto di dati invisibilex prevediamo il suo valore bersaglio y come y = x T w = x T X Ty^y^=xTw=xTXT(XXT+λI)1y . Siaα=(XXT+λI)1y . Poi y = x T X T α = n Σ i = 1 α ix T x i .y^=xTXTα=i=1nαixTxi

Doppia forma di regressione della cresta

Possiamo dare uno sguardo diverso al nostro obiettivo e definire il seguente problema di programma quadratico:

mine,wi=1nei2 stei=yiwTxi peri=1..n ew2C .

È lo stesso obiettivo, ma espresso in modo leggermente diverso, e qui il vincolo sulla dimensione di w è esplicito. Per risolverlo, definiamo la Lagrangiana Lp(w,e;C) - questa è la forma primaria che contiene variabili primarie w ed e . Poi abbiamo ottimizzarlo WRT e e w . Per ottenere il duplice formulazione, mettiamo trovato e e w torna a Lp(w,e;C) .

Quindi, Lp(w,e;C)=e2+βT(yXwe)λ(w2C) . Prendendo derivati ​​traw ed e , otteniamoe=12βew=12λXTβ. Lasciandoα=12λβ, e mettendoeewtorna aLp(w,e;C), otteniamo dual LagrangeLd(α,λ;C)=λ2α2+2λαTyλXTαλC . Se prendiamo un derivato wrtα , otteniamoα=(XXTλI)1y - la stessa risposta della solita regressione di Kernel Ridge. Non è necessario prendere un derivato wrλ - dipende daC , che è un parametro di regolarizzazione - e rende anche unparametro di regolarizzazioneλ .

Quindi, aggiungi α alla soluzione in forma primaria per w e ottieni w=12λXTβ=XTα. Pertanto, la doppia forma offre la stessa soluzione del solito Regressione della cresta, ed è solo un modo diverso per arrivare alla stessa soluzione.

Kernel Ridge Regression

I kernel vengono utilizzati per calcolare il prodotto interno di due vettori in alcuni spazi delle funzionalità senza nemmeno visitarlo. Possiamo vedere un kernel k come k(x1,x2)=ϕ(x1)Tϕ(x2) , anche se non sappiamo cosa sia ϕ() - sappiamo solo che esiste. Esistono molti kernel, ad esempio RBF, Polinonial, ecc.

Possiamo usare i kernel per rendere la nostra regressione della cresta non lineare. Supponiamo di avere un kernel k(x1,x2)=ϕ(x1)Tϕ(x2) . Sia Φ(X) una matrice in cui ogni riga è ϕ(xi) , ovvero Φ(X)=[ϕ(x1)ϕ(x2)ϕ(xn)]

Ora possiamo semplicemente prendere la soluzione per la regressione della cresta e sostituire ogni X con Φ(X) : w=Φ(X)T(Φ(X)Φ(X)T+λI)1y . Per un nuovo punto di dati invisibilex prevediamo suo valore nominale y come y = φ ( x ) T Φ ( X ) Ty^y^=ϕ(x)TΦ(X)T(Φ(X)Φ(X)T+λI)1y .

Innanzitutto, possiamo sostituire Φ(X)Φ(X)T con una matrice K , calcolata come (K)ij=k(xi,xj) . Quindi, ϕ(x)TΦ(X)T è i=1nϕ(x)Tϕ(xi)=i=1nk(x,xj). Quindi qui siamo riusciti a esprimere ogni punto prodotto del problema in termini di kernel.

Infine, lasciando α=(K+λI)1y (come in precedenza), si ottiene y = n Σ i = 1 α i k ( x , x j )y^=i=1nαik(x,xj)

Riferimenti


1
Sono impressionato dalla discussione ben organizzata. Tuttavia, il tuo primo riferimento a "valori anomali" mi ha confuso. Sembra i pesi applica alle variabili piuttosto che i casi, così come esattamente avrebbe aiutato regressione ridge rendere la soluzione robusta per periferiche casi , come suggerito dal illustrazione? w
whuber

Ottima risposta, Alexey (anche se non lo definirei "parole semplici")! +1 senza fare domande. Ti piace scrivere in LaTeX, vero?
Aleksandr Blekh,

2
Ho il sospetto che potresti confondere alcune cose di base qui. AFAIK, la regressione della cresta non è né una risposta né un modo di affrontare "osservazioni rumorose". OLS lo fa già. La regressione della cresta è uno strumento utilizzato per far fronte alla quasi collinearità tra i regressori. Tali fenomeni sono completamente diversi dal rumore nella variabile dipendente.
whuber

1
+1 whuber. Alexey you are right it is overfitting -ie too many parameters for the available data - not really noise. [ and add enough dimensions for fixed sample size and 'any' data set becomes collinear]. So a better 2-d picture for RR would be all the points clustered around (0,1) with a single point at (1,0) ['justifying' the slope parameter]. See ESL fig 3.9,page 67 web.stanford.edu/~hastie/local.ftp/Springer/OLD/…. also look at primal cost function: to increase weight by 1 unit, error must decrease by 1/λ unit
seanv507

1
λXTX
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.