อ่างครัวแบบสุ่มทำงานอย่างไร


18

เมื่อปีที่แล้วที่ NIPS 2017 Ali Rahimi และ Ben Recht ได้รับรางวัลการทดสอบเวลาสำหรับกระดาษของพวกเขา"คุณสมบัติการสุ่มสำหรับเคอร์เนลขนาดใหญ่"ที่พวกเขาแนะนำคุณสมบัติแบบสุ่มประมวลผลในภายหลังเป็นอัลกอริทึม sinks ครัวแบบสุ่ม ในฐานะที่เป็นส่วนหนึ่งของการเผยแพร่รายงานของพวกเขาพวกเขาแสดงให้เห็นว่าแบบจำลองของพวกเขาสามารถนำไปใช้ใน 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);

อัลกอริทึมข้างต้นเรียนรู้อะไรที่ไม่ชัดเจนสำหรับฉัน อ่างครัวแบบสุ่มทำงานอย่างไร มันประมาณกระบวนการ Gaussian และสนับสนุนเครื่องเวกเตอร์อย่างไร

แก้ไข

Rewatching คำพูดของ Rahimi คำว่า sinks ครัวแบบสุ่มไม่ได้ถูกนำเสนอในกระดาษที่พวกเขาได้รับรางวัล แต่ในตอนท้ายของตอนจบของเอกสารเริ่มต้นด้วย "คุณสมบัติสุ่มสำหรับเคอร์เนลขนาดใหญ่" เอกสารอื่น ๆ คือ:

Rahimi, Ali และ Benjamin Recht "การประมาณฟังก์ชั่นที่เหมือนกันด้วยฐานสุ่ม" การสื่อสารการควบคุมและการประมวลผลการประชุมประจำปี 2551 ครั้งที่ 46 ของ Allerton IEEE, 2008

Rahimi, Ali และ Benjamin Recht "ผลรวมถ่วงน้ำหนักของอ่างครัวแบบสุ่ม: เปลี่ยนการย่อขนาดด้วยการสุ่มในการเรียนรู้" ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท 2009

ฉันคิดว่าข้อมูลโค้ดที่แนะนำข้างต้นเป็นความเชี่ยวชาญของ Algorithm 1 ในบทความล่าสุด


ทั้งคำว่า "อ่างล้างจาน" หรือรหัสที่คุณอ้างจะไม่ปรากฏในเอกสารที่เชื่อมโยง คุณไม่มีข้อมูลอ้างอิงใช่หรือไม่
Kodiologist

2
คุณพูดถูกขอบคุณมาก หากไม่มีบริบทของการพูดคุยปี 2017 คำถามดูเหมือนจะไม่ปะติดปะต่อกันเล็กน้อย! ความคิดได้รับการพัฒนาในบทความแรกฉันคิดว่า แต่คำว่า sinks ครัวแบบสุ่มได้ถูกนำมาใช้ในภายหลังเท่านั้น ข้อมูลโค้ดถูกเผยแพร่ในเซสชันโปสเตอร์ 2007 สำหรับบทความ ฉันถอดความจากการพูดคุยของ Rahimi ที่ NIPS 2017
MachineEpsilon

คำตอบ:


15

อ่างครัวแบบสุ่ม (หรือคุณสมบัติแบบฟูเรียร์แบบสุ่ม) และวิธีการอื่น ๆ ที่เกี่ยวข้องไม่ได้พยายามทำการอนุมาน แต่จะพยายามลดปัญหาคอขวดของวิธีการอนุมานจากเคอร์เนล

