Có phải Support Vector Machines vẫn được coi là trạng thái của nghệ thuật trong khu vực của họ không?


58

Câu hỏi này là để trả lời một bình luận tôi thấy trên một câu hỏi khác.

Nhận xét liên quan đến giáo trình khóa học Machine Learning trên Coursera và dọc theo dòng "SVM không được sử dụng nhiều hiện nay".

Tôi mới chỉ tự mình hoàn thành các bài giảng có liên quan, và sự hiểu biết của tôi về SVM là chúng là một thuật toán học tập mạnh mẽ và hiệu quả để phân loại, và khi sử dụng kernel, chúng có một số "tính năng" bao gồm 10 đến 1000 và số lượng mẫu đào tạo có lẽ 100 đến 10.000. Giới hạn đối với các mẫu đào tạo là do thuật toán cốt lõi xoay quanh việc tối ưu hóa các kết quả được tạo từ một ma trận vuông với các kích thước dựa trên số lượng mẫu đào tạo, chứ không phải số lượng các tính năng ban đầu.

Nhận xét mà tôi thấy có đề cập đến một số thay đổi thực sự kể từ khi khóa học được thực hiện, và nếu vậy, đó là gì: Một thuật toán mới bao gồm "điểm ngọt" của SVM cũng vậy, CPU tốt hơn có nghĩa là lợi thế tính toán của SVM không đáng bao nhiêu ? Hoặc có lẽ là ý kiến ​​hoặc kinh nghiệm cá nhân của người bình luận?

Tôi đã thử tìm kiếm ví dụ "là các máy vectơ hỗ trợ lỗi thời" và không tìm thấy điều gì có nghĩa là chúng bị bỏ rơi để ủng hộ bất cứ điều gì khác.

Và Wikipedia có cái này: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . điểm dính chính dường như là khó khăn trong việc diễn giải mô hình. Điều này làm cho SVM tốt cho một công cụ dự đoán hộp đen, nhưng không tốt cho việc tạo ra thông tin chi tiết. Tôi không coi đó là một vấn đề lớn, chỉ là một điều nhỏ khác cần tính đến khi chọn công cụ phù hợp cho công việc (cùng với bản chất của dữ liệu đào tạo và nhiệm vụ học tập, v.v.).



6
Tôi không hiểu - đây không phải là một câu hỏi nên được đăng trên CrossValidated? Tôi tiếp tục bối rối về những gì diễn ra giữa DataScience và CrossValidated.
fnl

@fnl: svms có một số cạnh tranh khi phân loại từ các giải pháp kỹ thuật "thuần túy" ít toán học hơn, vì vậy tôi nghĩ DataScience ở vị trí tốt hơn để so sánh ở đây. Mặc dù tôi chia sẻ sự nhầm lẫn của bạn!
Neil Slater

Câu trả lời:


47

SVM là một phân loại mạnh mẽ. Nó có một số lợi thế tốt (mà tôi đoán là chịu trách nhiệm cho sự phổ biến của nó) ... Đó là:

  • Hiệu quả: Chỉ các vectơ hỗ trợ đóng vai trò xác định ranh giới phân loại. Tất cả các điểm khác từ tập huấn luyện không cần được lưu trong bộ nhớ.
  • Cái gọi là sức mạnh của hạt nhân: Với các hạt nhân thích hợp, bạn có thể biến không gian đặc trưng thành một chiều cao hơn để nó trở nên tách rời tuyến tính. Khái niệm hạt nhân hoạt động với các đối tượng tùy ý mà bạn có thể xác định một số khái niệm tương tự với sự trợ giúp của các sản phẩm bên trong ... và do đó, các SVM có thể phân loại các đối tượng tùy ý như cây cối, đồ thị, v.v.

