Proyeksi regularisasi dan vektor terhubung melalui ide optimasi terbatas dan kondisi Karush-Kuhn (tidak ada hubungan) .
Bagaimana kondisi KKT?
Secara singkat, ini menyatakan bahwa, jika x adalah solusi untuk masalah "kecilkan f(x) tunduk pada g(x)≤0", kemudian x juga merupakan solusi untuk masalah tersebut ∇f(x)=λ∇g(x) untuk beberapa skalar λ. Tapi ini sama dengan mengatakan∇f(x)−λ∇g(x)=0, yang artinya xmeminimalkan masalah optimisasi yang tidak dibatasi "minimalf(x)−λg(x)".
Intuisinya adalah:
g(x)<0. Pada kasus ini,x adalah "solusi interior" sehingga gradien fharus nol pada saat itu. (Jika bukan nol, kita bisa bergerak sedikit ke arah itu darix, sambil mempertahankan g(x)<0, dan memiliki nilai lebih tinggi untuk f(x). Lalu kita aturλ=0 dan kita sudah selesai.
Atau, g(x)=0. Pada kasus ini,xada di tepi ruang solusi yang memungkinkan. Secara lokal, tepi ini terlihat seperti hyperplane orthogonal ke gradien∇g(x), karena cara Anda mempertahankan g(x)=0kendala adalah untuk tidak bergerak ke atas atau ke bawah gradien sama sekali. Tetapi itu berarti bahwa satu-satunya arah gradien∇f mungkin bisa menunjuk adalah arah yang sama persis seperti ∇g--Jika memiliki komponen yang ortogonal ∇g, kita bisa bergerak x sedikit ke arah itu, tetap di hyperplane ortogonal g(x)=0, dan meningkat f(x).
Bagaimana kondisi KKT menjelaskan hubungan antara minimisasi terbatas dan regularisasi
Jika g(x)=|x|−c untuk beberapa norma dan beberapa konstan c, lalu kendala g(x)≤0 maksudnya x terletak di bidang jari-jari cdi bawah norma itu. Dan dalam formulasi yang tidak dibatasi, kurangiλg(x) dari fungsi yang ingin Anda maksimalkan inilah yang akhirnya menerapkan hukuman regularisasi: Anda benar-benar mengurangi λ|x|+λc (dan konstanta λc tidak masalah untuk optimasi).
Orang sering mengambil keuntungan dari "dualitas" ini antara optimasi yang tidak dibatasi dan dibatasi. Untuk contoh yang bisa saya temukan dengan cepat dengan Googling lihat On the LASSO dan dualnya .
Mengapa proyeksi penting di sini?
OK, jadi mengapa seseorang menulis makalah tentang proyeksi cepat?
Pada dasarnya, satu cara Anda dapat melakukan optimasi terbatas - "maksimalkan f(x) tunduk pada x∈X"- adalah untuk melakukan hal berikut:
- Ambil algoritma iteratif apa pun untuk maksimisasi tanpa batasanf(x)
- Mulailah dengan menebak x0
- Ambil satu langkah dari algoritma: x′0←step(x0)
- Kemudian proyeksikan kembali ke set X: x1←PX(x′0).
- Dan ulangi sampai konvergensi.
Sebagai contoh, ini adalah bagaimana proyeksi gradient descent diturunkan dari gradient descent biasa. Tentu saja, mengoptimalkan fungsi proyeksi AndaPX sangat penting di sini.
Menyatukan semuanya
Jadi, anggaplah Anda ingin menyelesaikan LASSO:
argminβ(y−β′X)2+λ||β||1
Itu versi yang tidak dibatasi. Dengan kondisi KKT, menambahkan istilah regularisasi setara dengan membatasi solusi untuk berbohong||β||1≤c untuk beberapa konstan c. Tapi itu baru sajaℓ1-Bola dengan jari-jari c!
Jadi Anda dapat membayangkan menyelesaikan ini dengan proyeksi (sub) gradient descent. * Jika Anda melakukannya, Anda PX Fungsi akan menjadi proyeksi ke bola unit, dan Anda ingin membuatnya cepat.
* Saya tidak berpikir orang benar-benar melakukan ini, karena ada cara yang lebih efisien. Tetapi mereka mungkin menggunakan proyeksi juga. EDIT: seperti yang ditunjukkan @Dougal, varian yang lebih canggih dari keturunan yang diproyeksikan cukup bagus untuk menulis makalah tentang tahun 2008.