Giúp tôi hiểu về Máy hỗ trợ Vector


76

Tôi hiểu những điều cơ bản về mục đích của Máy Vector Hỗ trợ là gì trong việc phân loại bộ đầu vào thành nhiều lớp khác nhau, nhưng điều tôi không hiểu là một số chi tiết khó chịu. Để bắt đầu, tôi hơi bối rối khi sử dụng Biến Slack. Mục đích của họ là gì?

Tôi đang thực hiện một vấn đề phân loại trong đó tôi đã bắt được số đọc áp suất từ ​​các cảm biến tôi đã đặt ở đế giày. Một đối tượng sẽ ngồi, đứng và đi bộ trong vài phút trong khi dữ liệu áp lực được ghi lại. Tôi muốn đào tạo một bộ phân loại để có thể xác định xem một người đang ngồi, đứng hay đi và có thể làm điều đó cho bất kỳ dữ liệu thử nghiệm nào trong tương lai. Tôi cần thử loại phân loại nào? Cách tốt nhất để tôi huấn luyện bộ phân loại từ dữ liệu tôi đã thu thập là gì? Tôi có 1000 mục để ngồi, đứng và đi bộ (tổng cộng 3x1000 = 3000) và tất cả chúng đều có dạng vectơ đặc trưng sau. (áp suấtfromsensor1, áp suấtfromsensor2, áp suấtfensens3, áp suất cao4)


Câu trả lời:


103

Tôi nghĩ rằng bạn đang cố gắng để bắt đầu từ một kết thúc xấu. Những gì người ta nên biết về SVM để sử dụng nó chỉ là thuật toán này đang tìm một siêu phẳng trong không gian siêu thuộc tính phân tách hai lớp tốt nhất, trong đó phương tiện tốt nhất có lề lớn nhất giữa các lớp (kiến thức về cách thực hiện là kẻ thù của bạn ở đây, bởi vì nó làm mờ bức tranh tổng thể), như được minh họa bởi một bức tranh nổi tiếng như thế này: văn bản thay thế

Bây giờ, có một số vấn đề còn lại.
Trước hết, phải làm gì với những kẻ ngoại phạm khó chịu đang xấu hổ nằm giữa một đám mây điểm thuộc một tầng lớp khác?
văn bản thay thế
Để kết thúc này, chúng tôi cho phép trình tối ưu hóa để lại một số mẫu sai, nhưng vẫn trừng phạt từng ví dụ như vậy. Để tránh sự tối ưu hóa đa mục tiêu, các hình phạt cho các trường hợp viết sai được hợp nhất với kích thước lề với việc sử dụng tham số C bổ sung để kiểm soát sự cân bằng giữa các mục tiêu đó.
Tiếp theo, đôi khi vấn đề chỉ là không tuyến tính và không thể tìm thấy siêu phẳng tốt. Ở đây, chúng tôi giới thiệu thủ thuật kernel - chúng tôi chỉ chiếu không gian ban đầu, phi tuyến lên một chiều cao hơn với một số biến đổi phi tuyến, tất nhiên được xác định bởi một loạt các tham số bổ sung, hy vọng rằng trong không gian kết quả, vấn đề sẽ phù hợp với đơn giản SVM:

văn bản thay thế

Một lần nữa, với một số phép toán và chúng ta có thể thấy rằng toàn bộ quy trình chuyển đổi này có thể được ẩn một cách thanh lịch bằng cách sửa đổi hàm mục tiêu bằng cách thay thế sản phẩm chấm của các đối tượng bằng cái gọi là hàm kernel.
Cuối cùng, tất cả đều hoạt động cho 2 lớp và bạn có 3; Làm gì với nó đây? Ở đây chúng tôi tạo ra 3 phân loại 2 lớp (ngồi - không ngồi, đứng - không đứng, đi - không đi) và trong phân loại kết hợp những người có quyền biểu quyết.

Ok, vì vậy các vấn đề dường như đã được giải quyết, nhưng chúng tôi phải chọn kernel (ở đây chúng tôi tham khảo với trực giác của chúng tôi và chọn RBF) và phù hợp với ít nhất một vài tham số (kernel C +). Và chúng ta phải có hàm mục tiêu an toàn quá mức cho nó, ví dụ xấp xỉ lỗi từ xác thực chéo. Vì vậy, chúng tôi để máy tính làm việc trên đó, đi uống cà phê, quay lại và thấy rằng có một số thông số tối ưu. Tuyệt quá! Bây giờ chúng ta chỉ bắt đầu xác thực chéo lồng nhau để có xấp xỉ lỗi và voila.

Quy trình công việc ngắn gọn này tất nhiên là quá đơn giản để hoàn toàn chính xác, nhưng cho thấy lý do tại sao tôi nghĩ rằng trước tiên bạn nên thử với rừng ngẫu nhiên , gần như không tham số, đa giác, cung cấp ước tính lỗi không thiên vị và thực hiện gần như các SVM được trang bị tốt .


5
(+1) Thật tuyệt khi bạn thêm một số hình ảnh để minh họa toàn bộ!
chl

3
@mbq Vì bạn có vẻ rất thành thạo về SVM, hãy để tôi yêu cầu bạn làm rõ nghi ngờ của mình: một khi chúng tôi tìm thấy siêu phẳng tách biệt tốt nhất, chúng tôi sử dụng nó để làm gì? Chúng ta có thể định nghĩa SVM là một phương thức, trước tiên, chọn siêu phẳng tốt nhất để phân loại chính xác các điểm dữ liệu và thứ hai, nó sử dụng siêu phẳng này để cắt các điểm dữ liệu mới trong hai lớp. Đúng? (Tôi có một số nghi ngờ về phần thứ hai)
DavideChicco.it

3
@ DavideChicco.it Về cơ bản, vấn đề cốt lõi của toàn bộ ML là tạo ra một mô hình sẽ dự đoán dữ liệu mới một cách đáng tin cậy, vì vậy, có.
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.