วิธีการทั่วไปในการเลือกเคอร์เนลที่ดีที่สุด (ชนิดของเคอร์เนลหรือพารามิเตอร์เคอร์เนล) ในวิธีการที่ใช้เคอร์เนลคือการตรวจสอบข้าม ดูที่นี่สำหรับการอภิปรายเกี่ยวกับการเลือกเคอร์เนลสำหรับเครื่องเวกเตอร์สนับสนุน: วิธีการเลือกเคอร์เนลสำหรับ SVM?
แนวคิดเบื้องหลังการตรวจสอบความถูกต้องไขว้กันคือเราทิ้งข้อมูล "ทดสอบ" บางส่วนเรียกใช้อัลกอริทึมของเราเพื่อให้พอดีกับรูปแบบของข้อมูล "การฝึกอบรม" ที่เหลืออยู่จากนั้นตรวจสอบว่ารูปแบบผลที่ได้อธิบายข้อมูลการทดสอบได้ดีเพียงใด คือ). สิ่งนี้ซ้ำแล้วซ้ำอีกสำหรับข้อมูลด้านซ้ายที่แตกต่างกันข้อผิดพลาดจะถูกเฉลี่ยเพื่อสร้างข้อผิดพลาดการตรวจสอบความถูกต้องข้ามโดยเฉลี่ยและจากนั้นสามารถเปรียบเทียบอัลกอริทึมที่แตกต่างกันเพื่อเลือกข้อผิดพลาดต่ำสุด ใน SVM เราสามารถใช้เช่นความแม่นยำในการจัดหมวดหมู่ (หรือมาตรการที่เกี่ยวข้อง) เป็นการวัดประสิทธิภาพของแบบจำลอง จากนั้นจะเลือกเคอร์เนลที่ให้การจำแนกข้อมูลที่ดีที่สุด
คำถามก็จะกลายเป็น: การวัดประสิทธิภาพของแบบจำลองใดที่สามารถใช้ใน kPCA หากคุณต้องการบรรลุ "การแยกข้อมูลที่ดี" (การแยกชั้นดีอาจสันนิษฐานได้) จากนั้นคุณสามารถวัดค่าได้จากข้อมูลการฝึกอบรมและใช้เพื่อค้นหาเคอร์เนลที่ดีที่สุด อย่างไรก็ตามโปรดทราบว่า PCA / kPCA ไม่ได้ถูกออกแบบมาเพื่อการแยกข้อมูลที่ดี (ไม่ต้องคำนึงถึงเลเบลของคลาสเลย ) โดยทั่วไปแล้วการพูดหนึ่งต้องการอีกแบบหนึ่งซึ่งไม่เกี่ยวข้องกับคลาส
ใน PCA มาตรฐานหนึ่งสามารถใช้ข้อผิดพลาดการสร้างใหม่เป็นวัดประสิทธิภาพในชุดทดสอบ ในเคอร์เนล PCA หนึ่งยังสามารถคำนวณข้อผิดพลาดในการสร้างใหม่ได้ แต่ปัญหาคือมันไม่สามารถเปรียบเทียบได้ระหว่างเมล็ดที่แตกต่างกัน: ข้อผิดพลาดของการสร้างใหม่คือระยะทางที่วัดในพื้นที่เป้าหมายเป้าหมาย; และเมล็ดที่แตกต่างกันนั้นสอดคล้องกับพื้นที่เป้าหมายที่แตกต่างกัน ... ดังนั้นเราจึงมีปัญหา
วิธีหนึ่งในการแก้ไขปัญหานี้คือการคำนวณข้อผิดพลาดในการสร้างใหม่ในพื้นที่เดิมไม่ได้อยู่ในพื้นที่เป้าหมาย เห็นได้ชัดว่าจุดข้อมูลการทดสอบด้านซ้ายอยู่ในพื้นที่เดิม แต่การสร้างใหม่ของ kPCA อาศัยอยู่ใน [subspace มิติต่ำของ] พื้นที่เป้าหมาย แม้ว่าสิ่งหนึ่งที่สามารถทำได้คือการหาจุด ("ภาพก่อน") ในพื้นที่ดั้งเดิมที่จะถูกแมปให้ใกล้ที่สุดกับจุดฟื้นฟูนี้จากนั้นวัดระยะทางระหว่างจุดทดสอบและภาพล่วงหน้านี้ เป็นข้อผิดพลาดในการสร้างใหม่
ฉันจะไม่ให้สูตรทั้งหมดที่นี่ แต่แทนที่จะแนะนำให้คุณดูเอกสารบางอย่างและใส่ตัวเลขที่นี่
แนวคิดของ "ภาพก่อน" ใน kPCA นั้นเห็นได้ชัดในบทความนี้:
- Mika, S. , Schölkopf, B. , Smola, AJ, Müller, KR, Scholz, M. , & Rätsch, G. (1998) Kernel PCA และ De-Noising ในฟีเจอร์ส ใน NIPS (ชุดที่ 11, หน้า 536-542)
Mika และคณะ ไม่ได้ทำการตรวจสอบความถูกต้องไขว้กัน แต่พวกมันต้องการอิมเมจล่วงหน้าเพื่อจุดประสงค์ในการลบเสียงดูรูปนี้:
จุดหนา (denoised) เป็นภาพล่วงหน้าของการคาดการณ์ kPCA (ไม่มีการทดสอบและการฝึกอบรมที่นี่) ไม่ใช่เรื่องง่ายที่จะค้นหาภาพล่วงหน้าเหล่านี้: เราจำเป็นต้องใช้การไล่ระดับสีแบบลาดชันและฟังก์ชันการสูญเสียจะขึ้นอยู่กับเคอร์เนล
และนี่คือกระดาษฉบับล่าสุดที่ใช้อิมเมจก่อนเพื่อวัตถุประสงค์ในการตรวจสอบข้ามและการเลือกเคอร์เนล / พารามิเตอร์ไฮเปอร์พารามิเตอร์:
- Alam, MA, & Fukumizu, K. (2014) ตัวเลือกในการวิเคราะห์องค์ประกอบหลักเคอร์เนล Hyperparameter วารสารวิทยาศาสตร์คอมพิวเตอร์, 10 (7), 1139-1150
นี่คืออัลกอริทึมของพวกเขา:
และนี่คือผลลัพธ์บางส่วน (ที่ฉันคิดว่าอธิบายได้ด้วยตนเอง):