Tại sao nó có thể phân tách tuyến tính trong SVM?


8

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

Tham chiếu đến hình ảnh trên, rõ ràng một vòng tròn có thể tách hai lớp (hình ảnh bên trái). Tại sao sau đó mất quá nhiều đau đớn để ánh xạ nó đến một chức năng để làm cho nó có thể phân tách tuyến tính (hình ảnh bên phải)?

Bất cứ ai có thể giải thích? Tôi thực sự không thể tìm thấy bất cứ điều gì trên các bài giảng trên web hoặc youtube về lý do tại sao

Câu trả lời:


5

Vâng, đó là toàn bộ ý tưởng đằng sau các máy vectơ hỗ trợ! svm đang tìm kiếm một siêu phẳng ngăn cách các lớp (tại sao tên) và tất nhiên điều đó có thể được thực hiện một cách hiệu quả nhất, các điểm có thể phân tách tuyến tính (đó không phải là điểm sâu, đó là tóm tắt của ý tưởng đầy đủ). Trong ví dụ bạn chỉ ra, điểm nằm trên các vòng hình khuyên đồng tâm, không thể tách rời bởi bất kỳ mặt phẳng nào, nhưng bằng cách đưa ra một biến RADIUS mới --- khoảng cách từ tâm --- bạn có được sự phân tách tuyến tính hoàn toàn.


Bạn muốn nói rằng sự tách biệt tuyến tính của các lớp là tốt hơn / dễ dàng hơn so với khả năng tách biệt phi tuyến tính?
vinita

1
Các lớp có thể được phân tách phi tuyến tính theo vô số cách, vì vậy, vâng, phân tách tuyến tính rõ ràng dễ xử lý hơn! Và, đó là ý tưởng hoàn chỉnh đằng sau SVM, để chúng hoạt động tốt hơn đối với dữ liệu tuân thủ các giả định đằng sau phương pháp này sẽ không gây ngạc nhiên ...
kjetil b halvorsen

@kjetilbhalvorsen Tôi nghĩ ý tưởng chính đằng sau SVM là thủ thuật kernel để tiết kiệm thời gian tính toán. Nhưng không "sử dụng mở rộng cơ sở đa thức".
Haitao Du

1
@ hdx1101 - Thủ thuật kernel tạo ra rất nhiều thứ khả thi, tính toán, nhưng đó là một lợi ích lớn để thực hiện, không phải là ý tưởng đằng sau chính phương thức này.
jbowman

2

Tại sao nó có thể phân tách tuyến tính trong SVM?

Các SVC vốn dĩ là một kỹ thuật tuyến tính. Họ tìm thấy các ranh giới tuyến tính phân tách (càng tốt nhất có thể) các lớp khác nhau. Nếu không có ranh giới tuyến tính tự nhiên cho vấn đề, các lựa chọn là sử dụng một kỹ thuật khác hoặc sử dụng các SVC với các tính năng được chuyển đổi thành một không gian nơi thực sự có ranh giới tuyến tính.

Tham chiếu đến hình ảnh trên, rõ ràng một vòng tròn có thể tách hai lớp (hình ảnh bên trái). Tại sao sau đó mất quá nhiều đau đớn để ánh xạ nó đến một chức năng để làm cho nó có thể phân tách tuyến tính (hình ảnh bên phải)?

Đây là một ví dụ cổ điển. Các lớp dữ liệu được phân tách bằng một vòng tròn, nhưng một SVC không thể tìm thấy các vòng tròn trực tiếp. Tuy nhiên, nếu dữ liệu được chuyển đổi bằng hàm cơ sở xuyên tâm , thì trong không gian kết quả, các lớp được phân tách bằng một ranh giới tuyến tính.


0

Không trực tiếp trả lời câu hỏi của bạn, nhưng,

Điều quan trọng là phải ghi nhớ sự khác biệt giữa mở rộng cơ sở và phương thức Kernel / SVM .

  • Chúng ta có thể "mở rộng dữ liệu" bằng cách sử dụng mở rộng cơ sở theo nhiều cách khác nhau. Ví dụ, mở rộng đa thức, splines, chuỗi Fourier, v.v ... Những mở rộng cơ sở này ít liên quan đến SVM, thủ thuật kernel.

  • SVM với nhân đa thức cung cấp sử dụng các cách "hiệu ứng tính toán" để thực hiện mở rộng cơ sở đa thức. Tìm kiếm Kernel trick để biết chi tiết.


-1

Bạn nói đúng. Khi trường nói "có thể phân tách tuyến tính", điều đó có nghĩa là dữ liệu phải "khác biệt": tồn tại một số chức năng lọc mà bạn có thể phủ lên tập dữ liệu để tạo hai hoặc nhiều nhóm khác nhau (với một số sai số nhỏ).

Đó là tất cả. Nhưng bạn nên chỉ ra các học giả để làm sạch ngôn ngữ của họ.

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.