Як обчислити розмір VC?


12

Я вивчаю машинне навчання, і я хотів би знати, як обчислити розмір VC.

Наприклад:

h(x)={1if axb0else  , з параметрами(a,b)R2 .

Який розмір VC?

Відповіді:


10

Розмір VC - це оцінка здатності двійкового класифікатора. Якщо ви можете знайти набір з точок, так що він може бути зруйнований класифікатором (тобто правильно класифікувати всі можливі 2 n мітки), і ви не можете знайти жодного набору з n + 1 балів, який можна зруйнувати (тобто для будь-якого набору n + 1 балів є принаймні один порядок маркування, щоб класифікатор не міг розділити всі точки правильно), тоді розмір VC дорівнює n .n2nn+1n+1n

У вашому випадку спочатку розгляньте дві точки і x 2 , такі, що x 1 < x 2 . Тоді є 2 2 = 4 можливі маркуванняx1x2x1<x222=4

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

Всі маркування можна досягти за допомогою класифікатора , встановивши параметри a < b R таким, щоha<bR

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

відповідно. (Власне, можна вважати wlog, але достатньо знайти один набір, який можна зруйнувати.)x1<x2

Тепер розглянемо три довільних (!) Точки , x 2 , x 3 і wlog припустимо x 1 < x 2 < x 3 , тоді ви не можете досягти маркування (1,0,1). Як і у випадку 3 вище, мітки x 1 : 1 і x 2 : 0 означають, що < x 1 < b < x 2 . Що означає x 3 > b і, отже, мітка x 3x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3 має бути 0. Таким чином, класифікатор не може зруйнувати жоден набір з трьох точок, і тому розмір VC дорівнює 2.

-

Можливо, це стає зрозумілішим за допомогою більш корисного класифікатора. Розглянемо гіперплани (тобто лінії в 2D).

Легко знайти набір з трьох точок, які можна правильно класифікувати, незалежно від того, як вони позначені:

введіть тут опис зображення

Для всіх можливих міток ми можемо знайти гіперплан, який їх ідеально розділяє.23=8

Однак ми не можемо знайти жодного набору з 4-х точок, щоб ми могли правильно класифікувати всі можливих маркування. Замість офіційного доказу я намагаюся представити візуальний аргумент:24=16

Припустимо, що 4 точки утворюють фігуру з 4 сторін. Тоді неможливо знайти гіперплан, який би міг правильно розділити точки, якщо позначити протилежні кути однаковою міткою:

Якщо вони не утворюють фігуру з чотирьох сторін, є два "граничні випадки": "Зовнішні" точки повинні або утворювати трикутник, або всі утворювати пряму лінію. У випадку трикутника легко помітити, що маркування, де «внутрішня» точка (або точка між двома кутами) позначена різною від інших, не може бути досягнута:

У випадку з відрізком ліній застосовується та ж ідея. Якщо кінцеві точки позначені інакше, ніж одна з інших точок, їх не можна розділити гіперпланом.

Оскільки ми охопили всі можливі формування з 4 балів у 2D, ми можемо зробити висновок, що немає 4 балів, які можна зруйнувати. Отже, розмір ВК повинен бути 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

VC-вимір 2: Він може правильно класифікувати всі чотири ситуації.

  1. Бали: 0 і 42
  2. Поширення:
    • a=1337,b=3141
    • a=40,b=1337
    • a=1,b=1
    • a=1,b=1337

VC-вимір 3: Ні, це не працює. Уявіть собі заняття trueта falseїх замовлення на зразок True False True. Ваш класифікатор не може з цим впоратися. Отже, він має VC-розмір 2.

Доказ

x1,x2,x3Rx1<x2<x3

x1x2x3

x1

ax1b
x2
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3. Отже, неможливо правильно класифікувати всі розподіли класів будь-яких 3 балів за допомогою цього класифікатора. Отже, він не має розмірності 3 ВК.

1
постійний класифікатор має розмір VC 0 (хоча можна стверджувати, що це не слід вважати класифікатором в першу чергу)
oW_

1
Авжеж. Але так, я б не назвав систему, яка взагалі не може адаптуватись до даних класифікатором у контексті машинного навчання.
Мартін Тома
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.