Có một số nhược điểm đáng kể là tốt.

  • Độ nhạy tham số: Hiệu suất rất nhạy cảm với sự lựa chọn tham số chính quy C, cho phép một số phương sai trong mô hình.
  • Tham số bổ sung cho nhân Gaussian: Bán kính của nhân Gaussian có thể có tác động đáng kể đến độ chính xác của phân loại. Thông thường, một tìm kiếm lưới phải được tiến hành để tìm các tham số tối ưu. LibSVM có hỗ trợ tìm kiếm lưới.

Các SVM thường thuộc về lớp "Máy hạt nhân thưa thớt". Các vectơ thưa thớt trong trường hợp SVM là các vectơ hỗ trợ được chọn từ tiêu chí lề tối đa. Các máy vectơ thưa thớt khác như Máy vectơ liên quan (RVM) hoạt động tốt hơn SVM. Hình dưới đây cho thấy một hiệu suất so sánh của hai. Trong hình, trục x hiển thị dữ liệu một chiều từ hai lớp y = {0,1}. Mô hình hỗn hợp được định nghĩa là P (x | y = 0) = Unif (0,1) và P (x | y = 1) = Unif (.5,1.5) (Unif biểu thị phân phối đồng đều). 1000 điểm được lấy mẫu từ hỗn hợp này và một SVM và RVM đã được sử dụng để ước tính hậu nghiệm. Vấn đề của SVM là các giá trị dự đoán khác xa so với tỷ lệ cược nhật ký thực sự.

RVM so với SVM

Một phân loại rất hiệu quả, rất phổ biến hiện nay, là Rừng ngẫu nhiên . Những ưu điểm chính là:

  • Chỉ có một tham số để điều chỉnh (tức là số lượng cây trong rừng)
  • Không hoàn toàn thông số nhạy cảm
  • Có thể dễ dàng được mở rộng cho nhiều lớp
  • Dựa trên các nguyên tắc xác suất (tối đa hóa lợi ích thông tin lẫn nhau với sự trợ giúp của cây quyết định)

4
Tôi không có nghĩa là quá quan trọng, nhưng SVM KHÔNG hiệu quả. Chúng có độ phức tạp hình khối trong hầu hết các trường hợp, đó là lý do tại sao có rất nhiều giai đoạn xảy ra.
indico

2
vâng, các phương thức hội tụ tiêu chuẩn mất O (n ^ 3) ... nhưng tôi nghĩ rằng tôi đã thấy ở đâu đó (có thể từ trang chủ của T. Joachims) rằng nó đã được giảm xuống thành O (n ^ 2)
Khởi nghĩa

4
@indico cho hầu hết các vấn đề thực tế Độ phức tạp đào tạo SVM gần với bậc hai. Khối SMO của Platt đã không còn được sử dụng trong một thời gian. Điều đó vẫn còn quá cao đối với các tập dữ liệu thực sự lớn, nhưng nó không tệ như bạn miêu tả. Tuyến tính SVM có hiệu quả cao, với độ phức tạp tuyến tính.
Marc Claesen

Các ưu điểm khác của SVM: 1) Hoạt động bên trong của chúng có thể được tưởng tượng tốt bởi những người ít quen thuộc với phân tích dữ liệu. [và ở mức độ thấp hơn: 2) Nếu cần có phản hồi tương tác thời gian thực của chuyên gia (không phải khoa học dữ liệu), các SVM tuyến tính có thể là một lựa chọn nhanh hơn - giúp các chuyên gia đào tạo tốt hơn.]
tsttst

2
Rừng ngẫu nhiên thường có các siêu đường kính khác, chẳng hạn như số lượng tính năng tối đa trên mỗi cây và độ sâu tối đa. Cũng đáng lưu ý rằng các SVM rất dễ đưa vào sản xuất trong các môi trường bị hạn chế về tài nguyên - chúng không cần nhiều bộ nhớ để ghi điểm cho mô hình.
David Anderson

8

Khi trả lời câu hỏi này, một điểm khác biệt đáng chú ý là liệu chúng ta đang nói về Máy Vector Hỗ trợ tuyến tính hay phi tuyến tính , nghĩa là Máy Vector Hỗ trợ có nhân.

