Mạng nơ-ron vs máy vectơ hỗ trợ: thứ hai chắc chắn vượt trội?


52

Nhiều tác giả của bài báo tôi đọc khẳng định các SVM là kỹ thuật vượt trội để đối mặt với vấn đề hồi quy / phân loại của họ, nhận thấy rằng họ không thể nhận được kết quả tương tự thông qua NN. Thường thì sự so sánh nói rằng

Các SVM, thay vì NN,

  • Có một lý thuyết sáng lập mạnh mẽ
  • Đạt tối ưu toàn cầu do lập trình bậc hai
  • Không có vấn đề cho việc chọn một số lượng tham số thích hợp
  • Ít bị quá mức
  • Cần ít bộ nhớ hơn để lưu trữ mô hình dự đoán
  • Mang lại kết quả dễ đọc hơn và giải thích hình học

Có nghiêm túc một suy nghĩ được chấp nhận rộng rãi? Đừng trích dẫn Định lý Bữa trưa Không miễn phí hoặc các tuyên bố tương tự, câu hỏi của tôi là về cách sử dụng thực tế các kỹ thuật đó.

Mặt khác, loại vấn đề trừu tượng nào bạn chắc chắn sẽ phải đối mặt với NN?


4
Tôi nghĩ rằng câu hỏi có thể hơi rộng. Nhưng trong thực tế, các NN dường như có thể điều chỉnh nhiều hơn với sự lựa chọn cấu trúc NN, trong khi các SVM có ít tham số hơn. Có hai câu hỏi, nếu một NN được thiết lập tối ưu để giải quyết vấn đề thì giá sẽ như thế nào so với SVM? Và trong tay của trình phân tích trung bình, SVM so sánh với NN như thế nào?
Patrick Caldon

2
@PatrickCaldon Tôi hiểu quan điểm của bạn, nhưng nhiều thông số hơn để giải quyết không phải lúc nào cũng có nghĩa là công cụ tốt hơn, nếu bạn không biết cách định cấu hình chúng theo cách phù hợp. Ngay cả khi có khả năng, một nghiên cứu dài có thể cần thiết; hoặc, bạn có thể không cần điều chỉnh quá rộng cho mục đích tán thưởng của mình
stackovergio

1
đó là quan điểm của tôi Câu hỏi nào làm thế nào để công cụ làm việc trong hoàn cảnh lý tưởng về các vấn đề cụ thể? hoặc làm thế nào để công cụ làm việc cho hầu hết mọi người hầu hết thời gian? Tôi nghĩ thành phần lớn nhất ở đây là người btw. Bởi vì điều này tôi nghĩ rằng các yếu tố liên quan thường là: Mỗi công cụ học tập khó đến mức nào? Có những chuyên gia xung quanh những người biết sử dụng nó? v.v ... Điều đó có thể giải thích rất nhiều "Tôi có hiệu suất tốt từ X"
Patrick Caldon

1
Từ những gì tôi biết, ANN feedforward đa lớp là các xấp xỉ phổ quát ít nhiều không phân biệt chức năng kích hoạt. Tôi không biết về một kết quả tương tự cho SVM, điều này phụ thuộc vào kiến ​​thức của tôi nhiều hơn vào chức năng kernel được sử dụng.
Momo

2
Trong sử dụng thực tế, tôi thấy NN thực tế hơn một chút do thời gian đào tạo. Các SVM không tuyến tính chỉ không thể xử lý N lớn. Cả hai thuật toán có thể phù hợp và cả hai đều cần sự chính quy hóa mạnh mẽ.
Shea Parkes

Câu trả lời:


43

Đó là một vấn đề của sự đánh đổi. Các SVM đang ngay bây giờ, NN đã từng . Bạn sẽ tìm thấy một số lượng lớn các bài báo tuyên bố Rừng ngẫu nhiên, Mô hình đồ họa xác suất hoặc phương pháp Bayesian không tham số . Ai đó nên xuất bản một mô hình dự báo trong Biên niên sử nghiên cứu có thể cải tiến về những mô hình nào sẽ được coi là hông.

