Apa itu optimasi konveks?
Optimasi konveks (convex optimization) adalah masalah meminimalkan fungsi konveks pada himpunan konveks. Sebuah fungsi disebut konveks kalau garis lurus di antara dua titik mana pun pada grafiknya tidak pernah turun ke bawah grafik itu, sehingga fungsinya hanya punya satu mangkuk tanpa dasar palsu. Setiap minimum lokal pada masalah konveks adalah minimum global, jadi masalah ini bisa diselesaikan dengan andal.
Banyak model ML klasik bersifat konveks: regresi linear dan logistik, ridge dan lasso, serta support vector machine. Pada model-model ini, training menemukan parameter terbaik di mana pun titik awalnya. Deep network tidak konveks, jadi permukaan loss-nya punya minimum lokal, saddle point, dan daerah datar. Mengetahui sifat mana yang hilang menjelaskan kenapa inisialisasi, momentum, dan pilihan learning rate begitu berpengaruh pada network seperti ini.
Ide utama
- Fungsi konveks berada di bawah setiap tali busur antara dua titik pada grafiknya.
- Pada masalah konveks, setiap minimum lokal adalah minimum global.
- Fungsi yang dua kali terdiferensialkan bersifat konveks kalau turunan keduanya, atau Hessian-nya, non-negatif di semua titik.
- Fungsi non-konveks bisa punya banyak minimum lokal, dan titik awal menentukan minimum mana yang ditemukan gradient descent.
- Saddle point punya gradient nol, tetapi melengkung ke atas di sebagian arah dan ke bawah di arah lain.
- Momentum merata-ratakan gradient sebelumnya, sehingga optimizer terbantu menggelinding melewati tonjolan kecil dan daerah datar.
Pertanyaan umum
Model machine learning mana yang punya loss function konveks?
Regresi linear dengan squared error, regresi logistik dengan cross-entropy, regresi ridge dan lasso, serta linear support vector machine semuanya konveks terhadap parameternya. Menambahkan hidden layer dengan aktivasi non-linear merusak konveksitas, karena menukar dua unit hidden menghasilkan kumpulan weight berbeda dengan loss yang sama.
Kenapa neural network bisa dilatih dengan baik walaupun non-konveks?
Network besar tampaknya punya banyak minimum bagus dengan loss yang mirip, jadi mendarat di salah satunya biasanya sudah cukup. Sebagian besar titik kritis yang buruk di dimensi tinggi adalah saddle point, bukan minimum, dan gradient yang ber-noise bisa melewatinya. Over-parameterization juga cenderung menghubungkan solusi-solusi bagus lewat jalur dengan loss rendah.
Apa itu himpunan konveks?
Sebuah himpunan bersifat konveks kalau ruas garis lurus di antara dua titik mana pun di dalamnya tetap berada di dalam himpunan itu. Bola, kotak, half-space, dan probability simplex bersifat konveks; cincin atau bulan sabit tidak. Optimasi konveks membutuhkan fungsi objektif yang konveks dan feasible set yang konveks.
Bagaimana masalah konveks diselesaikan dalam praktik?
Masalah yang mulus memakai metode gradient atau metode Newton; masalah dengan constraint sering memakai interior-point method. Pustaka seperti CVXPY memungkinkan kamu menulis masalah dalam bentuk matematis lalu meneruskannya ke solver. Untuk masalah ML berskala besar, metode orde pertama seperti SGD atau coordinate descent biasanya lebih dipilih karena setiap langkahnya murah.
Penjelasan terkait
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- Optimizer · SGD, momentum, dan Adam: gradient descent yang lebih cerdas
- Constrained Optimization · Lagrange multiplier: optimasi dengan constraint
- Turunan Parsial dan Gradient · Memperluas turunan satu variabel ke fungsi banyak variabel dan vector gradient
- Eigenvalue dan Eigenvector · Cara matriks mengubah ruang: eigenvector, eigenvalue, dan dekomposisi
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
Referensi
- Boyd & Vandenberghe, "Convex Optimization", Cambridge University Press (free PDF)
- Dauphin et al. (2014), "Identifying and attacking the saddle point problem in high-dimensional non-convex optimization"
- Li et al. (2018), "Visualizing the Loss Landscape of Neural Nets"
- Goodfellow, Bengio & Courville, "Deep Learning", ch. 8 Optimization for Training Deep Models
Terakhir diperbarui