วิธี Nystroem สำหรับการประมาณเคอร์เนล


12

ฉันได้อ่านเกี่ยวกับวิธีNyströmสำหรับการประมาณเคอร์เนลระดับต่ำ วิธีนี้ถูกนำมาใช้ในการเรียนรู้ scikit [1] เป็นวิธีการฉายตัวอย่างข้อมูลไปยังการประมาณระดับต่ำของการแมปฟีเจอร์เคอร์เนล

ตามความรู้ของฉันที่สุดให้ชุดฝึกอบรมและฟังก์ชันเคอร์เนลมันสร้างการประมาณอันดับต่ำของเคอร์เนลเมทริกซ์โดยใช้ SVD กับและC{xi}i=1nn×nKWC

K=[WK21TK21K22] C=[WK21] ,W∈Rl×l

อย่างไรก็ตามฉันไม่เข้าใจว่าการประมาณระดับต่ำของเมทริกซ์เคอร์เนลสามารถใช้เพื่อฉายตัวอย่างใหม่ไปยังพื้นที่คุณลักษณะเคอร์เนลโดยประมาณได้อย่างไร เอกสารที่ฉันได้พบ (เช่น [2]) ไม่ได้ช่วยอะไรมากเพราะมันเป็นการสอนน้อย

นอกจากนี้ฉันยังสงสัยเกี่ยวกับความซับซ้อนในการคำนวณของวิธีนี้ทั้งในขั้นตอนการฝึกอบรมและการทดสอบ

[1] http://scikit-learn.org/stable/modules/kernel_approximation.html#nystroem-kernel-approx

[2] http://www.jmlr.org/papers/volume13/kumar12a/kumar12a.pdf

คำตอบ:


15

มาหาการประมาณค่าNyströmในแบบที่ควรทำให้คำตอบของคำถามของคุณชัดเจนขึ้น

สมมติฐานที่สำคัญในการ Nystrom คือฟังก์ชั่นเคอร์เนลเป็นยศเมตร(จริงๆเราคิดว่ามันเป็นประมาณยศแต่สำหรับความเรียบง่ายให้เพียงแสร้งทำเป็นว่ามันเป็นตรงยศสำหรับในตอนนี้.) นั่นหมายความว่าการใด ๆเมทริกซ์เคอร์เนลจะมีอันดับที่มากที่สุดและโดยเฉพาะ เป็นอันดับเมตรดังนั้นจึงมีค่าลักษณะเฉพาะภัณฑ์และเราสามารถเขียน eigendecomposition ของเป็น mmmm

K=[k(x1,x1)…k(x1,xn)⋮⋱⋮k(xn,x1)…k(xn,xn)],
mmK
K=UΛUT
กับ eigenvectors เก็บไว้ใน , รูปร่าง , และค่าลักษณะเฉพาะที่จัดใน ,เมทริกซ์แนวทแยงUn×mΛm×m

ดังนั้นให้เราเลือกองค์ประกอบโดยทั่วไปจะมีการสุ่มแบบสุ่ม แต่อาจเป็นไปตามแผนการอื่น ๆ - สิ่งที่สำคัญในเวอร์ชั่นที่ง่ายนี้คืออยู่ในอันดับเต็ม เมื่อเราทำเสร็จแล้วให้ติดฉลากใหม่เพื่อที่เราจะได้จบลงด้วยเคอร์เนลเมทริกซ์ในบล็อก: ซึ่งเราประเมินแต่ละรายการใน (ซึ่งคือ ) และ ( ) แต่ไม่ต้องการประเมินรายการใด ๆ ใน .mK11

K=[K11K21TK21K22],
K11m×mK21(n−m)×mK22

ตอนนี้เราสามารถแบ่ง eigendecomposition ตามโครงสร้างบล็อกนี้ด้วย: start ที่เป็นและเป็นm แต่ทราบว่าตอนนี้เรามี T ดังนั้นเราจึงสามารถหาและโดย eigendecomposing เมทริกซ์ที่รู้จักกัน{11}

