Làm thế nào để tính toán kích thước VC?


12

Tôi đang học máy học, và tôi muốn biết cách tính kích thước VC.

Ví dụ:

h(x)={1if axb0else  , với các thông số(a,b)R2 .

Kích thước VC của nó là gì?

Câu trả lời:


10

Kích thước VC là ước tính cho khả năng của phân loại nhị phân. Nếu bạn có thể tìm thấy một tập hợp điểm, thì nó có thể bị phá vỡ bởi trình phân loại (nghĩa là phân loại chính xác tất cả các nhãn 2 n có thể ) và bạn không thể tìm thấy bất kỳ tập hợp n + 1 điểm nào có thể bị phá vỡ (ví dụ: đối với bất kỳ tập hợp nào của n + 1 điểm có ít nhất một thứ tự ghi nhãn để bộ phân loại không thể tách rời tất cả các điểm một cách chính xác), thì kích thước VC là n .n2nn+1n+1n

Trong trường hợp của bạn, trước tiên hãy xem xét hai điểm x 2 , sao cho x 1 < x 2 . Sau đó, có 2 2 = 4 nhãn có thểx1x2x1<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ất cả các nhãn có thể đạt được thông qua bộ phân loại bằng cách đặt tham số a < b R sao choha<bR

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

tương ứng. (Trên thực tế, có thể được giả định là wlog nhưng nó đủ để tìm một bộ có thể bị phá vỡ.)x1<x2

Bây giờ, hãy xem xét ba điểm (!) Tùy ý , x 2 , x 3 và giả sử x 1 < x 2 < x 3 , sau đó bạn không thể đạt được nhãn (1,0,1). Như trong trường hợp 3 ở trên, các nhãn x 1 : 1 và x 2 : 0 ngụ ý a < x 1 < b < x 2 . Điều này ngụ ý x 3 > b và do đó nhãn của x 3x1x2x3x1<x2<x3x1x2a<x1<b<x2x3x3 phải bằng 0. Do đó, bộ phân loại không thể phá vỡ bất kỳ tập hợp ba điểm nào và do đó kích thước VC là 2.

-

Có lẽ nó trở nên rõ ràng hơn với một phân loại hữu ích hơn. Chúng ta hãy xem xét các siêu phẳng (tức là các dòng trong 2D).

Thật dễ dàng để tìm thấy một bộ ba điểm có thể được phân loại chính xác cho dù chúng được dán nhãn như thế nào:

nhập mô tả hình ảnh ở đây

Đối với tất cả nhãn có thể, chúng ta có thể tìm thấy một siêu phẳng ngăn cách chúng một cách hoàn hảo.23=8

Tuy nhiên, chúng tôi không thể tìm thấy bất kỳ bộ 4 điểm nào để chúng tôi có thể phân loại chính xác tất cả nhãn có thể. Thay vì một bằng chứng chính thức, tôi cố gắng trình bày một lập luận trực quan:24=16

Giả sử bây giờ, 4 điểm tạo thành một hình có 4 cạnh. Sau đó, không thể tìm thấy một siêu phẳng có thể phân tách các điểm một cách chính xác nếu chúng ta dán nhãn các góc đối diện với cùng một nhãn:

Nếu chúng không tạo thành một hình có 4 cạnh, có hai "trường hợp biên": Các điểm "bên ngoài" phải tạo thành một hình tam giác hoặc tất cả tạo thành một đường thẳng. Trong trường hợp của tam giác, dễ dàng nhận thấy rằng việc ghi nhãn trong đó điểm "bên trong" (hoặc điểm giữa hai góc) được dán nhãn khác với các điểm khác không thể đạt được:

Trong trường hợp của một phân khúc dòng, ý tưởng tương tự được áp dụng. Nếu các điểm cuối được dán nhãn khác với một trong những điểm khác, chúng không thể được phân tách bằng một siêu phẳng.

Vì chúng tôi bao gồm tất cả các hình thành có thể có 4 điểm trong 2D, chúng tôi có thể kết luận rằng không có 4 điểm nào có thể bị phá vỡ. Do đó, kích thước VC phải là 3.


1
> Nhưng hàm có thể đạt được x1 = 0, x2 = 0, x3 = 0. Nó cần phải đạt được tất cả các nhãn?
铭 声

Tôi đã hỏi một câu hỏi tương tự ở đây datascience.stackexchange.com/questions/39064/ , đó là trong bối cảnh cho một chức năng giả thuyết tuyến tính. Bạn có thể giúp trả lời không?
Suhail Gupta

3

Kích thước VC của trình phân loại được xác định theo cách sau:

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

Vì vậy, chỉ có một cách để đặt ba điểm sao cho tất cả các phân phối lớp có thể trong số vị trí điểm này có thể được phân loại đúng cách.

Nếu bạn không đặt ba điểm trên một dòng, nhận thức sẽ đúng. Nhưng không có cách nào để nhận thức phân loại tất cả các phân phối lớp có thể là 4 điểm, bất kể bạn đặt điểm như thế nào

Ví dụ của bạn

R

VC-Dimension 2: Nó có thể phân loại chính xác cả bốn tình huống.

  1. Điểm: 0 và 42
  2. Phân phối:
    • a=1337,b=3141
    • a=40,b=1337
    • a=1,b=1
    • a=1,b=1337

VC-Dimension 3: Không, điều đó không hoạt động. Hãy tưởng tượng các lớp học truefalseđược ra lệnh như thế nào True False True. Phân loại của bạn không thể đối phó với điều đó. Do đó, nó có kích thước VC là 2.

Bằng chứng

x1,x2,x3Rx1<x2<x3

x1x2x3

x1

ax1b
x2 là bắt buộc. Như một x 1
x2<a or b<x2
ax1x1<x2b<x2
ax1b<x2<x3
x3
ax3b
b<x3. Do đó, không thể phân loại tất cả các phân phối lớp của 3 điểm bất kỳ một cách chính xác với trình phân loại này. Do đó, nó không có kích thước VC 3.

1
bộ phân loại không đổi có kích thước VC 0 (mặc dù người ta có thể lập luận rằng nó không nên được coi là bộ phân loại ở vị trí đầu tiên)
oW_

1
Ô đúng rồi. Nhưng vâng, tôi sẽ không gọi một hệ thống không thể thích ứng với dữ liệu ở tất cả các trình phân loại trong ngữ cảnh học máy.
Martin Thoma
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.