Perbedaan antara Primal, Dual dan Kernel Ridge Regression

18

Apa perbedaan antara Regresi Primal , Dual dan Kernel Ridge? Orang-orang menggunakan ketiganya, dan karena notasi yang berbeda yang digunakan setiap orang pada sumber yang berbeda sulit untuk saya ikuti.

Jadi bisakah seseorang memberi tahu saya dengan kata-kata sederhana apa perbedaan antara ketiganya? Selain itu apa yang bisa menjadi kelebihan atau kekurangan dari masing-masing, dan apa yang bisa menjadi kompleksitas mereka?

Jim Blum
sumber

Jawaban:

39

Jawaban singkat: tidak ada perbedaan antara Primal dan Dual - ini hanya tentang cara sampai pada solusi. Regresi ridge kernel pada dasarnya sama dengan regresi ridge biasa, tetapi menggunakan trik kernel untuk menjadi non-linear.

Regresi linier

Pertama-tama, Regresi Linear Least Squares biasa mencoba untuk mencocokkan garis lurus ke set titik data sedemikian rupa sehingga jumlah kesalahan kuadrat minimal.

masukkan deskripsi gambar di sini

Kami menetapkan garis yang paling cocok dengan w dan untuk setiap titik data (xi,yi) kami ingin wTxiyi . Biarkan ei=yiwTxi menjadi kesalahan - jarak antara nilai yang diprediksi dan nilai sebenarnya. Jadi tujuan kami adalah untuk meminimalkan jumlah kesalahan kuadrat ei2=e2=Xwy2di mana - sebuah matriks data dengan masing-masing menjadi baris, dan vektor dengan semua .X=[x1x2xn]xiy=(y1, ... ,yn)yi

Dengan demikian, tujuannya adalah , dan solusinya adalah (dikenal sebagai "Persamaan Normal").minwXwy2w=(XTX)1XTy

Untuk data titik yang tak terlihat baru kami memprediksi nya nilai target sebagai .xyy^y = w T xy^=wTx

Regresi Punggung

Ketika ada banyak variabel yang berkorelasi dalam model regresi linier, koefisien dapat menjadi buruk ditentukan dan memiliki banyak varian. Salah satu solusi untuk masalah ini adalah untuk membatasi bobot sehingga mereka tidak melebihi beberapa anggaran . Ini setara dengan menggunakan -regularisasi, juga dikenal sebagai "pembusukan berat": itu akan mengurangi varians dengan biaya kadang-kadang kehilangan hasil yang benar (yaitu dengan memperkenalkan beberapa bias).wwCL2

Tujuannya sekarang menjadi , dengan menjadi parameter regularisasi. Dengan mempelajari matematika, kita mendapatkan solusi berikut: . Ini sangat mirip dengan regresi linier biasa, tetapi di sini kami menambahkan ke setiap elemen diagonal .minwXwy2+λw2λw=(XTX+λI)1XTyλXTX

Perhatikan bahwa kita dapat menulis kembali sebagai (lihat di sini untuk detailnya). Untuk titik data baru yang tidak terlihat kami memperkirakan nilai targetnya sebagai . Biarkan . Kemudian .ww=XT(XXT+λI)1yx y y = x T w = x T X Txy^y^=xTw=xTXT(XXT+λI)1yα=(XXT+λI)1yy = x T X T α = n Σ i = 1y^=xTXTα=i=1nαixTxi

Ridge Regression Dual Form

Kita dapat memiliki pandangan yang berbeda pada tujuan kita - dan mendefinisikan masalah program kuadrat berikut:

mine,wi=1nei2 st untuk dan .ei=yiwTxii=1..nw2C

Ini adalah tujuan yang sama, tetapi dinyatakan agak berbeda, dan di sini batasan pada ukuran adalah eksplisit. Untuk menyelesaikannya, kita mendefinisikan Lagrangian - ini adalah bentuk primal yang berisi variabel primal dan . Kemudian kami mengoptimalkannya wrt dan . Untuk mendapatkan formulasi ganda, kami meletakkan ditemukan dan kembali ke .wLp(w,e;C)weewewLp(w,e;C)

Jadi, . Dengan mengambil turunan wrt dan , kita memperoleh dan . Dengan membiarkan , dan meletakkan dan kembali ke , kita dapat dual LagrangianLp(w,e;C)=e2+βT(yXwe)λ(w2C)wee=12βw=12λXTβα=12λβewLp(w,e;C)Ld(α,λ;C)=λ2α2+2λαTyλXTαλCα α = ( X X T - λ I ) - 1 y λ C λ . Jika kita mengambil turunan wrt , kita mendapatkan - jawaban yang sama dengan regresi Kernel Ridge biasa. Tidak perlu mengambil turunan wrt - itu tergantung pada , yang merupakan parameter regularisasi - dan itu membuat parameter regularisasi juga.αα=(XXTλI)1yλCλ

