อ่าน 3 นาที
การวิเคราะห์องค์ประกอบของย่านใกล้เคียง
การวิเคราะห์ส่วนประกอบของเพื่อนบ้าน (Neighbourhood components analysis)เป็น วิธี การเรียนรู้แบบมีผู้กำกับดูแล (supervised learning)สำหรับจำแนก ข้อมูล หลายตัวแปรออกเป็นกลุ่มต่างๆ...
การวิเคราะห์องค์ประกอบของย่านใกล้เคียง
| ส่วนหนึ่งของชุดบทความเกี่ยวกับ |
| การเรียนรู้ของเครื่องจักรและการขุดข้อมูล |
|---|
การวิเคราะห์ส่วนประกอบของเพื่อนบ้าน (Neighbourhood components analysis)เป็น วิธี การเรียนรู้แบบมีผู้กำกับดูแล (supervised learning)สำหรับจำแนก ข้อมูล หลายตัวแปรออกเป็นกลุ่มต่างๆ ตามเมตริกวัดระยะทาง ที่กำหนดไว้ บนข้อมูล ในทางฟังก์ชันการทำงาน มันทำหน้าที่เหมือนกับ อัลกอริ ทึมเพื่อนบ้านที่ใกล้ที่สุด K ตัว (K-nearest neighbors algorithm)และใช้แนวคิดที่เกี่ยวข้องที่เรียกว่าเพื่อนบ้านที่ใกล้ที่สุดแบบสุ่ม (stochastic nearest neighbours ) โดยตรง
คำนิยาม
การวิเคราะห์ส่วนประกอบของพื้นที่ใกล้เคียงมีเป้าหมายเพื่อ "เรียนรู้" เมตริกซ์ระยะทางโดยการหาการแปลงเชิงเส้นของข้อมูลอินพุตเพื่อให้ประสิทธิภาพการจำแนกประเภทแบบ Leave-One-Out (LOO) เฉลี่ยสูงสุดในพื้นที่ที่แปลงแล้ว แนวคิดหลักของอัลกอริทึมนี้คือเมทริกซ์ที่สอดคล้องกับการแปลงสามารถหาได้โดยการกำหนดฟังก์ชันเป้าหมายที่หาอนุพันธ์ได้สำหรับตามด้วยการใช้ตัวแก้ปัญหาแบบวนซ้ำ เช่นการไล่ระดับแบบสังยุค (Conjugate Gradient Descent ) ข้อดีอย่างหนึ่งของอัลกอริทึมนี้คือจำนวนคลาสสามารถกำหนดได้เป็นฟังก์ชันของโดยมีค่าคงที่สเกลาร์อยู่ด้วย ดังนั้นการใช้อัลกอริทึมนี้จึงช่วยแก้ปัญหาเรื่องการเลือกแบบจำลองได้
คำอธิบาย
เพื่อให้ได้มาซึ่งค่าที่ต้องการเราจึงกำหนดฟังก์ชันเป้าหมายที่อธิบายความแม่นยำในการจำแนกประเภทในพื้นที่ที่แปลงแล้ว และพยายามหาค่าที่ทำให้ฟังก์ชันเป้าหมายนี้มีค่าสูงสุด
การจำแนกประเภทแบบตัดออกหนึ่งรายการ (LOO)
ลองพิจารณาการทำนายป้ายกำกับคลาสของจุดข้อมูลเดียวโดยอาศัยฉันทามติของเพื่อนบ้านที่ใกล้ที่สุดจำนวนหนึ่งที่มีเมตริกซ์ระยะทางที่กำหนด วิธีนี้เรียกว่า การจำแนกประเภท แบบตัดออกทีละจุด (leave-one-out classification) อย่างไรก็ตาม ชุดของเพื่อนบ้านที่ใกล้ที่สุดอาจแตกต่างกันมากหลังจากผ่านจุดทั้งหมดผ่านการแปลงเชิงเส้น โดยเฉพาะอย่างยิ่ง ชุดของเพื่อนบ้านสำหรับจุดหนึ่งอาจเปลี่ยนแปลงแบบไม่ต่อเนื่องเมื่อตอบสนองต่อการเปลี่ยนแปลงแบบราบเรียบในองค์ประกอบของ ซึ่งหมายความว่าฟังก์ชันเป้าหมายใดๆที่อิงตามเพื่อนบ้านของจุดนั้นจะมีค่าคงที่แบบเป็นช่วงๆและดังนั้นจึงไม่สามารถหาอนุพันธ์ได้
สารละลาย
เราสามารถแก้ไขปัญหานี้ได้โดยใช้วิธีการที่ได้รับแรงบันดาลใจจากการไล่ระดับแบบสุ่ม (stochastic gradient descent ) แทนที่จะพิจารณาเพื่อนบ้านที่ใกล้ที่สุด n จุดในแต่ละจุดที่แปลงแล้วในการจำแนกประเภทแบบ LOO เราจะพิจารณาชุดข้อมูลที่แปลงแล้วทั้งหมดเป็นเพื่อนบ้านที่ใกล้ที่สุดแบบสุ่มเรากำหนดสิ่งเหล่านี้โดยใช้ฟังก์ชัน softmaxของระยะทางแบบยุคลิด กำลังสอง ระหว่างจุดการจำแนกประเภทแบบ LOO ที่กำหนดกับจุดอื่นๆ ทุกจุดในพื้นที่ที่แปลงแล้ว:
ความน่าจะเป็นของการจำแนกจุดข้อมูลได้อย่างถูกต้องคือ ความน่าจะเป็นของการจำแนกจุดข้อมูลของจุดข้อมูลข้างเคียงแต่ละจุดให้อยู่ในคลาสเดียวกัน:
ความน่าจะเป็นของการจำแนกจุดข้างเคียงของจุดนั้นคือ เท่าใด
กำหนดฟังก์ชันเป้าหมายโดยใช้การจำแนกประเภทแบบ LOO โดยครั้งนี้ใช้ชุดข้อมูลทั้งหมดเป็นเพื่อนบ้านที่ใกล้ที่สุดแบบสุ่ม:
โปรดทราบว่าภายใต้เพื่อนบ้านที่ใกล้ที่สุดแบบสุ่ม คลาสที่เป็นเอกฉันท์สำหรับจุดเดียวคือค่าที่คาดหวังของคลาสของจุดนั้นในขีดจำกัดของจำนวนตัวอย่างที่ไม่มีที่สิ้นสุดที่ดึงมาจากการแจกแจงเหนือเพื่อนบ้าน กล่าวคือ: ดังนั้นคลาสที่ทำนายได้จึงเป็นการรวมกันเชิงเส้นของคลาสของทุกจุดอื่น ๆ โดยถ่วงน้ำหนักด้วยฟังก์ชัน softmax สำหรับแต่ละจุด โดยที่คือชุดข้อมูลที่แปลงแล้วทั้งหมด
การเลือกฟังก์ชันเป้าหมายนี้เป็นที่ต้องการมากกว่า เนื่องจากสามารถหาอนุพันธ์เทียบกับ(กำหนดให้):
การหาค่าเกรเดียนต์หมายความว่าสามารถหาได้ด้วยตัวแก้ปัญหาแบบวนซ้ำ เช่น การลดเกรเดียนต์แบบสังยุค (conjugate gradient descent ) โปรดทราบว่าในทางปฏิบัติ เทอมภายในสุดส่วนใหญ่ของเกรเดียนต์จะมีส่วนร่วมที่ไม่สำคัญ เนื่องจากส่วนร่วมของจุดที่อยู่ห่างไกลจากจุดที่สนใจจะลดลงอย่างรวดเร็ว ซึ่งหมายความว่าผลรวมภายในของเกรเดียนต์สามารถตัดทอนได้ ส่งผลให้เวลาในการคำนวณเหมาะสมแม้กับชุดข้อมูลขนาดใหญ่
สูตรทางเลือก
"การหาค่าสูงสุดเทียบเท่ากับการลดระยะห่าง-distance ระหว่างการกระจายตัวของคลาสที่คาดการณ์ไว้กับการกระจายตัวของคลาสที่แท้จริงให้เหลือน้อยที่สุด (กล่าวคือ โดยที่ ค่า distance ที่เกิดจาก distance ทั้งหมดเท่ากับ 1) ทางเลือกที่เป็นธรรมชาติอีกอย่างหนึ่งคือ KL-divergence ซึ่งทำให้เกิดฟังก์ชันวัตถุประสงค์และเกรเดียนต์ดังต่อไปนี้:" (Goldberger 2005)
ในทางปฏิบัติ การปรับปรุงการใช้งานฟังก์ชันนี้มักให้ผลลัพธ์ด้านประสิทธิภาพที่คล้ายคลึงกับแบบดั้งเดิม
ประวัติความเป็นมาและภูมิหลัง
การวิเคราะห์ส่วนประกอบของย่านใกล้เคียงได้รับการพัฒนาโดย Jacob Goldberger, Sam Roweis, Ruslan SalakhutdinovและGeoff Hintonที่ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยโทรอนโต ในปี 2547
ดูเพิ่มเติม
ลิงก์ภายนอก
ซอฟต์แวร์
- ไลบรารีMLPACKมีการใช้งาน ในภาษา C++
- nca ( C++ )
- การใช้งาน " NeighborhoodComponentsAnalysis " ของscikit-learn ( Python )
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การวิเคราะห์องค์ประกอบของย่านใกล้เคียง
การวิเคราะห์ส่วนประกอบของเพื่อนบ้าน (Neighbourhood components analysis)เป็น วิธี การเรียนรู้แบบมีผู้กำกับดูแล (supervised learning)สำหรับจำแนก ข้อมูล หลายตัวแปรออกเป็นกลุ่มต่างๆ...
คำนิยาม
การวิเคราะห์ส่วนประกอบของพื้นที่ใกล้เคียงมีเป้าหมายเพื่อ "เรียนรู้" เมตริกซ์ระยะทางโดยการหาการแปลงเชิงเส้นของข้อมูลอินพุตเพื่อให้ประสิทธิภาพการจำแนกประเภทแบบ Leave-One-Out (LOO) เฉลี่ยสูงสุดในพื้นที่ที่แปลงแล้ว...
คำอธิบาย
เพื่อให้ได้มาซึ่งค่าที่ต้องการเราจึงกำหนดฟังก์ชันเป้าหมายที่อธิบายความแม่นยำในการจำแนกประเภทในพื้นที่ที่แปลงแล้ว และพยายามหาค่าที่ทำให้ฟังก์ชันเป้าหมายนี้มีค่าสูงสุด เอ {\displaystyle A} เอ * {\displaystyle A^{*}}
การจำแนกประเภทแบบตัดออกหนึ่งรายการ (LOO)
ลองพิจารณาการทำนายป้ายกำกับคลาสของจุดข้อมูลเดียวโดยอาศัยฉันทามติของเพื่อนบ้านที่ใกล้ที่สุดจำนวนหนึ่งที่มีเมตริกซ์ระยะทางที่กำหนด วิธีนี้เรียกว่า การจำแนกประเภท แบบตัดออกทีละจุด (leave-one-out classification) อย่างไรก็ตาม...