Các SVM tuyến tính

Các SVM tuyến tính cả về lý thuyết và thực hành các mô hình rất tốt khi dữ liệu của bạn có thể được giải thích bằng các mối quan hệ tuyến tính của các tính năng của bạn. Chúng vượt trội hơn so với các phương pháp cổ điển như hồi quy tuyến tính (còn gọi là bình phương nhỏ nhất) bởi vì chúng mạnh mẽ , theo nghĩa là nhiễu loạn nhỏ trong dữ liệu đầu vào không tạo ra thay đổi đáng kể trong mô hình. Điều này đạt được bằng cách cố gắng tìm dòng (siêu phẳng) tối đa hóa lề giữa các điểm dữ liệu của bạn. Siêu phẳng lề tối đa này đã được chứng minh là đảm bảo khả năng khái quát hóa của mô hình trên các điểm dữ liệu chưa thấy, một tính chất lý thuyết mà các phương pháp học máy khác thiếu.

Các SVM tuyến tính cũng có thể hiểu được như bất kỳ mô hình tuyến tính nào khác, vì mỗi tính năng đầu vào có trọng số ảnh hưởng trực tiếp đến đầu ra mô hình.

Ngoài ra các SVM tuyến tính rất nhanh để đào tạo, hiển thị thời gian đào tạo tuyến tính cho các bộ dữ liệu rất lớn. Điều này đạt được bằng cách sử dụng các kỹ thuật giảm độ dốc ngẫu nhiên, phần lớn theo phương pháp học sâu hiện nay.

Các SVM phi tuyến tính

Các SVM phi tuyến tính vẫn là các mô hình tuyến tính và tự hào về các lợi ích lý thuyết tương tự, nhưng chúng sử dụng thủ thuật gọi là kernel để xây dựng mô hình tuyến tính này trong một không gian mở rộng. Kết quả có thể nhìn thấy là mô hình kết quả có thể đưa ra quyết định phi tuyến tính trên dữ liệu của bạn. Vì bạn có thể cung cấp sự tương đồng mã hóa hạt nhân tùy chỉnh giữa các điểm dữ liệu, bạn có thể sử dụng kiến ​​thức vấn đề để làm cho hạt nhân đó tập trung vào các phần có liên quan của vấn đề của bạn. Tuy nhiên, làm điều này một cách hiệu quả có thể khó khăn, vì vậy nói chung hầu hết mọi người đều sử dụng hạt nhân gaussian plug-and-play.

Các SVM phi tuyến tính có thể hiểu được một phần, vì chúng cho bạn biết dữ liệu đào tạo nào có liên quan đến dự đoán và dữ liệu nào không. Điều này là không thể đối với các phương pháp khác như Rừng ngẫu nhiên hoặc Mạng sâu.

Thật không may, SVM phi tuyến tính là chậm. Thuật toán tiên tiến là Tối ưu hóa tối thiểu tuần tự , cho thấy hiệu năng bậc hai và được triển khai rộng rãi thông qua thư viện LIBSVM trong một số thư viện máy học, bao gồm cả scikit-learn.

Mức độ phổ biến của các phương pháp này

Đúng là các SVM không quá phổ biến như trước đây: điều này có thể được kiểm tra bằng cách googling cho các tài liệu nghiên cứu hoặc triển khai cho các SVM so với các phương pháp Rừng ngẫu nhiên hoặc Deep Learning. Tuy nhiên, chúng rất hữu ích trong một số cài đặt thực tế, đặc biệt trong trường hợp tuyến tính.

Ngoài ra, hãy nhớ rằng do định lý bữa trưa không miễn phí, không có phương pháp học máy nào có thể được chứng minh là vượt trội hơn bất kỳ vấn đề nào khác trong tất cả các vấn đề. Mặc dù một số phương pháp hoạt động tốt hơn nói chung, bạn sẽ luôn tìm thấy các bộ dữ liệu trong đó một phương pháp không phổ biến sẽ đạt được kết quả tốt hơn.

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.