มาหาการประมาณค่าNyströmในแบบที่ควรทำให้คำตอบของคำถามของคุณชัดเจนขึ้น
สมมติฐานที่สำคัญในการ Nystrom คือฟังก์ชั่นเคอร์เนลเป็นยศเมตร(จริงๆเราคิดว่ามันเป็นประมาณยศแต่สำหรับความเรียบง่ายให้เพียงแสร้งทำเป็นว่ามันเป็นตรงยศสำหรับในตอนนี้.) นั่นหมายความว่าการใด ๆเมทริกซ์เคอร์เนลจะมีอันดับที่มากที่สุดและโดยเฉพาะ
เป็นอันดับเมตรดังนั้นจึงมีค่าลักษณะเฉพาะภัณฑ์และเราสามารถเขียน eigendecomposition ของเป็น
mmmm
K=⎡⎣⎢⎢k(x1,x1)⋮k(xn,x1)…⋱…k(x1,xn)⋮k(xn,xn)⎤⎦⎥⎥,
mmKK=UΛUT
กับ eigenvectors เก็บไว้ใน , รูปร่าง , และค่าลักษณะเฉพาะที่จัดใน ,เมทริกซ์แนวทแยง
Un×mΛm×m
ดังนั้นให้เราเลือกองค์ประกอบโดยทั่วไปจะมีการสุ่มแบบสุ่ม แต่อาจเป็นไปตามแผนการอื่น ๆ - สิ่งที่สำคัญในเวอร์ชั่นที่ง่ายนี้คืออยู่ในอันดับเต็ม เมื่อเราทำเสร็จแล้วให้ติดฉลากใหม่เพื่อที่เราจะได้จบลงด้วยเคอร์เนลเมทริกซ์ในบล็อก:
ซึ่งเราประเมินแต่ละรายการใน (ซึ่งคือ ) และ ( ) แต่ไม่ต้องการประเมินรายการใด ๆ ใน .mK11
K=[K11K21KT21K22],
K11m×mK21(n−m)×mK22
ตอนนี้เราสามารถแบ่ง eigendecomposition ตามโครงสร้างบล็อกนี้ด้วย: start
ที่เป็นและเป็นm แต่ทราบว่าตอนนี้เรามี T ดังนั้นเราจึงสามารถหาและโดย eigendecomposing เมทริกซ์ที่รู้จักกัน{11}
K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛUT1U2ΛUT1U1ΛUT2U2ΛUT2],
U1m×mU2(n−m)×mK11=U1ΛUT1U1ΛK11
นอกจากนี้เรายังรู้ว่า T ที่นี่เรารู้ทุกอย่างในสมการนี้ยกเว้นเพื่อให้เราสามารถแก้ปัญหาสำหรับสิ่งที่ค่าลักษณะเฉพาะที่แสดงถึง: ขวาคูณทั้งสองข้างด้วยที่จะได้รับ
ตอนนี้เรามีทุกสิ่งที่เราต้องประเมิน :
K21=U2ΛUT1U2(ΛUT1)−1=U1Λ−1
U2=K21U1Λ−1.
K22K22=U2ΛUT2=(K21U1Λ−1)Λ(K21U1Λ−1)T=K21U1(Λ−1Λ)Λ−1UT1KT21=K21U1Λ−1UT1KT21=K21K−111KT21=(K21K−1211)(K21K−1211)T.(*)(**)
ใน (*) เราพบเวอร์ชันของNyströmที่ฝังคุณอาจจะเห็นว่าเป็นคำจำกัดความ นี้จะบอกเราค่าเคอร์เนลที่มีประสิทธิภาพที่เรากำลัง imputing สำหรับบล็อก{22}K22
ใน (**) เราจะเห็นว่าคุณลักษณะเมทริกซ์ ซึ่งเป็นรูปร่างสอดคล้องกับค่าเคอร์เนลที่กำหนดเหล่านี้ ถ้าเราใช้สำหรับจุดที่เรามีชุดของคุณสมบัติมิติ
เราสามารถยืนยันได้อย่างรวดเร็วว่าสอดคล้องกับเคอร์เนลเมทริกซ์ที่ถูกต้อง:
K21K−1211(n−m)×mK1211mm
Φ=⎡⎣⎢K1211K21K−1211⎤⎦⎥.
ΦΦΦT=⎡⎣⎢K1211K21K−1211⎤⎦⎥⎡⎣⎢K1211K21K−1211⎤⎦⎥T=⎡⎣⎢K1211K1211K21K−1211K1211K1211K−1211KT21K21K−1211K−1211KT21⎤⎦⎥=[K11K21KT21K21K−111KT21]=K.
ดังนั้นสิ่งที่เราต้องทำคือการฝึกอบรมการเรียนรู้แบบปกติของเรากับคุณสมบัติมิติ\นี้จะตรงเหมือนกัน (ภายใต้สมมติฐานที่เราได้ทำ) เป็นรุ่น kernelized ของปัญหาการเรียนรู้กับKmΦK
ตอนนี้สำหรับจุดข้อมูลแต่ละจุดคุณลักษณะในตรงกับ
สำหรับจุดในพาร์ติชัน 2 เวกเตอร์เป็นเพียงแถวที่เกี่ยวข้องของดังนั้นการซ้อน สิ่งเหล่านี้ทำให้เรา - ดังนั้นเห็นด้วยกับคะแนนในการแบ่งพาร์ติชัน 2 มันทำงานในพาร์ติชัน 1: นั่นเวกเตอร์เป็นแถวของดังนั้นการรวมเข้าด้วยกันจะทำให้ตกลงอีกครั้งกับxΦ
ϕ(x)=[k(x,x1)…k(x,xm)]K−1211.
x[k(x,x1)…k(x,xm)]K21K21K−1211ϕ(x)K11K11K−1211=K1211Φ. ดังนั้น ... ก็ยังคงเป็นจริงสำหรับที่มองไม่เห็นที่ฝึกอบรมเวลาทดสอบจุด{} คุณทำสิ่งเดียวกัน:
เนื่องจากเราถือว่าเคอร์เนลอยู่ในอันดับเมทริกซ์ยังเป็นยศและการฟื้นฟูของยังคงเป็นที่แน่นอนว่าโดยตรรกะเช่นเดียวกับ{22}
xnewΦtest=Ktest,1K−1211.
m[KtrainKtest,trainKtrain,testKtest]mKtestK22
ข้างต้นเราสันนิษฐานว่าเมทริกซ์เคอร์เนลเป็น
ว่ายศเมตรนี่ไม่ใช่กรณีปกติ สำหรับเคอร์เนลเกาส์เซนเช่นอยู่ในอันดับที่
เสมอแต่โดยทั่วไปค่าลักษณะเฉพาะจะลดลงอย่างรวดเร็วดังนั้นมันจะ
ใกล้กับเมทริกซ์ของอันดับและของเราหรือจะ
ใกล้เคียงกับค่าจริง แต่ไม่เหมือนกันทุกประการ พวกมันจะเป็นการสร้างไทปันได้ดียิ่งขึ้นใกล้กับ Eigenspace ของที่เข้าใกล้ของ
KmKnmK21Ktest,1K11Kโดยรวมซึ่งเป็นเหตุผลที่การเลือกคะแนนถูกต้องเป็นสิ่งสำคัญในการปฏิบัติ
m
โปรดทราบว่าหากมีค่าลักษณะศูนย์ใด ๆ คุณสามารถแทนที่ผู้รุกรานด้วย pseudoinverses และทุกอย่างยังคงใช้ได้ คุณเพียงแค่เปลี่ยนในการฟื้นฟูบูรณะที่มี{11}K11K21K21K†11K11
คุณสามารถใช้ SVD แทน eigendecomposition หากคุณต้องการ; เนื่องจากคือ psd พวกมันเหมือนกัน แต่ SVD อาจจะมีข้อผิดพลาดเล็กน้อยที่แข็งแกร่งกว่าเล็กน้อยในเคอร์เนลเมทริกซ์และนั่นก็คือสิ่งที่ scikit เรียนรู้ทำ การใช้งานจริงของ scikit-Learn ทำสิ่งนี้แม้ว่าจะใช้ในการผกผันแทนการ pseudoinverseKmax(λi,10−12)