VC boyutu nasıl hesaplanır?


12

Makine öğrenimi okuyorum ve VC boyutunu nasıl hesaplayacağımı bilmek istiyorum.

Örneğin:

h(x)={1if axb0else  ( a , b ) R ' 2 , parametreleriyle .(a,b)R2

Bunun VC boyutu nedir?

Yanıtlar:


10

VC boyutu, bir ikili sınıflandırıcının kapasitesi için bir tahmindir. Eğer bir dizi bulabilirseniz böylece sınıflandırıcı tarafından paramparça olabilir ki (yani sınıflandırmak, puan tüm olası 2 n doğru labelings) ile edemez bulmak herhangi kümesini n + 1 herhangi kümesi için yani (paramparça edilebilir noktaları n + 1 puan, sınıflandırıcının tüm noktaları doğru şekilde ayıramaması için en az bir etiketleme sırası vardır), o zaman VC boyutu n'dir .n2nn+1n+1n

Senin durumunda ilk iki noktayı dikkate ve x 2 , öyle ki x 1 < x 2 . Sonra 2 2 = 4 olası etiket varx1x2x1<x222=4

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

Tüm etiketlemeler, sınıflandırıcı aracılığıyla a < b R parametreleri ayarlanarak elde edilebilir .ha<bR

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

sırasıyla. (Aslında, wlog olarak kabul edilebilir, ancak paramparça olabilen bir set bulmak yeterlidir.)x1<x2

Şimdi, üç rastgele (!) Noktasını , x 2 , x 3 ve wlog'un x 1 < x 2 < x 3 olduğunu varsayalım , o zaman etiketlemeye ulaşamazsınız (1,0,1). Yukarıdaki 3. durumda olduğu gibi, x 1 : 1 ve x 2 : 0 etiketleri bir < x 1 < b < x 2 anlamına gelir . Bu, x 3 > b'yi ve dolayısıyla x 3 etiketini ima ederx1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3 Bu nedenle, sınıflandırıcı herhangi bir üç nokta kümesini parçalayamaz ve bu nedenle VC boyutu 2'dir.

-

Belki daha kullanışlı bir sınıflandırıcı ile daha net hale gelir. Hiper düzlemleri düşünelim (yani 2B'deki çizgiler).

Nasıl etiketlenmiş olursa olsun doğru sınıflandırılabilecek üç noktadan oluşan bir set bulmak kolaydır:

resim açıklamasını buraya girin

Tüm olası etiketlemeler için, bunları mükemmel şekilde ayıran bir hiper düzlem bulabiliriz.23=8

Bununla birlikte, olası etiketi doğru şekilde sınıflandırabilmemiz için 4 nokta kümesi bulamıyoruz . Resmi bir kanıt yerine, görsel bir argüman sunmaya çalışıyorum:24=16

Şimdilik, 4 noktanın 4 tarafı olan bir şekil oluşturduğunu varsayın. Daha sonra, karşıt köşeleri aynı etiketle etiketlersek noktaları doğru ayırabilen bir köprü bulmak imkansızdır:

Eğer 4 tarafı olan bir şekil oluşturmazlarsa, iki "sınır durumu" vardır: "Dış" noktalar ya bir üçgen oluşturmalı ya da hepsi düz bir çizgi oluşturmalıdır. Üçgen durumunda, "iç" noktanın (veya iki köşe arasındaki noktanın) diğerlerinden farklı olarak etiketlendiği etiketlemeye ulaşılamadığını görmek kolaydır:

Çizgi segmenti için aynı fikir geçerlidir. Bitiş noktaları diğer noktalardan farklı olarak etiketlenmişse, bir hiper düzlemle ayrılamazlar.

4 noktadaki tüm olası oluşumları 2D olarak kapsadığımız için, parçalanabilecek 4 nokta olmadığı sonucuna varabiliriz. Bu nedenle, VC boyutu 3 olmalıdır.


1
> Ancak işlev x1 = 0, x2 = 0, x3 = 0 elde edebilir. Tüm etiketleri başarması mı gerekiyor?
孙 声 孙

Ben de benzer bir soru sordum datascience.stackexchange.com/questions/39064/… ki bu da doğrusal bir hipotez fonksiyonuna bağlı. Buna cevap verebilir misin?
Suhail Gupta

3

Bir sınıflandırıcının VC boyutu aşağıdaki şekilde belirlenir:

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

Dolayısıyla, bu nokta yerleşimi arasındaki tüm sınıf dağılımlarının doğru şekilde sınıflandırılabilmesi için üç noktayı yerleştirmenin tek bir yolu olmalıdır.

Üç noktayı bir çizginin üzerine yerleştirmezseniz, algılama doğru olur. Ancak, algıyı nasıl yerleştirdiğinize bakılmaksızın, algının 4 puanlık tüm olası sınıf dağılımlarını sınıflandırmasını sağlamanın bir yolu yoktur.

Örneğiniz

R

VC-Boyut 2: Dört durumu da doğru şekilde sınıflandırabilir.

  1. Puan: 0 ve 42
  2. dağılımları:
    • a=1337,b=3141
    • a=40,b=1337
    • a=1,b=1
    • a=1,b=1337

VC-Boyut 3: Hayır, bu işe yaramıyor. Sınıfları trueve falseemredildiğini düşünün True False True. Sınıflandırıcınız bununla başa çıkamaz. Bu nedenle VC-Boyutu 2'dir.

Kanıt

x1,x2,x3Rx1<x2<x3

x1x2x3

x1

ax1b
x2
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3. Bu nedenle, herhangi bir 3 noktanın tüm sınıf dağılımlarını bu sınıflandırıcı ile doğru bir şekilde sınıflandırmak mümkün değildir. Bu nedenle VC boyut 3'e sahip değildir.

1
sabit bir sınıflandırıcının VC boyutu 0'dır (biri ilk etapta bir sınıflandırıcı olarak düşünülmemesi gerektiğini
savunsa bile

1
Ah ... doğru. Ama evet, bir makine öğrenimi bağlamında hiçbir sınıflandırıcıda verilere uyum sağlayamayan bir sistemi çağırmam.
Martin Thoma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.