Tuning Hyperparameter dalam Regresi Proses Gaussian

13

Saya mencoba untuk menyetel hyperparameter dari algoritma regresi proses gaussian yang telah saya terapkan. Saya hanya ingin memaksimalkan kemungkinan marginal log yang diberikan oleh rumus mana K adalah matriks kovarians dengan elemen K_ {ij} = k (x_i, x_j) = b ^ {- 1} \ exp (- \ frac {1} {2} (x_i-x_j) ^ TM (x_i-x_j)) + a ^ {- 1 } \ delta_ {ij} di mana M = lI dan a, b dan l adalah hyperparameters.

log(y|X,θ)=12yTKy1y12log(det(K))n2log(2π)
K
Kij=k(xi,xj)=b1exp(12(xixj)TM(xixj))+a1δij
M=lIa,bl

turunan sebagian dari parameter kemungkinan log marginal diberikan oleh

log(y|X,θ)dθ=12trace(K1dKdθ)+12(ydKdθK1dKdθy)

Sebagai entri dari K bergantung pada parameter, begitu derivatif dan kebalikan dari K . Ini berarti, ketika optimizer berbasis gradien digunakan, mengevaluasi gradien pada titik tertentu (nilai parameter) akan memerlukan perhitungan ulang dari matriks kovarians. Dalam aplikasi saya, ini tidak layak karena menghitung matriks kovarians dari awal dan menghitung kebalikannya dalam setiap iterasi kenaikan gradien terlalu mahal. Pertanyaan saya adalah apa pilihan saya untuk menemukan kombinasi yang cukup bagus dari ketiga parameter ini? dan saya juga tidak tahu parameter mana yang harus dioptimalkan terlebih dahulu dan saya akan menghargai petunjuk tentang masalah ini juga.

bfaskiplar
sumber
Saya sudah sukses menggunakan HMC untuk sampel parameter hiper GP untuk set data berukuran sedang.
Sycorax berkata Reinstate Monica
Hai @ Scorax, bisakah Anda memberi tahu kami bagaimana Anda menggunakan teknik ini untuk mengatasi masalah ini? Saya memiliki masalah yang sama seperti yang diminta OP dan telah berpikir untuk menggunakan MCMC untuk menyelesaikannya tetapi belum tahu bagaimana melakukannya.
Willian Fuks
Saya baru saja membuat kode dokter di Stan. Hyperparameters GP dinyatakan sebagai parameter model dan disimpulkan sesuai. Ini menghasilkan satu set prediksi untuk setiap iterasi HMC. Gelman menggambarkan bagaimana semua ini bekerja di BDA3.
Sycorax berkata Reinstate Monica

Jawaban:

6

Anda benar bahwa Anda memerlukan perhitungan matriks kovarians baru pada setiap iterasi kenaikan gradien. Jadi jika perhitungan matriks tidak layak untuk pengaturan Anda, maka, saya pikir, Anda tidak dapat menggunakan optimasi kemungkinan marginal berbasis marginal.

Saran saya adalah menggunakan metode bebas-gradien untuk penyetelan hyperparameter, seperti pencarian kotak, pencarian acak, atau pencarian berbasis optimasi Bayesian . Metode-metode ini banyak digunakan untuk hyperparameters optimasi algoritma pembelajaran mesin lainnya misalnya SVM.

Saya sarankan pencarian grid untuk percobaan pertama Anda. Anda pada dasarnya membentuk tabel (kisi-kisi) dari kemungkinan hiperparameter, coba semuanya, dan cari kinerja validasi terbaik (atau kemungkinan marginal terbaik).

Pencarian grid akan menghasilkan set hiperparameter suboptimal, dan Anda harus menentukan sendiri grid (tip: buat grid dalam skala log) tetapi perhitungan jauh lebih sedikit diperlukan. (dan Anda tidak perlu gradien!)

Jika Anda tidak terbiasa dengan pencarian kisi, Anda dapat mencari Wikipedia: Hyperparameter Optimization - Pencarian Kisi

Sangwoong Yoon
sumber