Phải nói rằng đối với nhiều vấn đề được giám sát khó khăn nổi tiếng, các mô hình đơn có hiệu suất tốt nhất là một số loại NN, một số loại SVM hoặc phương pháp giảm độ dốc ngẫu nhiên cụ thể được thực hiện bằng phương pháp xử lý tín hiệu.


Ưu điểm của NN:

  • Họ cực kỳ linh hoạt trong các loại dữ liệu họ có thể hỗ trợ. Các NN làm rất tốt việc học các tính năng quan trọng từ cơ bản bất kỳ cấu trúc dữ liệu nào, mà không phải lấy các tính năng thủ công.
  • NN vẫn được hưởng lợi từ kỹ thuật tính năng, ví dụ: bạn nên có một tính năng khu vực nếu bạn có chiều dài và chiều rộng. Mô hình sẽ hoạt động tốt hơn cho cùng một nỗ lực tính toán.

  • Hầu hết các máy học có giám sát đòi hỏi bạn phải có cấu trúc dữ liệu của mình trong các quan sát theo ma trận các tính năng, với các nhãn là một vectơ quan sát chiều dài. Hạn chế này là không cần thiết với NN. Có một công việc tuyệt vời với SVM có cấu trúc, nhưng không chắc nó sẽ linh hoạt như NN.


Ưu điểm của SVM:

  • Ít siêu âm hơn. Nói chung, các SVM yêu cầu tìm kiếm lưới ít hơn để có được một mô hình chính xác hợp lý. SVM với kernel RBF thường hoạt động khá tốt.

  • Đảm bảo tối ưu toàn cầu.


Nhược điểm của NN và SVM:

  • Đối với hầu hết các mục đích, cả hai đều là hộp đen. Có một số nghiên cứu về việc diễn giải các SVM, nhưng tôi nghi ngờ nó sẽ trực quan như GLM. Đây là một vấn đề nghiêm trọng trong một số lĩnh vực vấn đề.
  • Nếu bạn sẽ chấp nhận một hộp đen thì bạn thường có thể đạt được độ chính xác cao hơn một chút bằng cách đóng gói / xếp chồng / tăng nhiều mô hình với sự đánh đổi khác nhau.

    • Các khu rừng ngẫu nhiên rất hấp dẫn bởi vì chúng có thể đưa ra các dự đoán ngoài túi (dự đoán bỏ qua một lần) mà không cần nỗ lực thêm, chúng rất dễ hiểu, chúng có sự đánh đổi sai lệch thiên vị tốt (tuyệt vời cho các mô hình đóng bao) và chúng là tương đối mạnh mẽ để lựa chọn thiên vị. Ngớ ngẩn đơn giản để viết một thực hiện song song.

    • Các mô hình đồ họa xác suất rất hấp dẫn bởi vì chúng có thể kết hợp kiến ​​thức cụ thể theo miền trực tiếp vào mô hình và có thể hiểu được về vấn đề này.

    • Các phương pháp Bayes không đối xứng (hoặc thực sự cực kỳ tham số) rất hấp dẫn bởi vì chúng tạo ra các khoảng tin cậy trực tiếp. Họ thực hiện rất tốt trên các cỡ mẫu nhỏ và rất tốt trên các cỡ mẫu lớn. Hoàn toàn đơn giản để viết một triển khai đại số tuyến tính.


41
Với sự gia tăng gần đây của việc học sâu, các NN có thể được coi là "nhiều hơn" so với các SVM, tôi nói.
bayerj

30

