Pemrograman Quadratic dan Lasso

11

Saya mencoba melakukan regresi laso, yang memiliki bentuk sebagai berikut:

Minimalkan dalam( Y - X w ) ( Y - X w ) + λw(YXw)(YXw)+λ|w|1

Diberikan , saya disarankan untuk mencari optimal dengan bantuan pemrograman kuadratik, yang mengambil bentuk berikut:wλw

Minimalkan dalam , tunduk pada1xAxb.12xQx+cxAxb.

Sekarang saya menyadari bahwa istilah harus diubah menjadi istilah kendala , yang agak mudah. Namun, saya entah bagaimana tidak melihat bagaimana saya bisa mentransfer term pertama dari persamaan pertama ke term pertama dari yang kedua. Saya tidak dapat menemukan banyak tentang itu di internet, jadi saya memutuskan untuk bertanya di sini.A x bλAxb

spurra
sumber

Jawaban:

10

Ingatlah bahwa kami bekerja dengan sebagai variabel ' x ' dalam bentuk standar, perluas ( Y - X w ) ( Y - X w ) dan kumpulkan istilah dalam w wx(YXw)(YXw) dan di w dan w , dan konstanta.w[something]www

Jelaskan mengapa Anda dapat mengabaikan konstanta.

Jelaskan mengapa Anda dapat menggabungkan istilah dan w .ww


Seperti yang sudah diketahui oleh BananaCode dengan beberapa yang memimpin di sepanjang jalan, Anda bisa menulis dan c = - 2 X Y atau lebih sederhana, Anda bisa menulis Q = X X dan c = - X Y (karena f ( x ) dan k f ( x ) memiliki argumen yang sama untuk k > 0 ).Q=2XXc=2XY Q=XXc=XYf(x)kf(x)k>0

Glen_b -Reinstate Monica
sumber
Konstanta dapat diabaikan, karena jika x_ adalah minimum untuk f (x), maka x_ + c adalah minimum dari f (x) + c, maka kita dapat mengabaikan konstanta c. Saya akan mengedit pertanyaan saya untuk menunjukkan di mana saya terjebak.
spurra
BananaCode penjelasan Anda memiliki beberapa kekurangan. Jika dengan "adalah minimum ke " yang Anda maksudkan "adalah argumen di mana f ( x ) diminimalkan", Anda mengatakan sesuatu seperti " x adalah argumen dari f ". Tapi kesimpulanmu ada yang salah. Jika Anda menambahkan c ke f , Anda tidak menambahkan c ke argmin. f(x)f(x)xargminfcfc
Glen_b -Reinstate Monica
Lihat di mana saya menulis jawaban saya? Apasesuatu yangAnda sekarang memiliki antara w ' dan w di bagian bawah dari pertanyaan Anda ?? w[sesuatu]www
Glen_b -Reinstate Monica
Ya, maksud saya adalah a r g m i n dari f . Bisakah Anda memberi contoh di mana kesimpulan saya salah? The [ s o m e t h i n g ] adalah Q matriks Saya mencoba untuk bentuk. Jika saya memperluas w ( X X w - X Y ) Saya mendapatkan w X X w - w X xSebuahrgmsayanf[sHaimethsayang]Qw(XXw-XY) . Bagian pertama akan mewakili bentuk Q matriks, namun saya tidak bisa menyingkirkan jabatan kedua - w ' X ' Y . wXXw-wXYQ-wXY
spurra
1
@ AD.Net Kendala sebagian besar tercakup dalam jawaban lainnya.
Glen_b -Reinstate Monica
11

Saya ingin menambahkan bagaimana memecahkan mengubah kendala menjadi bentuk yang dapat digunakan untuk pemrograman kuadratik, karena tidak semudah yang saya pikir. Ini tidak mungkin untuk menemukan matriks nyata A sehingga A w s Σ | w i | s .|wsaya|sSEBUAHSEBUAHws|wsaya|s

Pendekatan yang saya gunakan adalah untuk membagi elemen dari vektor w menjadi w + i dan w - i , sehingga w i = w + i - w - i . Jika w i0 , Anda memiliki w + i = w i dan w - i = 0 , selain itu Anda memiliki w - i = | w i | dan wwsayawwsaya+wsaya-wsaya=wsaya+-wsaya-wsaya0wsaya+=wsayawsaya-=0wsaya-=|wsaya|. Atau dalam istilah yang lebih matematis,w + i =| wi| +Wiwsaya+=0 danw - i =| wi| -wiwsaya+=|wsaya|+wsaya2Baikw - i danw + i adalah angka non-negatif. Gagasan di balik pemisahan angka adalah bahwa Anda sekarang memiliki| wi| =w + i +w - i , secara efektif menghilangkan nilai absolut.wsaya-=|wsaya|-wsaya2.wsaya-wsaya+|wsaya|=wsaya++wsaya-

Fungsi untuk mengoptimalkan berubah menjadi: , tunduk pada w + i +w - is,12(w+-w-)TQ(w+-w-)+cT(w+-w-)wsaya++wsaya-s,wsaya+,wsaya-0

Di mana dan c diberikan seperti yang dinyatakan di atas oleh Glen_bQc

Ini perlu diubah menjadi bentuk yang dapat digunakan, yaitu kita perlu satu vektor. Ini dilakukan dengan cara berikut:

12[w+w-]T[Q-Q-QQ][w+w-]+[cT-cT][w+w-]

tunduk pada

[sayaDsayaD-saya2D][w+w-][sD02D]

Di mana adalah matriks unit D- dimensi, s D a D -vektor dimensi yang hanya terdiri dari nilai s dan 0 D a 2 D- dimensi nol vektor. Babak pertama memastikan | w i | = w + i + w - is , w + i kedua , w - i0 Sekarang sudah dalam bentuk yang dapat digunakan untuk menggunakan pemrograman kuadratik untuk mencariIDDsDDs0D2D|wsaya|=wsaya++wsaya-swsaya+,wsaya-0 dan w - , diberikan s . Setelah selesai, parameter optimal Anda sehubungan dengan s adalah w = w + - w - .w+w-ssw=w+-w-

Sumber dan bacaan lebih lanjut: Memecahkan masalah pemrograman kuadratik dengan kendala linear yang mengandung nilai absolut

spurra
sumber
Misalkan kita telah menemukan vektor dimensi- D yang optimal ( w + , w - ) . Apa yang memastikan bahwa w + dan w - sebenarnya adalah bagian positif dan negatif dari beberapa vektor w , yaitu posisi entri 0 mereka cocok? 2D(w+,w)w+ww0
Myath
Matriks dan vektor dalam ekspresi akhir bisa lebih sederhana, dan sebenarnya lebih benar. Alih-alih [Id Id] [w + w−] '≤ Sd Anda bisa dengan sederhana [1 1 .... 1] [w + w-]' ≤ s. Ini secara harfiah setara dengan | wi | = ∑ (wi + + wi−) ≤ dtk.
Marko