Hỗ trợ Máy Vector là một vấn đề tối ưu hóa. Họ đang cố gắng tìm một siêu phẳng phân chia hai lớp với biên độ lớn nhất. Các vectơ hỗ trợ là các điểm nằm trong biên độ này. Dễ hiểu nhất nếu bạn xây dựng nó từ đơn giản đến phức tạp hơn.
Biên lợi nhuận cứng SVM tuyến tính
Trong tập huấn luyện mà dữ liệu được phân tách theo tuyến tính và bạn đang sử dụng một lề cứng (không được phép chùng), các vectơ hỗ trợ là các điểm nằm dọc theo các siêu phẳng hỗ trợ (các siêu phẳng song song với siêu phẳng phân chia ở các cạnh của lề )
Tất cả các vectơ hỗ trợ nằm chính xác trên lề. Bất kể số thứ nguyên hoặc kích thước của tập dữ liệu, số lượng vectơ hỗ trợ có thể ít nhất là 2.
SVM tuyến tính lề mềm
Nhưng điều gì sẽ xảy ra nếu tập dữ liệu của chúng ta không thể phân tách tuyến tính? Chúng tôi giới thiệu SVM ký quỹ mềm. Chúng tôi không còn yêu cầu các điểm dữ liệu của chúng tôi nằm ngoài lề nữa, chúng tôi cho phép một số điểm trong số chúng đi lạc qua dòng vào lề. Chúng tôi sử dụng tham số slack C để kiểm soát điều này. (nu trong nu-SVM) Điều này mang lại cho chúng ta biên độ rộng hơn và sai số lớn hơn trên tập dữ liệu huấn luyện, nhưng cải thiện tính tổng quát hóa và / hoặc cho phép chúng ta tìm thấy sự phân tách tuyến tính của dữ liệu không thể phân tách theo tuyến tính.
Bây giờ, số lượng vectơ hỗ trợ phụ thuộc vào mức độ chúng ta cho phép và sự phân phối dữ liệu. Nếu chúng ta cho phép một lượng lớn độ chùng, chúng ta sẽ có một số lượng lớn các vectơ hỗ trợ. Nếu chúng ta cho phép rất ít độ chùng, chúng ta sẽ có rất ít vectơ hỗ trợ. Độ chính xác phụ thuộc vào việc tìm đúng mức độ chùng cho dữ liệu được phân tích. Một số dữ liệu sẽ không thể có được mức độ chính xác cao, chúng ta chỉ đơn giản là phải tìm ra kết quả phù hợp nhất có thể.
SVM phi tuyến tính
Điều này đưa chúng ta đến SVM phi tuyến tính. Chúng tôi vẫn đang cố gắng phân chia dữ liệu một cách tuyến tính, nhưng chúng tôi hiện đang cố gắng làm điều đó trong một không gian chiều cao hơn. Điều này được thực hiện thông qua một hàm nhân, tất nhiên có một bộ tham số riêng. Khi chúng tôi dịch điều này trở lại không gian đối tượng địa lý ban đầu, kết quả là phi tuyến tính:
Bây giờ, số lượng vectơ hỗ trợ vẫn phụ thuộc vào mức độ chùng mà chúng tôi cho phép, nhưng nó cũng phụ thuộc vào độ phức tạp của mô hình của chúng tôi. Mỗi lần xoắn và lần lượt trong mô hình cuối cùng trong không gian đầu vào của chúng tôi yêu cầu một hoặc nhiều vectơ hỗ trợ để xác định. Cuối cùng, đầu ra của một SVM là các vectơ hỗ trợ và một alpha, về bản chất là xác định mức độ ảnh hưởng của vectơ hỗ trợ cụ thể đó đến quyết định cuối cùng.
Ở đây, độ chính xác phụ thuộc vào sự đánh đổi giữa một mô hình có độ phức tạp cao có thể quá phù hợp với dữ liệu và một biên độ lớn sẽ phân loại không chính xác một số dữ liệu đào tạo vì lợi ích tổng quát hóa tốt hơn. Số lượng vectơ hỗ trợ có thể từ rất ít đến từng điểm dữ liệu nếu bạn hoàn toàn phù hợp với dữ liệu của mình. Sự cân bằng này được kiểm soát thông qua C và thông qua việc lựa chọn hạt nhân và các tham số hạt nhân.
Tôi cho rằng khi bạn nói hiệu suất là bạn đang đề cập đến độ chính xác, nhưng tôi nghĩ tôi cũng sẽ nói đến hiệu suất về độ phức tạp tính toán. Để kiểm tra một điểm dữ liệu bằng mô hình SVM, bạn cần tính tích số chấm của mỗi vectơ hỗ trợ với điểm kiểm tra. Do đó, độ phức tạp tính toán của mô hình là tuyến tính trong số các vectơ hỗ trợ. Ít vectơ hỗ trợ hơn đồng nghĩa với việc phân loại điểm kiểm tra nhanh hơn.
Một tài nguyên tốt:
Hướng dẫn về Máy vectơ hỗ trợ để nhận dạng mẫu