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.