Selanjutnya, masukkan ke solusi form primal untuk , dan dapatkan . Dengan demikian, bentuk ganda memberikan solusi yang sama seperti Regresi Ridge biasa, dan itu hanya cara yang berbeda untuk sampai pada solusi yang sama.αww=12λXTβ=XTα

Regresi Ridge Kernel

Kernel digunakan untuk menghitung produk dalam dari dua vektor di beberapa ruang fitur bahkan tanpa mengunjunginya. Kita dapat melihat kernel sebagai , walaupun kita tidak tahu apa - kita hanya tahu itu ada. Ada banyak kernel, misalnya RBF, Polynonial, dll.kk(x1,x2)=ϕ(x1)Tϕ(x2)ϕ()

Kita dapat menggunakan kernel untuk membuat Regresi Punggung kita menjadi non-linear. Misalkan kita memiliki kernel . Biarkan menjadi matriks di mana setiap baris adalah , yaituk(x1,x2)=ϕ(x1)Tϕ(x2)Φ(X)ϕ(xi)Φ(X)=[ϕ(x1)ϕ(x2)ϕ(xn)]

Sekarang kita bisa mengambil solusi untuk Regresi Ridge dan mengganti setiap dengan : . Untuk titik data baru yang tidak terlihat kami memperkirakan nilai targetnya sebagai .XΦ(X)w=Φ(X)T(Φ(X)Φ(X)T+λI)1yxy^y^=ϕ(x)TΦ(X)T(Φ(X)Φ(X)T+λI)1y

Pertama, kita dapat mengganti dengan matriks , dihitung sebagai . Kemudian, adalah . Jadi di sini kami berhasil mengekspresikan setiap titik produk dari masalah dalam hal kernel.Φ(X)Φ(X)TK(K)ij=k(xi,xj)ϕ(x)TΦ(X)Ti=1nϕ(x)Tϕ(xi)=i=1nk(x,xj)

Akhirnya, dengan membiarkan (seperti sebelumnya), kita memperolehα=(K+λI)1yy^=i=1nαik(x,xj)

Referensi

Alexey Grigorev
sumber
1
Saya terkesan dengan diskusi yang terorganisir dengan baik. Namun, referensi awal Anda untuk "pencilan" membingungkan saya. Tampaknya bobot berlaku untuk variabel daripada kasus, jadi bagaimana tepatnya ridge regresi bantuan akan membuat solusi kuat untuk terpencil kasus , seperti yang disarankan oleh ilustrasi? w
whuber
Jawaban yang sangat bagus, Alexey (meskipun saya tidak akan menyebutnya "kata-kata sederhana")! +1 tanpa pertanyaan. Anda suka menulis di LaTeX, bukan?
Aleksandr Blekh
2
Saya menduga Anda mungkin membingungkan beberapa hal mendasar di sini. AFAIK, regresi ridge bukanlah respons terhadap atau cara mengatasi "pengamatan bising." OLS sudah melakukan itu. Regresi punggungan adalah alat yang digunakan untuk mengatasi hampir kolinearitas di antara para regresi. Fenomena-fenomena itu sama sekali berbeda dari kebisingan dalam variabel dependen.
whuber
1
+1 whuber. Alexey Anda benar itu overfitting -yaitu terlalu banyak parameter untuk data yang tersedia - tidak terlalu berisik. [dan tambahkan dimensi yang cukup untuk ukuran sampel tetap dan kumpulan data 'apa saja' menjadi collinear]. Jadi gambar 2-d yang lebih baik untuk RR adalah semua titik yang dikelompokkan di sekitar (0,1) dengan satu titik pada (1,0) ['membenarkan' parameter kemiringan]. Lihat ESL gbr 3.9, halaman 67 web.stanford.edu/~hastie/local.ftp/Springer/OLD/… . lihat juga fungsi biaya primer: untuk menambah berat sebesar 1 unit, kesalahan harus berkurang sebesar unit1/λ
seanv507
1
Saya percaya Anda berarti menambahkan ke elemen diagonal tidak mengurangi (?) Di bagian regresi ridge. Saya menerapkan suntingan. λXTX
Heteroskedastic Jim