Câu trả lời cho câu hỏi của bạn là theo kinh nghiệm của tôi "không", các SVM không thực sự vượt trội và hoạt động tốt nhất phụ thuộc vào bản chất của bộ dữ liệu trong tay và vào kỹ năng tương đối của người vận hành với từng bộ công cụ. Nói chung, các SVM đều tốt vì thuật toán đào tạo hiệu quả và nó có một tham số chính quy, điều này buộc bạn phải suy nghĩ về việc chính quy hóa và quá phù hợp. Tuy nhiên, có những bộ dữ liệu trong đó MLP cho hiệu năng tốt hơn nhiều so với SVM (vì chúng được phép quyết định biểu diễn bên trong của chính chúng, thay vì được chỉ định trước bởi hàm kernel). Việc triển khai tốt MLP (ví dụ NETLAB) và chính quy hóa hoặc dừng sớm hoặc lựa chọn kiến ​​trúc (hoặc tốt hơn cả ba) thường có thể cho kết quả rất tốt và có thể tái tạo (ít nhất là về hiệu suất).

Lựa chọn mô hình là vấn đề chính với các SVM, việc chọn kernel và tối ưu hóa kernel và các tham số chính quy thường có thể dẫn đến sự phù hợp quá mức nếu bạn tối ưu hóa quá mức tiêu chí lựa chọn mô hình. Mặc dù lý thuyết ghim chặt SVM là một sự thoải mái, hầu hết nó chỉ áp dụng cho một kernel cố định, vì vậy ngay khi bạn cố gắng tối ưu hóa các tham số kernel, nó không còn áp dụng nữa (ví dụ như vấn đề tối ưu hóa được giải quyết trong việc điều chỉnh kernel nói chung là không lồi và cũng có thể có cực tiểu cục bộ).


7
Tôi hoàn toàn đồng ý. Tôi hiện đang đào tạo các SVM và ANN về dữ liệu giao diện máy tính và có một số bộ dữ liệu trong đó các SVM tốt hơn và một số bộ dữ liệu trong đó ANN tốt hơn. Điều thú vị là: khi tôi tính trung bình hiệu suất trên tất cả các bộ dữ liệu tôi đang sử dụng, các SVM và ANN đạt được hiệu suất chính xác như nhau. Tất nhiên, đây không phải là một bằng chứng. Nó chỉ là một giai thoại. :)
alfa

27

Tôi sẽ chỉ cố gắng giải thích ý kiến ​​của tôi mà dường như được chia sẻ bởi hầu hết bạn bè của tôi. Tôi có những lo ngại sau đây về NN hoàn toàn không phải về SVM:

  1. Trong một NN cổ điển, số lượng tham số rất cao. Giả sử bạn có các vectơ có độ dài 100 mà bạn muốn phân loại thành hai lớp. Một lớp ẩn có cùng kích thước với lớp đầu vào sẽ dẫn bạn đến hơn 100000 tham số miễn phí. Chỉ cần tưởng tượng bạn có thể tập luyện quá sức đến mức nào (dễ dàng giảm đến mức tối thiểu cục bộ trong một không gian như vậy) và bạn cần bao nhiêu điểm đào tạo để ngăn chặn điều đó (và bạn sẽ cần bao nhiêu thời gian để đào tạo sau đó).
  2. Thông thường bạn phải là một chuyên gia thực sự để chọn cấu trúc liên kết trong nháy mắt. Điều đó có nghĩa là nếu bạn muốn có kết quả tốt, bạn nên thực hiện nhiều thử nghiệm. Đó là lý do tại sao sử dụng SVM dễ dàng hơn và nói rằng, bạn không thể nhận được kết quả tương tự với NN.
  3. Thông thường kết quả NN không thể lặp lại. Ngay cả khi bạn chạy đào tạo NN hai lần, bạn có thể sẽ nhận được kết quả khác nhau do tính ngẫu nhiên của thuật toán học tập.
  4. Thông thường bạn không có giải thích về kết quả nào cả. Đó là một mối quan tâm nhỏ, nhưng dù sao đi nữa.

Điều đó không có nghĩa là bạn không nên sử dụng NN, bạn chỉ nên sử dụng nó một cách cẩn thận. Ví dụ, NN Convolutional có thể cực kỳ tốt để xử lý hình ảnh, Deep NN khác cũng tỏ ra tốt cho các vấn đề khác.