K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛU1TU1ΛU2TU2ΛU1TU2ΛU2T],
U1m×mU2(n−m)×mK11=U1ΛU1TU1ΛK11

นอกจากนี้เรายังรู้ว่า T ที่นี่เรารู้ทุกอย่างในสมการนี้ยกเว้นเพื่อให้เราสามารถแก้ปัญหาสำหรับสิ่งที่ค่าลักษณะเฉพาะที่แสดงถึง: ขวาคูณทั้งสองข้างด้วยที่จะได้รับ ตอนนี้เรามีทุกสิ่งที่เราต้องประเมิน : K21=U2ΛU1TU2(ΛU1T)−1=U1Λ−1

U2=K21U1Λ−1.
K22
K22=U2ΛU2T=(K21U1Λ−1)Λ(K21U1Λ−1)T=K21U1(Λ−1Λ)Λ−1U1TK21T=K21U1Λ−1U1TK21T(*)=K21K11−1K21T(**)=(K21K11−12)(K21K11−12)T.

ใน (*) เราพบเวอร์ชันของNyströmที่ฝังคุณอาจจะเห็นว่าเป็นคำจำกัดความ นี้จะบอกเราค่าเคอร์เนลที่มีประสิทธิภาพที่เรากำลัง imputing สำหรับบล็อก{22}K22

ใน (**) เราจะเห็นว่าคุณลักษณะเมทริกซ์ ซึ่งเป็นรูปร่างสอดคล้องกับค่าเคอร์เนลที่กำหนดเหล่านี้ ถ้าเราใช้สำหรับจุดที่เรามีชุดของคุณสมบัติมิติ เราสามารถยืนยันได้อย่างรวดเร็วว่าสอดคล้องกับเคอร์เนลเมทริกซ์ที่ถูกต้อง: K21K11−12(n−m)×mK1112mm

Φ=[K1112K21K11−12].
Φ
ΦΦT=[K1112K21K11−12][K1112K21K11−12]T=[K1112K1112K1112K11−12K21TK21K11−12K1112K21K11−12K11−12K21T]=[K11K21TK21K21K11−1K21T]=K.

ดังนั้นสิ่งที่เราต้องทำคือการฝึกอบรมการเรียนรู้แบบปกติของเรากับคุณสมบัติมิติ\นี้จะตรงเหมือนกัน (ภายใต้สมมติฐานที่เราได้ทำ) เป็นรุ่น kernelized ของปัญหาการเรียนรู้กับKmΦK

ตอนนี้สำหรับจุดข้อมูลแต่ละจุดคุณลักษณะในตรงกับ สำหรับจุดในพาร์ติชัน 2 เวกเตอร์เป็นเพียงแถวที่เกี่ยวข้องของดังนั้นการซ้อน สิ่งเหล่านี้ทำให้เรา - ดังนั้นเห็นด้วยกับคะแนนในการแบ่งพาร์ติชัน 2 มันทำงานในพาร์ติชัน 1: นั่นเวกเตอร์เป็นแถวของดังนั้นการรวมเข้าด้วยกันจะทำให้ตกลงอีกครั้งกับxΦ

ϕ(x)=[k(x,x1)…k(x,xm)]K11−12.
x[k(x,x1)…k(x,xm)]K21K21K11−12ϕ(x)K11K11K11−12=K1112Φ. ดังนั้น ... ก็ยังคงเป็นจริงสำหรับที่มองไม่เห็นที่ฝึกอบรมเวลาทดสอบจุด{} คุณทำสิ่งเดียวกัน: เนื่องจากเราถือว่าเคอร์เนลอยู่ในอันดับเมทริกซ์ยังเป็นยศและการฟื้นฟูของยังคงเป็นที่แน่นอนว่าโดยตรรกะเช่นเดียวกับ{22}xnew
Φtest=Ktest,1K11−12.
m[KtrainKtrain,testKtest,trainKtest]mKtestK22