n×nO(n3)ซึ่ง จำกัด แอปพลิเคชันที่สามารถนำไปใช้กับปัญหาที่เกิดขึ้นด้วยการสังเกตเพียงไม่กี่พันครั้ง วิธีที่ได้รับความนิยมมากที่สุดรอบ ๆ คอขวดนี้มีแนวโน้มที่จะเป็นวิธีการที่อยู่ในระดับต่ำ (แม้ว่าจะมีวิธีอื่น ๆ เช่นวิธีการที่ใช้ของ Kronecker, H-matrices และเครื่องจักรของคณะกรรมการเบย์เพื่อตั้งชื่อ

คุณลักษณะการแปลงฟูริเยร์แบบสุ่ม (เรมิมิ & เรชท์ 2550) พิจารณาการสร้างระดับการประมาณค่าต่ำของการเปลี่ยนเมล็ดโดยการสุ่มเพียงส่วนย่อยขององค์ประกอบของเมล็ดฟูริเยร์แบบสุ่ม เนื่องจากพื้นที่ฟูริเยร์เปลี่ยนค่าคงที่คุณสมบัตินี้ถูกเก็บรักษาไว้ แต่ตอนนี้เป็นพื้นที่ จำกัด ของการสร้างเคอร์เนลฮิลแบร์ตที่เกิดขึ้นจากการรวมกันของส่วนประกอบฟูริเยร์ มิติที่ไม่มีที่สิ้นสุดครั้งเดียว RKHS ถูกประมาณโดยเคอร์เนลที่เสื่อมสภาพโดยประมาณ

หมายเหตุเกี่ยวกับข้อมูลโค้ด:มีรายละเอียดเล็ก ๆ น้อย ๆ อยู่ใน 5 บรรทัด ที่สำคัญที่สุดคือฟังก์ชั่นเกาส์เซียนนั้นเป็นฟังก์ชันเกาส์เซียนในพื้นที่ฟูริเยร์ด้วย, ความแปรปรวนกลับด้าน นั่นคือเหตุผลที่พวกเขาสุ่มตัวอย่างจาก randn แล้วคูณด้วยความแปรปรวน จากนั้นพวกมันก็จะสร้างอัลฟ่าซึ่งเป็นเพียงขั้นตอนย่อยเพื่อค้นหา ztest การคาดคะเนของเคอร์เนลตามปกติจะเป็นอย่างไร

Zเสื้ออีsเสื้อ=K(xเสื้ออีsเสื้อ,x)(K(x,x)+λผม)-1Y.

Zเสื้ออีsเสื้อ=Φ(xเสื้ออีsเสื้อ)TΦ(x)(Φ(x)TΦ(x)+λผม)-1Y.

Φ()เป็นเวกเตอร์คุณลักษณะฟูริเยร์แบบสุ่มที่ประเมินค่า

ความคิดเห็นด้านข้าง:คุณควรใช้หรือไม่ คำตอบนั้นไม่ชัดเจนใช่ ขึ้นอยู่กับสิ่งที่คุณกำลังสร้างโมเดล การใช้พื้นที่ฟูเรียร์นั้นไม่เหมาะสมสำหรับเมล็ดที่ไม่หยุดนิ่งและไม่เปลี่ยนแปลง พวกที่ไม่เคยอ้างว่ามันจะทำงานในการตั้งค่านี้ แต่ถ้าคุณเพิ่งเริ่มออกในพื้นที่นั้นบางครั้งความแตกต่างที่ไม่ชัดเจน


5
ใช้เวลาหนึ่งวินาทีในการตระหนักว่าการคำนวณอัลฟ่าที่นี่คือการแก้ปัญหาการถดถอยของสันใน X และ y ด้วยแลมบ์ดาไลเซอร์ทั่วไป หากคุณมาจาก GP จากนั้นดูที่สูตรของคุณสิ่งนี้ค่อนข้างชัดเจนมาจากมุม SVM มันค่อนข้างสับสนเล็กน้อย "การคาดการณ์เคอร์เนลปกติ" ของคุณคือ GP ที่เพิ่มสัญญาณรบกวนหรือการถดถอยของเคอร์เนล
Andreas Mueller

1
@AndreasMueller ใช่ขอโทษที่ถูกต้อง! ฉันเป็นอย่างมากจากชุมชน GP แต่เดิมดังนั้นบางครั้งก็มองข้ามสิ่งนั้น! ดีใจที่คุณมีสิ่งที่ฉันหมายถึงแม้ว่า :)
j__

1
@j__ ถ้าคุณมีเวลาที่ฉันมีคำถามเกี่ยวกับ RFFs กว่าที่นี่: stats.stackexchange.com/questions/440633 ดูเหมือนว่าคำตอบสำหรับคำถามของฉันจะเข้าใจ RKHS และทฤษฎีผู้ตอบโต้ได้ดีขึ้น
gwg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.