ฉันกำลังเรียนรู้การเรียนรู้ของเครื่องและฉันอยากจะรู้วิธีการคำนวณ VC-dimension
ตัวอย่างเช่น:
( a , b ) ∈ R 2พร้อมพารามิเตอร์ .
มิติ VC ของมันคืออะไร?
ฉันกำลังเรียนรู้การเรียนรู้ของเครื่องและฉันอยากจะรู้วิธีการคำนวณ VC-dimension
ตัวอย่างเช่น:
( a , b ) ∈ R 2พร้อมพารามิเตอร์ .
มิติ VC ของมันคืออะไร?
คำตอบ:
มิติ VC คือการประมาณความสามารถของตัวจําแนกไบนารี หากคุณสามารถหาชุดของจุดเพื่อที่จะสามารถทำลายโดยจําแนก (เช่นแยกประเภททั้งหมดที่เป็นไปได้ labelings ถูกต้อง) และคุณไม่สามารถหาสิ่งใด ๆชุดของจุดที่สามารถแตก (เช่นสำหรับการตั้งค่าใด ๆ ของจุดมีคำสั่งการติดฉลากอย่างน้อยหนึ่งเพื่อให้ลักษณนามไม่สามารถแยกทุกจุดได้อย่างถูกต้อง) แล้วมิติ VC เป็นn2 n n + 1 n + 1 n
ในกรณีของคุณก่อนพิจารณาสองจุดและเช่นว่า<x_2 จากนั้นจะมีป้ายกำกับที่เป็นไปได้x 2 x 1 < x 2 2 2 = 4
การติดฉลากทั้งหมดสามารถทำได้ผ่านลักษณนามโดยการตั้งค่าพารามิเตอร์เช่นนั้นa < b ∈ R
ตามลำดับ (ที่จริงแล้วสามารถสันนิษฐานได้ว่า wlog แต่ก็เพียงพอที่จะหาชุดที่สามารถแตกได้)
ทีนี้ลองพิจารณาสามข้อ (!) คะแนน , ,และ wlog ถือว่าจากนั้นคุณจะไม่สามารถติดฉลากได้ (1,0,1) เช่นในกรณีที่ 3 ข้างต้นฉลาก : 1 และ : 0 บ่งบอกถึงการจัดให้ซึ่งแสดงถึง > b และดังนั้นฉลากของต้องเป็น 0 ดังนั้นตัวจําแนกไม่สามารถสลายชุดของสามจุดใด ๆ ดังนั้นมิติ VC คือ 2
-
บางทีมันจะชัดเจนขึ้นโดยใช้ตัวจําแนกที่มีประโยชน์มากกว่า ลองพิจารณาไฮเปอร์เพลน (เช่นบรรทัดใน 2D)
มันง่ายที่จะหาชุดของสามจุดที่สามารถจำแนกได้อย่างถูกต้องไม่ว่าจะมีป้ายกำกับ:
สำหรับการติดฉลากที่เป็นไปได้ทั้งหมดเราสามารถหาไฮเปอร์เพลนที่แยกมันได้อย่างสมบูรณ์
อย่างไรก็ตามเราไม่สามารถหาชุดของ 4 คะแนนเพื่อให้เราสามารถจำแนกฉลากที่เป็นไปได้ทั้งหมดอย่างถูกต้อง แทนที่จะเป็นข้อพิสูจน์ที่เป็นทางการฉันพยายามเสนอการโต้แย้งด้วยภาพ:
สมมติว่าตอนนี้ 4 คะแนนเป็นตัวเลขที่มี 4 ด้าน จากนั้นเป็นไปไม่ได้ที่จะหาไฮเปอร์เพลนที่สามารถแยกจุดได้อย่างถูกต้องหากเราติดป้ายกำกับที่มุมตรงข้ามด้วยป้ายชื่อเดียวกัน:
หากพวกเขาไม่สร้างร่างที่มี 4 ด้านมี "กรณีขอบเขต" สองจุด: จุด "ด้านนอก" จะต้องเป็นรูปสามเหลี่ยมหรือทั้งรูปเป็นเส้นตรง ในกรณีของรูปสามเหลี่ยมมันเป็นเรื่องง่ายที่จะเห็นว่าการติดฉลากที่จุด "ด้านใน" (หรือจุดระหว่างมุมทั้งสอง) มีป้ายกำกับที่แตกต่างจากที่อื่นไม่สามารถทำได้:
ในกรณีของส่วนของเส้นความคิดเดียวกันจะใช้ หากจุดสิ้นสุดมีการระบุว่าแตกต่างจากจุดอื่นอย่างใดอย่างหนึ่งจะไม่สามารถคั่นด้วยไฮเปอร์เพลนได้
เนื่องจากเราครอบคลุมการก่อตัวที่เป็นไปได้ทั้งหมด 4 คะแนนใน 2D เราจึงสามารถสรุปได้ว่าไม่มี 4 คะแนนที่สามารถแตกหักได้ ดังนั้นมิติ VC ต้องเป็น 3
มิติ VC ของตัวจําแนกถูกกำหนดด้วยวิธีต่อไปนี้:
VC = 1
found = False
while True:
for point_distribution in all possible point distributions of VC+1 points:
allcorrect = True
for classdist in every way the classes could be assigned to the classes:
adjust classifier
if classifier can't classify everything correct:
allcorrect = False
break
if allcorrect:
VC += 1
continue
break
ดังนั้นจะต้องมีเพียงวิธีเดียวในการวางจุดสามจุดเพื่อให้การแจกแจงคลาสที่เป็นไปได้ทั้งหมดในการจัดวางจุดนี้สามารถจำแนกได้อย่างถูกต้อง
หากคุณไม่วางสามจุดลงบนเส้นการรับรู้จะทำให้ถูกต้อง แต่ไม่มีวิธีที่จะทำให้การรับรู้จำแนกประเภทการแจกแจงคลาสที่เป็นไปได้ทั้งหมด 4 คะแนนไม่ว่าคุณจะวางจุดอย่างไร
คุณสมบัติของคุณอยู่ใน{R} ตัวจําแนกทุกตัวมีอย่างน้อย 1 มิติ
VC-Dimension 2: สามารถจำแนกสถานการณ์ทั้งสี่อย่างถูกต้อง
VC-Dimension 3: ไม่มันไม่ทำงาน ลองนึกภาพการเรียนtrue
และถูกสั่งเช่นfalse
True False True
ตัวจําแนกของคุณไม่สามารถจัดการกับสิ่งนั้นได้ ดังนั้นมันจึงมี VC-Dimension 2
เห็นได้ชัดว่าคะแนนสามารถแยกความแตกต่างได้หากพวกเขามีค่าที่แตกต่างกัน โดยไม่สูญเสียของทั่วไปเราสามารถสรุปได้ว่า<x_3 ดังนั้นลักษณนามต้องสามารถจำแนกได้
class ( ) = True, class ( ) = False, class ( ) = True
ถูกต้องเพื่อให้มีมิติข้อมูล VC 3 สำหรับการจำแนกให้เป็นจริง จำเป็นต้องสำหรับจะเป็นเท็จ เป็นสิ่งจำเป็น ในฐานะที่และ , มันจะต้องมี<x_2 ดังนั้นสถานการณ์ในปัจจุบัน: สำหรับจะถูกจัดประเภทเป็นจริง จำเป็นต้องแต่ข้อ จำกัด อื่น ๆ ที่จำเป็นแล้ว<x_3 ดังนั้นจึงเป็นไปไม่ได้ที่จะจัดประเภทการแจกแจงคลาสทั้งหมดของ 3 คะแนนใด ๆ อย่างถูกต้องด้วยตัวจําแนกนี้ ดังนั้นจึงไม่มีมิติ VC 3