Tahun lalu di NIPS 2017 Ali Rahimi dan Ben Recht memenangkan ujian penghargaan waktu untuk makalah mereka "Fitur Acak untuk Mesin Kernel Skala Besar" di mana mereka memperkenalkan fitur acak, yang kemudian dikodifikasikan sebagai algoritma kitchen sink acak. Sebagai bagian dari mempublikasikan makalah mereka, mereka menunjukkan bahwa model mereka dapat diimplementasikan dalam 5 baris matlab.
% Approximates Gaussian Process regression
% with Gaussian kernel of variance gamma^2
% lambda: regularization parameter
% dataset: X is dxN, y is 1xN
% test: xtest is dx1
% D: dimensionality of random feature
% training
w = randn(D,d);
b = 2 * pi * rand(D, 1);
Z = cos(gamma * w * X + b * ones(1,N));
alpha = (lambda * eye(D) +Z * Z') \ (Z * y);
% testing
ztest = alpha' * cos(gamma * w * xtest + b);
Bagaimana algoritma di atas mempelajari sesuatu tidak jelas bagi saya. Bagaimana cara kerja wastafel dapur acak? Bagaimana cara perkiraan proses Gaussian dan mendukung mesin vektor?
Edit
Mengutip pembicaraan Rahimi, istilah kitchen sink secara acak tidak diperkenalkan di surat kabar dimana mereka memenangkan penghargaan tetapi pada akhir trilogi makalah yang dimulai dengan "Fitur Acak untuk Mesin Kernel Skala Besar". Makalah lainnya adalah:
Saya pikir cuplikan kode yang diperkenalkan di atas adalah spesialisasi Algoritma 1 pada makalah terakhir.
sumber
Jawaban:
Wastafel dapur acak (atau fitur Fourier acak) dan metode terkait lainnya tidak berusaha melakukan inferensi melainkan mencoba mengurangi hambatan metode inferensi berbasis kernel.
Fitur Random Fourier (Rehimi & Recht 2007) dipertimbangkan untuk membuat perkiraan peringkat rendah dari kernel invarian shift dengan mengambil sampel hanya subset acak dari komponen Fourier kernel. Karena ruang Fourier berubah invarian, properti ini dipertahankan tetapi sekarang ruang Hilbert yang mereproduksi dimensi eksplisit eksplisit dibentuk oleh penyatuan komponen Fourier ini. RKHS dimensi yang tak terbatas sekali didekati oleh kernel perkiraan degenerasi.
Catatan tentang cuplikan kode: Ada beberapa detail yang disikat dalam 5 baris. Yang paling penting adalah bahwa fungsi Gaussian juga merupakan fungsi Gaussian di ruang Fourier, hanya varians yang dibalik. Itu sebabnya mereka mengambil sampel dari randn dan kemudian mengalikannya dengan varians. Kemudian mereka menghasilkan alfa yang hanya merupakan sub-prosedur untuk menemukan ztest. Pada dasarnya prediksi kernel normal seperti,
Komentar sampingan: Haruskah Anda menggunakannya? Jawabannya tidak jelas ya. Tergantung sepenuhnya pada apa yang Anda modelkan. Penggunaan ruang Fourier belum tentu sesuai untuk kernel invarian non-stasioner non-stasioner. Orang-orang tidak pernah mengklaim itu akan berhasil dalam pengaturan ini tetapi jika Anda baru memulai di daerah itu kadang-kadang nuansa tidak jelas.
sumber