Programmazione quadratica e Lazo


11

Sto cercando di eseguire una regressione del lazo, che ha la seguente forma:

Riduci a icona inw(YXw)(YXw)+λ|w|1

Dato un , mi è stato consigliato di trovare w ottimale con l'aiuto della programmazione quadratica, che assume la seguente forma:λw

Riduci a icona x in 12xQx+cx , soggetto a Axb.

Ora mi rendo conto che il termine λ dovrebbe essere trasformato nel termine di vincolo Axb , che è piuttosto semplice. Tuttavia, in qualche modo non vedo come potrei trasferire il primo termine della prima equazione nel primo termine del secondo. Non ho trovato molto al riguardo in rete, quindi ho deciso di chiedere qui.

Risposte:


10

Tenendo presente che stiamo lavorando con come variabile ' ' nella forma standard, espandi e raccoglie i termini in e e , e costanti.x ( Y - X w ) ( Y - X w ) w wx(YXw)(YXw)w ww[something]www

Spiega perché puoi ignorare le costanti.

Spiega perché puoi combinare i termini e . www


Come BananaCode ha ormai capito con un po 'che porta lungo il percorso, è possibile scrivere e o più semplicemente, si può solo scrivere e (poiché e hanno lo stesso argmin per qualsiasi ).c = - 2 X Y Q = X X c = - X Y f ( x ) k f ( x ) k > 0Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0


Le costanti possono essere ignorate, perché se x_ è il minimo di f (x), allora x_ + c è il minimo di f (x) + c, quindi possiamo ignorare la costante c. Modificherò la mia domanda per mostrare dove mi sono bloccato.
spurra,

BananaCode la tua spiegazione ha diversi difetti. Se per "è il minimo di " intendi "è l'argomento in cui è minimizzato", dici qualcosa come " è il di ". Ma la tua conclusione è sbagliata. Se aggiungi a , non aggiungi all'argmin. f ( x ) x argmin f c f cf(x)f(x)xargminfcfc
Glen_b -Reinstate Monica,

Vedi dove ho scritto nella mia risposta? Qual è il qualcosa che ora hai tra e in fondo alla tua domanda ?? w ww[something]www
Glen_b -Reinstate Monica,

Sì, intendevo è l' di . Potresti fare un esempio in cui la mia conclusione è sbagliata? Il è la matrice che sto cercando di formare. Se espanderò ottengo . La prima parte rappresenterebbe la forma della matrice , tuttavia non riesco a liberarmi del secondo termine . a r g m i n f [ s o m e t h i n g ] Q w ( X X w - X Y ) w X X w - w X Y Q - w X Yxargminf[something]Qw(XXwXY)wXXwwXYQwXY
spurra,

1
@ AD.Net I vincoli sono per lo più coperti nell'altra risposta.
Glen_b

11

Volevo aggiungere come risolvere trasformando i vincoli in una forma utilizzabile per la programmazione quadratica, in quanto non è così semplice come pensavo. Non è possibile trovare una vera matrice tale che .A A w s | w io | s|wi|sAAws|wi|s

L'approccio che ho usato è stato quello di dividere gli elementi del vettore in e , in modo che . Se , hai e , altrimenti haie . O in termini più matematici, eSia che sono numeri non negativi. L'idea alla base di dividere i numeri è che ora hai wwiw w - i w i = w + i - w - i w i0 w + i = w i w - i = 0 w - i = | w io |wi+wiwi=wi+wiwi0wi+=wiwi=0wi=|wi|w + i = | w io | + w iwi+=0 w - i =| wio| -wiowi+=|wi|+wi2w - i w + i | wio| =w + i +w - iwi=|wi|wi2.wiwi+|wi|=wi++wi, eliminando efficacemente i valori assoluti.

La funzione da ottimizzare si trasforma in: , soggetto a w + i + w - is ,12(w+w)TQ(w+w)+cT(w+w)wi++wis,wi+,wi0

Dove e sono indicati come indicato sopra da Glen_bcQc

Questo deve essere trasformato in una forma utilizzabile, cioè abbiamo bisogno di un vettore. Questo viene fatto nel modo seguente:

12[w+w]T[QQQQ][w+w]+[cTcT][w+w]

soggetto a

[IDIDI2D][w+w][sD02D]

Dove è la matrice unitaria dimensionale, un -dimensionale vettore costituito esclusivamente dal valore e un -dimensionale vettore nullo. Il primo tempo assicura , il secondo Ora è in una forma utilizzabile usare la programmazione quadratica per cercare e , dato . Fatto ciò, il parametro ottimale rispetto a è . D s D D s 0 D 2 D | w io | = w + i + w - is w + i , w - i0 w + w - s s w = w + - w -IDDsDDs0D2D|wi|=wi++wiswi+,wi0w+wssw=w+w

Sorgente e ulteriori letture: risoluzione del problema di programmazione quadratica con vincoli lineari contenenti valori assoluti


Supponiamo che abbiamo trovato un ottimo dimensionale vettore . Cosa garantisce che e siano in realtà le parti positive e le parti negative di qualche vettore , ovvero le loro posizioni di entrata coincidono? ( w + , w - ) w + w - w 02D(w+,w)w+ww0
Myath,

La matrice e il vettore nell'espressione finale possono essere più semplici e in realtà più corretti. Invece di [Id Id] [w + w−] '≤ Sd potresti semplicemente inserire [1 1 .... 1] [w + w-]' ≤ s. Questo è letteralmente equivalente a ∑ | wi | = ∑ (wi + + wi−) ≤ s.
Marko
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.