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.
Parametrizziamo la linea di adattamento migliore con w e per ciascun punto dati (xi,yi) vogliamo wTxi≈yi . Sia ei=yi−wTxi l'errore - la distanza tra i valori previsti e reali. Quindi il nostro obiettivo è ridurre al minimo la somma degli errori al quadrato ∑e2i=∥e∥2=∥Xw−y∥2dove X=⎡⎣⎢⎢⎢⎢—x1——x2—⋮—xn—⎤⎦⎥⎥⎥⎥- una matrice di dati traxiessendo una riga, ey=(y1, ... ,yn)un vettore con tutti iyis'.
Pertanto, l'obiettivo è minw∥Xw−y∥2 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 minw∥Xw−y∥2+λ∥w∥2 , 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 α i ⋅ x T x i .y^=xTXTα=∑i=1nαi⋅xTxi
Doppia forma di regressione della cresta
Possiamo dare uno sguardo diverso al nostro obiettivo e definire il seguente problema di programma quadratico:
mine,w∑i=1ne2i stei=yi−wTxi peri=1..n e∥w∥2⩽C .
È 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)=∥e∥2+βT(y−Xw−e)−λ(∥w∥2−C) . 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