Làm thế nào để một bồn rửa nhà bếp ngẫu nhiên làm việc?


18

Năm ngoái tại NIPS 2017 Ali Rahimi và Ben Recht đã giành được giải thưởng về thời gian cho bài báo "Tính năng ngẫu nhiên cho máy hạt nhân quy mô lớn" nơi họ giới thiệu các tính năng ngẫu nhiên, sau đó được mã hóa thành thuật toán bồn rửa nhà bếp ngẫu nhiên. Là một phần của việc công khai bài báo của họ, họ đã cho thấy rằng mô hình của họ có thể được thực hiện trong 5 dòng 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);

Làm thế nào các thuật toán trên học bất cứ điều gì là không rõ ràng với tôi. Làm thế nào để một bồn rửa nhà bếp ngẫu nhiên làm việc? Làm thế nào để nó gần đúng các quá trình Gaussian và máy vectơ hỗ trợ?

Biên tập

Nói lại cuộc nói chuyện của Rahimi, thuật ngữ bồn rửa nhà bếp ngẫu nhiên không được giới thiệu trong bài báo mà họ đã giành giải thưởng mà là ở phần cuối của bộ ba bài báo bắt đầu với "Tính năng ngẫu nhiên cho máy hạt nhân quy mô lớn". Các giấy tờ khác là:

Rahimi, Ali và Benjamin Recht. "Tính gần đúng thống nhất của các hàm với các cơ sở ngẫu nhiên." Truyền thông, Kiểm soát và Tính toán, Hội nghị Allerton thường niên lần thứ 46 năm 2008 về. IEEE, 2008.

Rahimi, Ali và Benjamin Recht. "Tổng số trọng lượng của bồn rửa nhà bếp ngẫu nhiên: Thay thế tối thiểu hóa bằng ngẫu nhiên trong học tập." Những tiến bộ trong hệ thống xử lý thông tin thần kinh. 2009.

Tôi nghĩ đoạn mã được giới thiệu ở trên là một chuyên ngành của Thuật toán 1 trong bài báo trước.


Cả từ "chìm" cũng không phải mã bạn trích dẫn xuất hiện trong bài báo được liên kết. Bạn đang thiếu một tài liệu tham khảo?
Kodiologist

2
Bạn hoàn toàn đúng, cảm ơn bạn. Không có bối cảnh của cuộc nói chuyện năm 2017, câu hỏi có vẻ hơi rời rạc! Ý tưởng đã được phát triển trong bài báo đầu tiên, tôi nghĩ nhưng thuật ngữ bồn rửa nhà bếp ngẫu nhiên chỉ được giới thiệu sau đó. Đoạn mã được phân phối tại phiên áp phích năm 2007 cho bài báo rõ ràng. Tôi đã phiên âm nó từ bài nói chuyện của Rahimi tại NIPS 2017.
MachineEpsilon

Câu trả lời:


15

Bồn rửa nhà bếp ngẫu nhiên (hoặc các tính năng Fourier ngẫu nhiên) và các phương pháp liên quan khác không nỗ lực thực hiện suy luận mà thay vào đó, họ cố gắng giảm tắc nghẽn của các phương pháp suy luận dựa trên hạt nhân.

n×nÔi(n3)

Các tính năng Fourier ngẫu nhiên (Rehimi & Recht 2007) đã xem xét việc tạo ra các xấp xỉ thứ hạng thấp của các hạt nhân bất biến dịch chuyển bằng cách chỉ lấy một tập hợp con ngẫu nhiên của các thành phần Fourier của hạt nhân. Vì không gian Fourier là bất biến dịch chuyển, thuộc tính này đã được bảo tồn nhưng giờ đây, một hạt nhân tái tạo chiều hữu hạn rõ ràng không gian Hilbert được hình thành bởi sự kết hợp của các thành phần Fourier này. RKHS một chiều vô hạn một lần được xấp xỉ bởi hạt nhân gần đúng suy biến.

Lưu ý về đoạn mã: Có một vài chi tiết được chải trong 5 dòng. Điều quan trọng nhất là hàm Gaussian cũng là một hàm Gaussian trong không gian Fourier, chỉ là phương sai được đảo ngược. Đó là lý do tại sao họ lấy mẫu từ randn và sau đó nhân với phương sai. Sau đó, họ tạo ra alpha chỉ là một thủ tục phụ để tìm ztest. Về cơ bản dự đoán hạt nhân bình thường trông như,

zteSt= =K(xteSt,x)(K(x,x)+λTôi)-1y.

zteSt= =Φ(xteSt)TΦ(x)(Φ(x)TΦ(x)+λTôi)-1y.

Ở đâu Φ() là vector tính năng Fourier ngẫu nhiên được đánh giá.

Nhận xét bên: Bạn có nên sử dụng nó? Câu trả lời không phải là có. Nó phụ thuộc hoàn toàn vào những gì bạn đang làm người mẫu. Việc sử dụng không gian Fourier không nhất thiết thích hợp cho các hạt nhân bất biến không dịch chuyển không cố định. Các chàng trai không bao giờ tuyên bố rằng nó sẽ hoạt động trong cài đặt này nhưng nếu bạn chỉ mới bắt đầu ở khu vực đó đôi khi các sắc thái không rõ ràng.


5
Mất một giây để nhận ra rằng điện toán alpha ở đây đang giải quyết vấn đề hồi quy sườn trong X và y với lambda thường xuyên. Nếu bạn đến từ GP thì nhìn vào công thức của bạn, điều này có phần rõ ràng, đến từ góc độ SVM thì hơi khó hiểu. "Dự đoán kernel bình thường" của bạn là một GP có thêm nhiễu, hay còn gọi là hồi quy kernel kernel.
Andreas Mueller

1
@AndreasMueller có xin lỗi đó là chính xác! Tôi rất nhiều từ cộng đồng GP ban đầu nên đôi khi bỏ qua điều đó! Rất vui vì bạn hiểu ý tôi rồi :)
j__

1
@j__, nếu bạn có thời gian, tôi có một câu hỏi về RFF ở đây: stats.stackexchange.com/questions/440633 . Có vẻ như câu trả lời cho câu hỏi của tôi là hiểu rõ hơn về RKHS và định lý representer.
gwg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.