ข้างต้นเราสันนิษฐานว่าเมทริกซ์เคอร์เนลเป็นว่ายศเมตรนี่ไม่ใช่กรณีปกติ สำหรับเคอร์เนลเกาส์เซนเช่นอยู่ในอันดับที่เสมอแต่โดยทั่วไปค่าลักษณะเฉพาะจะลดลงอย่างรวดเร็วดังนั้นมันจะใกล้กับเมทริกซ์ของอันดับและของเราหรือจะใกล้เคียงกับค่าจริง แต่ไม่เหมือนกันทุกประการ พวกมันจะเป็นการสร้างไทปันได้ดียิ่งขึ้นใกล้กับ Eigenspace ของที่เข้าใกล้ของKmKnmK21Ktest,1K11Kโดยรวมซึ่งเป็นเหตุผลที่การเลือกคะแนนถูกต้องเป็นสิ่งสำคัญในการปฏิบัติm

โปรดทราบว่าหากมีค่าลักษณะศูนย์ใด ๆ คุณสามารถแทนที่ผู้รุกรานด้วย pseudoinverses และทุกอย่างยังคงใช้ได้ คุณเพียงแค่เปลี่ยนในการฟื้นฟูบูรณะที่มี{11}K11K21K21K11†K11

คุณสามารถใช้ SVD แทน eigendecomposition หากคุณต้องการ; เนื่องจากคือ psd พวกมันเหมือนกัน แต่ SVD อาจจะมีข้อผิดพลาดเล็กน้อยที่แข็งแกร่งกว่าเล็กน้อยในเคอร์เนลเมทริกซ์และนั่นก็คือสิ่งที่ scikit เรียนรู้ทำ การใช้งานจริงของ scikit-Learn ทำสิ่งนี้แม้ว่าจะใช้ในการผกผันแทนการ pseudoinverseKmax(λi,10−12)


1
เมื่อคือ semidefinite บวก Eigendecompositionเกิดขึ้นพร้อมกับ SVD scikit - เรียนรู้เนื่องจากข้อผิดพลาดทางตัวเลขอาจไม่ใช่ psd เล็กน้อยแทนที่จะคำนวณและใช้ดังนั้น ที่คุณลักษณะ 's กลายเป็นfrac12} มันเป็นสิ่งเดียวกันโดยทั่วไป AUΛUTAUΣVTA−12=VΣ−12VTAAVΣ−12VT=UΣVTVΣ−12VT=UΣ12VT=A12
— Dougal

1
อ๊ะขอโทษใช่พวกเขาใช้frac12} มันไม่ได้มีความสำคัญอะไรเลยตั้งแต่แต่เนื่องจากพวกเขาทำหน้าที่ขนย้ายคุณสมบัติสำหรับจบลงด้วยการเป็น T UΣ−12VT=K−12U≈VK11UΣVTVΣ−12UT=UΣ12UT
— Dougal

1
เพิ่มเมทริกซ์ทแยงมุมเพื่ออำนาจเป็นเช่นเดียวกับการเพิ่มแต่ละองค์ประกอบจะมีอำนาจและx ในสัญกรณ์การกระจายเสียงแบบ numpy การคูณ elementwise โดยเวกเตอร์จะเหมือนกับการคูณขวาด้วยเมทริกซ์แนวทแยง นอกจากนี้ที่ใช้รหัสหมายถึงสิ่งที่ผมเรียก T x−12=1/xVVT
— Dougal

1
อ๊ะขออภัยที่ควรมีมากถึง (ในการสั่งซื้อที่ติดป้ายใหม่เพื่อให้เป็นคะแนนพื้นฐานของNyström) จะแก้ไข xm
— Dougal

1
xเป็นจุดข้อมูลมิติไม่ได้ระบุไว้ที่นี่ อาจอยู่ในหรืออาจเป็นสตริงหรืออะไรก็ได้ เพียงแค่บอกว่าเพื่อให้R จากนั้นเพียงเรียงซ้อนสำหรับอินพุตที่แตกต่างกันxRdx∈Xk:X×X→Rϕ:X→Rmk(x,xi)m
— Dougal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.