Hy vọng nó sẽ giúp.


2
Để làm cho kết quả ANN có thể lặp lại, gieo hàm ngẫu nhiên.
Franck Dernoncourt

@Franck Đó không phải là khả năng tái tạo thực sự.
sự tỉnh táo

17

Tôi đang sử dụng mạng lưới thần kinh cho hầu hết các vấn đề. Vấn đề là trong hầu hết các trường hợp, đó là về trải nghiệm của người dùng hơn là về mô hình. Dưới đây là một số lý do tại sao tôi thích NN.

  1. Họ rất linh hoạt. Tôi có thể ném bất cứ thứ gì tôi muốn vào chúng: mất bản lề, bình phương, entropy chéo, bạn đặt tên cho nó. Miễn là nó khác biệt, tôi thậm chí có thể thiết kế một khoản lỗ phù hợp với nhu cầu của mình một cách chính xác.
  2. Chúng có thể được điều trị theo xác suất: mạng lưới thần kinh Bayes, Bay đa dạng, MLE / MAP, mọi thứ đều ở đó. (Nhưng trong một số trường hợp khó khăn hơn.)
  3. Họ rất nhanh. Hầu hết các MLP sẽ là hai phép nhân ma trận và một thành phần được áp dụng phi tuyến tính ở giữa. Đánh bại điều đó với một SVM.

Tôi sẽ đi qua các điểm khác của bạn từng bước.

Có một lý thuyết sáng lập mạnh mẽ

Tôi muốn nói, các NN cũng mạnh như nhau trong trường hợp đó: vì bạn huấn luyện chúng theo khuôn khổ xác suất. Điều đó làm cho việc sử dụng các linh mục và một điều trị Bayes (ví dụ với các kỹ thuật đa dạng hoặc gần đúng) có thể.

Đạt tối ưu toàn cầu do lập trình bậc hai

Đối với một bộ siêu đường kính. Tuy nhiên, việc tìm kiếm hps tốt không phải là lồi và bạn sẽ không biết liệu bạn có tìm thấy tối ưu toàn cầu hay không.

Không có vấn đề cho việc chọn một số lượng tham số thích hợp

Với SVM, bạn cũng phải chọn siêu tham số.

Cần ít bộ nhớ hơn để lưu trữ mô hình dự đoán

Bạn cần lưu trữ các vectơ hỗ trợ. Các SVM nói chung sẽ không rẻ hơn để lưu trữ MLP, nó phụ thuộc vào trường hợp.

Mang lại kết quả dễ đọc hơn và giải thích hình học

Lớp trên cùng của MLP là một hồi quy logistic trong trường hợp phân loại. Do đó, có một giải thích hình học (tách siêu phẳng) và một giải thích xác suất là tốt.


Tại sao tôi cần lưu trữ các vectơ hỗ trợ? Không đủ để lưu trữ siêu phẳng / maring của SVM?
Julian

Đó là bởi vì siêu phẳng được biểu diễn thông qua các vectơ hỗ trợ. Để tính khoảng cách của một điểm mới từ nó, bạn sẽ lặp lại những điểm đó.
bayerj

0

Trong một số cách, hai phạm trù rộng lớn của các kỹ thuật máy học có liên quan. Mặc dù không hoàn hảo, hai bài báo tôi thấy hữu ích trong việc thể hiện sự tương đồng trong các kỹ thuật này dưới đây

Ronan Collobert và Samy Bengio. 2004. Liên kết giữa các tri giác, MLP và SVM. Trong Kỷ yếu của hội nghị quốc tế lần thứ hai mươi mốt về Học máy (ICML '04). ACM, New York, NY, Hoa Kỳ, 23-. DOI: https://doi.org/10.1145/1015330.1015415

Andras, Peter. (2002). Sự tương đương của máy vectơ hỗ trợ và mạng nơ ron chính quy. Thư xử lý thần kinh. 15. 97-104. 10.1023 / A: 1015292818897.

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.