เคอร์เนล k เพื่อนบ้านที่ใกล้ที่สุด


12

ฉันใหม่กับเมล็ดและมีอุปสรรคในขณะที่พยายาม kernelise kNN

รอบคัดเลือกโซน

ฉันใช้เคอร์เนลพหุนาม:
K(x,y)=(1+x,y)d

Euclidean ทั่วไปของคุณใช้ตัวชี้วัดระยะทางต่อไปนี้:
d(x,y)=||xy||

ปล่อยให้f(x)แม็พxลงในฟีเจอร์มิติที่สูงขึ้น จากนั้นสแควร์ของตัวชี้วัดระยะทางด้านบนในพื้นที่ฮิลแบร์ตสามารถแสดงได้ด้วยผลิตภัณฑ์ภายใน: d2(f(x),f(y))=K(x,x)2K(x,y)+K(y,y)

โปรดทราบว่าถ้าเราปล่อยให้d=1ข้างต้นจะทำให้ระยะทางแบบยุคลิดลดลง


คำถาม

ปัญหาหลักที่ฉันมีคือฉันไม่สามารถดูว่า kernelising kNN ให้ผลลัพธ์ที่ดีขึ้นตามที่แสดงโดยการทดลองเช่นบทความนี้ (คำเตือนลิงค์ PDF โดยตรง!)

คำตอบ:


25

ทฤษฎีบทของปก:ระบุอย่างหยาบมันบอกว่าได้รับคะแนนสุ่ม จำกัด (โดยพลการป้าย) จากนั้นก็มีความเป็นไปได้สูงที่จุดเหล่านี้จะทำให้เป็นเส้นตรงแยก [1] โดยการทำแผนที่มิติที่สูงขึ้น

ความหมาย:ยิ่งใหญ่สิ่งที่ทฤษฎีนี้บอกฉันคือถ้าฉันนำชุดข้อมูลของฉันและแมปจุดเหล่านี้ไปยังมิติที่สูงขึ้นจากนั้นฉันสามารถหาลักษณนามเชิงเส้นได้อย่างง่ายดาย อย่างไรก็ตามตัวจําแนกส่วนใหญ่ต้องคํานวณความคล้ายคลึงกันบางอย่างเช่น dot product และนั่นหมายความว่าความซับซ้อนของเวลาในอัลกอริทึมการจําแนกเป็นสัดส่วนกับมิติของจุดข้อมูล ดังนั้นมิติที่สูงขึ้นหมายถึงความซับซ้อนของเวลาที่มากขึ้น (ไม่ต้องพูดถึงความซับซ้อนของพื้นที่เพื่อจัดเก็บจุดมิติขนาดใหญ่เหล่านั้น)

Kernel เคล็ดลับ: Letเป็นมิติเดิมของจุดข้อมูลและเป็นแผนที่แผนที่ซึ่งจุดเหล่านี้ไปยังพื้นที่ของมิติn) ตอนนี้ถ้ามีฟังก์ชั่นซึ่งรับอินพุตและจากพื้นที่เดิมและคำนวณแล้วฉันสามารถคำนวณผลิตภัณฑ์ดอท ในมิติที่สูงขึ้น แต่ในความซับซ้อนแทน(n)nfN(>>n)KxyK(x,y)=f(x),f(y)O(n)O(N)

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

การแยกเชิงเส้นหมายความว่าคะแนนจากคลาสเดียวกันจะเข้าใกล้กว่าคะแนนจากคลาสที่ต่างกันหรือไม่? ไม่ไม่มีการรับประกันเช่นนี้ การแยกเชิงเส้นไม่ได้แปลว่าจุดจากคลาสเดียวกันนั้นเข้ามาใกล้มากขึ้นหรือว่าคะแนนจากคลาสที่แตกต่างกันสองคลาสนั้นเพิ่มขึ้นอีก

เหตุใด kNN จึงทำงาน มันไม่จำเป็นต้อง! อย่างไรก็ตามถ้ามันเป็นเช่นนั้นก็เพราะเคอร์เนล

นั่นหมายความว่าอย่างไร? พิจารณาคุณลักษณะเวกเตอร์บูลx_2) เมื่อคุณใช้เคอร์เนลพหุนามระดับสองเวกเตอร์ของคุณลักษณะจะถูกแมปกับเวกเตอร์x=(x1,x2)x(x12,2x1x2,x22). จากเวกเตอร์ของคุณสมบัติบูลีนเพียงแค่ใช้ดีกรีพหุนามระดับสองเราได้รับเวกเตอร์ฟีเจอร์ของ "conjunctions" ดังนั้นเมล็ดจึงผลิตแผนที่คุณลักษณะบางอย่างที่ยอดเยี่ยม หากข้อมูลของคุณมีคุณสมบัติดั้งเดิมที่ดีและข้อมูลของคุณจะได้รับประโยชน์จากแผนที่คุณลักษณะที่สร้างโดยเมล็ดเหล่านี้ โดยประโยชน์ฉันหมายถึงฟีเจอร์ที่สร้างจากแผนที่คุณลักษณะเหล่านี้สามารถนำคะแนนจากคลาสเดียวกันเข้ามาใกล้กันมากขึ้นและผลักคะแนนจากคลาสที่แตกต่างออกไปจากนั้น kNN ย่อมาจากประโยชน์ของการใช้เมล็ด มิฉะนั้นผลลัพธ์จะไม่แตกต่างไปจากสิ่งที่คุณได้รับจากการรัน kNN กับข้อมูลต้นฉบับ

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

มีกระดาษใดบ้างที่ศึกษาข้อมูลประเภทใดที่สามารถได้รับประโยชน์จากเมล็ดใน kNN เท่าที่ฉันรู้ไม่

[1] http://en.wikipedia.org/wiki/Linear_separability
[2] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4038449&tag=1

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.