작년 NIPS 2017에서 Ali Rahimi와 Ben Recht는 논문 "대규모 커널 머신 을위한 랜덤 기능 " 에서 무작위 기능을 도입 한 후 시간이 지남에 따라 테스트를 거쳤으며 , 이후 무작위 부엌 싱크 알고리즘으로 체계화되었습니다. 논문 발표의 일환으로, 모델은 5 줄의 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);
위의 알고리즘이 무엇을 배우는 방법은 분명하지 않습니다. 임의 부엌 싱크대는 어떻게 작동합니까? 가우시안 프로세스와 비슷하고 벡터 머신을 어떻게 지원합니까?
편집하다
Rahimi의 이야기를 살펴보면 랜덤 부엌 싱크대라는 용어는 상을받은 논문에 소개되지 않고 "대규모 커널 머신에 대한 임의의 특징"으로 시작하는 논문의 3 부작의 끝에서 소개됩니다. 다른 논문은 다음과 같습니다.
라 히미, 알리, 벤자민 레흐트. "무작위 부엌 싱크대의 무게 합계 : 학습의 최소화를 최소화로 대체합니다." 신경 정보 처리 시스템의 발전. 2009.
위에서 소개 한 코드 스 니펫은 마지막 논문에서 알고리즘 1을 전문으로 생각합니다.