วิธีการคำนวณขนาด VC?


12

ฉันกำลังเรียนรู้การเรียนรู้ของเครื่องและฉันอยากจะรู้วิธีการคำนวณ VC-dimension

ตัวอย่างเช่น:

h(x)={1if axb0else  ( a , b ) R 2พร้อมพารามิเตอร์ .(a,b)R2

มิติ VC ของมันคืออะไร?

คำตอบ:


10

มิติ VC คือการประมาณความสามารถของตัวจําแนกไบนารี หากคุณสามารถหาชุดของจุดเพื่อที่จะสามารถทำลายโดยจําแนก (เช่นแยกประเภททั้งหมดที่เป็นไปได้ labelings ถูกต้อง) และคุณไม่สามารถหาสิ่งใด ๆชุดของจุดที่สามารถแตก (เช่นสำหรับการตั้งค่าใด ๆ ของจุดมีคำสั่งการติดฉลากอย่างน้อยหนึ่งเพื่อให้ลักษณนามไม่สามารถแยกทุกจุดได้อย่างถูกต้อง) แล้วมิติ VC เป็นn2 n n + 1 n + 1 nn2nn+1n+1n

ในกรณีของคุณก่อนพิจารณาสองจุดและเช่นว่า<x_2 จากนั้นจะมีป้ายกำกับที่เป็นไปได้x 2 x 1 < x 2 2 2 = 4x1x2x1<x222=4

  1. x 2 : 1x1:1 ,x2:1
  2. x 2 : 0x1:0 ,x2:0
  3. x 2 : 0x1:1 ,x2:0
  4. x 2 : 1x1:0 ,x2:1

การติดฉลากทั้งหมดสามารถทำได้ผ่านลักษณนามโดยการตั้งค่าพารามิเตอร์เช่นนั้นa < b Rha<bR

  1. a<x1<x2<b
  2. x1<x2<a<b
  3. a<x1<b<x2
  4. x1<a<x2<b

ตามลำดับ (ที่จริงแล้วสามารถสันนิษฐานได้ว่า wlog แต่ก็เพียงพอที่จะหาชุดที่สามารถแตกได้)x1<x2

ทีนี้ลองพิจารณาสามข้อ (!) คะแนน , ,และ wlog ถือว่าจากนั้นคุณจะไม่สามารถติดฉลากได้ (1,0,1) เช่นในกรณีที่ 3 ข้างต้นฉลาก : 1 และ : 0 บ่งบอกถึงการจัดให้ซึ่งแสดงถึง > b และดังนั้นฉลากของต้องเป็น 0 ดังนั้นตัวจําแนกไม่สามารถสลายชุดของสามจุดใด ๆ ดังนั้นมิติ VC คือ 2x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3

-

บางทีมันจะชัดเจนขึ้นโดยใช้ตัวจําแนกที่มีประโยชน์มากกว่า ลองพิจารณาไฮเปอร์เพลน (เช่นบรรทัดใน 2D)

มันง่ายที่จะหาชุดของสามจุดที่สามารถจำแนกได้อย่างถูกต้องไม่ว่าจะมีป้ายกำกับ:

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับการติดฉลากที่เป็นไปได้ทั้งหมดเราสามารถหาไฮเปอร์เพลนที่แยกมันได้อย่างสมบูรณ์23=8

อย่างไรก็ตามเราไม่สามารถหาชุดของ 4 คะแนนเพื่อให้เราสามารถจำแนกฉลากที่เป็นไปได้ทั้งหมดอย่างถูกต้อง แทนที่จะเป็นข้อพิสูจน์ที่เป็นทางการฉันพยายามเสนอการโต้แย้งด้วยภาพ:24=16

สมมติว่าตอนนี้ 4 คะแนนเป็นตัวเลขที่มี 4 ด้าน จากนั้นเป็นไปไม่ได้ที่จะหาไฮเปอร์เพลนที่สามารถแยกจุดได้อย่างถูกต้องหากเราติดป้ายกำกับที่มุมตรงข้ามด้วยป้ายชื่อเดียวกัน:

หากพวกเขาไม่สร้างร่างที่มี 4 ด้านมี "กรณีขอบเขต" สองจุด: จุด "ด้านนอก" จะต้องเป็นรูปสามเหลี่ยมหรือทั้งรูปเป็นเส้นตรง ในกรณีของรูปสามเหลี่ยมมันเป็นเรื่องง่ายที่จะเห็นว่าการติดฉลากที่จุด "ด้านใน" (หรือจุดระหว่างมุมทั้งสอง) มีป้ายกำกับที่แตกต่างจากที่อื่นไม่สามารถทำได้:

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

เนื่องจากเราครอบคลุมการก่อตัวที่เป็นไปได้ทั้งหมด 4 คะแนนใน 2D เราจึงสามารถสรุปได้ว่าไม่มี 4 คะแนนที่สามารถแตกหักได้ ดังนั้นมิติ VC ต้องเป็น 3


1
> แต่ฟังก์ชั่นสามารถบรรลุ x1 = 0, x2 = 0, x3 = 0 จำเป็นต้องบรรลุฉลากทั้งหมดหรือไม่
铭声孙

ฉันถามคำถามที่คล้ายกันที่นี่datascience.stackexchange.com/questions/39064/ …ซึ่งอยู่ในบริบทของฟังก์ชันสมมติฐานเชิงเส้นตรง คุณช่วยตอบได้ไหม
Suhail Gupta

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 มิติR

VC-Dimension 2: สามารถจำแนกสถานการณ์ทั้งสี่อย่างถูกต้อง

  1. คะแนน: 0 และ 42
  2. การกระจาย:
    • class (0) = False, class (42) = False =>จัดประเภทนี้อย่างถูกต้องa=1337,b=3141
    • class (0) = False, class (42) = True =>จัดประเภทนี้อย่างถูกต้องa=40,b=1337
    • class (0) = True, class (42) = False =>จัดประเภทนี้อย่างถูกต้องa=1,b=1
    • class (0) = True, class (42) = True =>จัดประเภทอย่างถูกต้องa=1,b=1337

VC-Dimension 3: ไม่มันไม่ทำงาน ลองนึกภาพการเรียนtrueและถูกสั่งเช่นfalse True False Trueตัวจําแนกของคุณไม่สามารถจัดการกับสิ่งนั้นได้ ดังนั้นมันจึงมี VC-Dimension 2

พิสูจน์

เห็นได้ชัดว่าคะแนนสามารถแยกความแตกต่างได้หากพวกเขามีค่าที่แตกต่างกัน โดยไม่สูญเสียของทั่วไปเราสามารถสรุปได้ว่า<x_3 ดังนั้นลักษณนามต้องสามารถจำแนกได้x1,x2,x3Rx1<x2<x3

class ( ) = True, class ( ) = False, class ( ) = Truex1x2x3

ถูกต้องเพื่อให้มีมิติข้อมูล VC 3 สำหรับการจำแนกให้เป็นจริง จำเป็นต้องสำหรับจะเป็นเท็จ เป็นสิ่งจำเป็น ในฐานะที่และ , มันจะต้องมี<x_2 ดังนั้นสถานการณ์ในปัจจุบัน: สำหรับจะถูกจัดประเภทเป็นจริง จำเป็นต้องแต่ข้อ จำกัด อื่น ๆ ที่จำเป็นแล้ว<x_3 ดังนั้นจึงเป็นไปไม่ได้ที่จะจัดประเภทการแจกแจงคลาสทั้งหมดของ 3 คะแนนใด ๆ อย่างถูกต้องด้วยตัวจําแนกนี้ ดังนั้นจึงไม่มีมิติ VC 3x1

ax1b
x2 a x 1 x 1 < x 2 b < x 2 a x 1b < x 2 < x 3 x 3 a x 3b b < x 3
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3

1
ลักษณนามคงที่มีมิติ VC 0 (แม้ว่าใครสามารถแย้งว่ามันไม่ควรพิจารณาว่าเป็นลักษณนามในตอนแรก)
oW_

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