Lợi thế của mạng nơ ron nhân tạo so với máy Vector hỗ trợ là gì? [đóng cửa]


381

ANN (Mạng nơ ron nhân tạo) và SVM (Máy vectơ hỗ trợ) là hai chiến lược phổ biến để học và phân loại máy có giám sát. Không thường rõ ràng phương pháp nào tốt hơn cho một dự án cụ thể và tôi chắc chắn câu trả lời luôn là "nó phụ thuộc". Thông thường, sự kết hợp của cả hai cùng với phân loại Bayes được sử dụng.

Những câu hỏi trên Stackoverflow đã được hỏi về ANN vs SVM:

Phân loại ANN và SVM

sự khác biệt giữa ANN, SVM và KNN trong câu hỏi phân loại của tôi

Hỗ trợ máy Vector hay Mạng nơ ron nhân tạo để xử lý văn bản?

Trong câu hỏi này, tôi muốn biết cụ thể những khía cạnh nào của ANN (cụ thể là Perceptionron đa lớp) có thể khiến nó mong muốn sử dụng trên một SVM? Lý do tôi hỏi là vì nó dễ trả lời cho câu hỏi ngược lại : Máy Vector hỗ trợ thường vượt trội hơn ANN vì chúng tránh được hai điểm yếu lớn của ANN:

(1) ANN thường hội tụ về cực tiểu địa phương hơn là cực tiểu toàn cầu, nghĩa là đôi khi chúng thực sự "thiếu bức tranh lớn" (hoặc thiếu rừng cho cây)

(2) ANN thường quá phù hợp nếu việc đào tạo diễn ra quá lâu, có nghĩa là đối với bất kỳ mẫu nào, ANN có thể bắt đầu coi nhiễu là một phần của mẫu.

Các SVM không gặp phải một trong hai vấn đề này. Tuy nhiên, không dễ dàng thấy rằng các SVM có nghĩa là một sự thay thế hoàn toàn cho ANN. Vậy ANN có những lợi thế cụ thể nào đối với một SVM có thể khiến nó áp dụng cho các tình huống nhất định? Tôi đã liệt kê các lợi thế cụ thể của một SVM so với ANN, bây giờ tôi muốn xem danh sách các lợi thế của ANN (nếu có).


61
Thật không may, điều này có thể sẽ bị đóng cửa hoặc di chuyển sớm, nhưng tôi hoàn toàn thích câu hỏi. Tôi không muốn gì tốt hơn là nhìn thấy một loạt các câu trả lời chu đáo cho câu hỏi này.
duffymo

10
Tôi tưởng tượng hầu hết các câu trả lời cho câu hỏi này sẽ là suy đoán hoặc dựa trên bằng chứng, bởi vì có rất ít đảm bảo về mặt lý thuyết về sức mạnh của những cỗ máy này. Chẳng hạn (nếu tôi nhớ lại một cách chính xác), không biết liệu mạng nơ ron chuyển tiếp nguồn cấp n có mạnh hơn mạng 2 lớp hay không. Vậy làm thế nào chúng ta có thể nói rằng cái này tốt hơn cái kia về nguyên tắc nếu chúng ta thậm chí không hiểu mối quan hệ giữa các biến thể nhỏ của cùng một mô hình?
JeremyKun

13
Nó bị đóng cửa vì không mang tính xây dựng ... Lol!
erogol

65
Tôi thích rằng StackOverflow cố gắng giữ chất lượng câu hỏi và câu trả lời cao. Tôi ghét rằng StackOverflow thực thi điều này bằng rìu thay vì dao mổ. Có một sự khác biệt giữa việc hỏi "làm thế nào để tôi làm HTML Stuffz?" và một câu hỏi dành riêng cho tên miền sẽ khó tìm được câu trả lời cho nơi khác. Có một lý do điều này có 140 upvote - nhưng nó được coi là "không mang tính xây dựng." Những câu hỏi như thế này là hình ảnh thu nhỏ của sự xây dựng. Chắc chắn là nhiều hơn rất nhiều so với nhiều câu hỏi mà tôi thấy mỗi ngày rơi vào định dạng Hỏi & Đáp một cách gọn gàng trong khi vẫn vô dụng với hầu hết mọi người trừ người hỏi.
Chase Ries

20
Điều này rõ ràng là mang tính xây dựng. Tôi không thể hiểu tại sao nó sẽ bị đóng cửa. Đó là yêu cầu các tình huống cụ thể trong đó sử dụng một thuật toán có lợi thế hơn so với sử dụng thuật toán thay thế. Đó không phải là một điều hợp lý để hỏi?
Rab

Câu trả lời:


137

Đánh giá từ các ví dụ bạn cung cấp, tôi giả sử rằng bởi ANN, bạn có nghĩa là các mạng chuyển tiếp thức ăn đa lớp (gọi tắt là lưới FF), chẳng hạn như các tri giác đa lớp, vì các mạng này đang cạnh tranh trực tiếp với các SVM.

Một lợi ích cụ thể mà các mô hình này có trên các SVM là kích thước của chúng là cố định: chúng là các mô hình tham số , trong khi các SVM là không tham số. Đó là, trong ANN, bạn có một loạt các lớp ẩn với kích thước h 1 đến h ntùy thuộc vào số lượng tính năng, cộng với các tham số sai lệch và những đặc điểm tạo nên mô hình của bạn. Ngược lại, một SVM (ít nhất là một hạt nhân) bao gồm một tập các vectơ hỗ trợ, được chọn từ tập huấn luyện, với trọng số cho mỗi. Trong trường hợp xấu nhất, số lượng vectơ hỗ trợ chính xác là số lượng mẫu đào tạo (mặc dù điều đó chủ yếu xảy ra với các tập huấn luyện nhỏ hoặc trong các trường hợp suy biến) và nói chung kích thước mô hình của nó quy mô tuyến tính. Trong xử lý ngôn ngữ tự nhiên, các trình phân loại SVM với hàng chục nghìn vectơ hỗ trợ, mỗi vectơ có hàng trăm nghìn tính năng, không phải là chưa từng thấy.

Ngoài ra, việc đào tạo trực tuyến các lưới FF rất đơn giản so với lắp SVM trực tuyến và việc dự đoán có thể nhanh hơn một chút.

EDIT : tất cả các trường hợp trên liên quan đến trường hợp chung của các SVM được nhân. Tuyến tính SVM là một trường hợp đặc biệt ở chỗ chúng tham số và cho phép học trực tuyến với các thuật toán đơn giản như độ dốc dốc ngẫu nhiên.


12
Một lý do khác có thể được tìm thấy trong bài viết này: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Nói tóm lại, tác giả nói rằng "kiến trúc sâu" có thể thể hiện hành vi / chức năng "thông minh", v.v ... hiệu quả hơn "kiến trúc nông" như SVM.
alfa

1
Bên cạnh đó, học sâu mất đi những "lợi thế" được đưa ra ở đây đối với MLP (kích thước cố định, đào tạo đơn giản hơn) phần nào. Tôi không chắc chắn rằng những lợi thế này là giá trị nó, mặc dù.
Muhammad Alkarouri

6
@MuhammadAlkarouri: học sâu là một tập hợp các kỹ thuật khá rộng, nhưng những kỹ thuật mà tôi quen thuộc vẫn giữ được lợi ích của các mô hình là tham số (kích thước cố định).
Fred Foo

Hai nhận xét: điểm đào tạo trực tuyến là đúng, nhưng có một biến thể của các trình phân loại giống như SVM được thiết kế đặc biệt cho việc học trực tuyến, được gọi là MIRA (một loại phân loại thụ động-tích cực) mà các cập nhật là tầm thường. Thứ hai, đáng để chỉ ra rằng nhiều mạng lưới thần kinh có thể được tạo thành dưới dạng SVM thông qua thủ thuật kernel.
Ben Allison

1
@FredFoo cũng ANN có thể bị kẹt trong cực tiểu cục bộ khi các máy vectơ hỗ trợ không gặp phải vấn đề này.
khách du lịch

62

Một lợi thế rõ ràng của mạng nơ ron nhân tạo so với máy vectơ hỗ trợ là mạng nơ ron nhân tạo có thể có bất kỳ số lượng đầu ra nào, trong khi máy vectơ hỗ trợ chỉ có một. Cách trực tiếp nhất để tạo một bộ phân loại n-ary với các máy vectơ hỗ trợ là tạo n máy vectơ hỗ trợ và huấn luyện từng cái một. Mặt khác, một bộ phân loại n-ary với mạng lưới thần kinh có thể được đào tạo trong một lần. Ngoài ra, mạng nơ-ron sẽ có ý nghĩa hơn vì nó là một tổng thể, trong khi các máy vectơ hỗ trợ là các hệ cô lập. Điều này đặc biệt hữu ích nếu các đầu ra có liên quan đến nhau.

Ví dụ: nếu mục tiêu là phân loại các chữ số viết tay, mười máy vectơ hỗ trợ sẽ làm. Mỗi máy vectơ hỗ trợ sẽ nhận ra chính xác một chữ số và không thể nhận ra tất cả các chữ số khác. Vì mỗi chữ số viết tay không thể có nghĩa là chứa nhiều thông tin hơn chỉ là lớp của nó, nên sẽ không có ý nghĩa gì khi cố gắng giải quyết vấn đề này bằng một mạng lưới thần kinh nhân tạo.

Tuy nhiên, giả sử mục tiêu là mô hình cân bằng nội tiết tố của một người (đối với một số hormone) là chức năng của các yếu tố sinh lý dễ đo như thời gian kể từ bữa ăn trước, nhịp tim, v.v ... Vì các yếu tố này đều liên quan đến nhau, thần kinh nhân tạo hồi quy mạng có ý nghĩa hơn so với hồi quy máy vector hỗ trợ.


18
Trên thực tế, tồn tại các công thức đa giác thực sự của máy vectơ hỗ trợ (xem bài viết của Crammer & Singer). Tôi tin rằng LibSVM chứa một triển khai thực hiện những điều này.
Fred Foo

3
Tuy nhiên, đào tạo một SVM đa kính không quá dễ dàng và hiệu suất trong OVA tốt hơn so với phương pháp AVA.
crodriguezo

3
"Thật vô nghĩa khi cố gắng giải quyết vấn đề này bằng mạng nơ ron nhân tạo" Bạn có thể sử dụng mạng thần kinh để giải quyết việc phân loại các chữ số viết tay. Tôi đã làm điều này như một bài tập hw cho một lớp. Lớp đầu ra chứa xác suất của tất cả các chữ số. Lớp có xác suất cao nhất được sử dụng làm giả thuyết. Tôi có tỷ lệ chính xác 94%.
dùng3266824

Bạn có nghĩa là tạo n số phân loại 1 so với N-1 SVM so với sử dụng NN để tạo n đầu ra. SVM dường như chậm hơn theo cách này?
mskw

@ user3266824 Vâng vâng, câu nói đó không có tuổi.
runDOSrun

46

Một điều cần lưu ý là hai thực sự rất liên quan. Các SVM tuyến tính tương đương với các NN đơn lớp (nghĩa là các tri giác) và các NN nhiều lớp có thể được biểu thị theo các SVM. Xem ở đây để biết một số chi tiết.


18

Nếu bạn muốn sử dụng kernel SVM, bạn phải đoán kernel. Tuy nhiên, ANN là các xấp xỉ phổ quát với chỉ đoán được thực hiện là chiều rộng (độ chính xác gần đúng) và chiều cao (hiệu quả gần đúng). Nếu bạn thiết kế vấn đề tối ưu hóa một cách chính xác, bạn không phù hợp quá mức (vui lòng xem thư mục để tìm sự phù hợp quá mức). Nó cũng phụ thuộc vào các ví dụ đào tạo nếu họ quét chính xác và thống nhất không gian tìm kiếm. Khám phá chiều rộng và chiều sâu là chủ đề của lập trình số nguyên.

Giả sử bạn có các hàm giới hạn f (.) Và các xấp xỉ phổ quát giới hạn trên I = [0,1] với phạm vi lại I = [0,1], ví dụ như được tham số hóa bởi một chuỗi thực sự của hỗ trợ nhỏ gọn U (., A) với thuộc tính tồn tại một chuỗi các chuỗi với

lim sup { |f(x) - U(x,a(k) ) | : x } =0

và bạn rút ra các ví dụ và bài kiểm tra (x,y)với phân phối D trên IxI.

Đối với một hỗ trợ theo quy định, những gì bạn làm là tìm ra thứ tốt nhất sao cho

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Hãy để điều này a=aalà một biến ngẫu nhiên!, Sự phù hợp quá mức là sau đó

sử dụng trung bình D and D^{N} of ( y - U(x,aa) )^{2}

Hãy để tôi giải thích tại sao, nếu bạn chọn aasao cho lỗi được giảm thiểu, thì đối với một tập hợp giá trị hiếm hoi bạn có phù hợp hoàn hảo. Tuy nhiên, vì chúng hiếm khi trung bình không bao giờ bằng 0. Bạn muốn giảm thiểu lần thứ hai mặc dù bạn có một xấp xỉ rời rạc với D. Và hãy nhớ rằng thời lượng hỗ trợ là miễn phí.


14

Một câu trả lời tôi còn thiếu ở đây: Perceptionron nhiều lớp có thể tìm thấy mối quan hệ giữa các tính năng. Ví dụ, nó là cần thiết trong tầm nhìn máy tính khi một hình ảnh thô được cung cấp cho thuật toán học tập và bây giờ các tính năng tinh vi được tính toán. Về cơ bản các cấp độ trung gian có thể tính toán các tính năng mới chưa biết.


12

Chúng ta cũng nên xem xét rằng hệ thống SVM có thể được áp dụng trực tiếp vào các không gian phi số liệu, chẳng hạn như tập hợp các biểu đồ hoặc chuỗi được gắn nhãn. Trong thực tế, chức năng kernel bên trong có thể được khái quát đúng cho hầu hết mọi loại đầu vào, miễn là yêu cầu về độ chính xác dương của kernel được thỏa mãn. Mặt khác, để có thể sử dụng ANN trên một tập hợp các biểu đồ được dán nhãn, các quy trình nhúng rõ ràng phải được xem xét.


6
Trong tâm trí của tôi, việc xây dựng một hạt nhân hợp lý và xây dựng một hệ số nhúng hợp lý cũng có vấn đề như nhau. Vì vậy, đây chỉ là một nhận xét rằng có thể có nhiều hạt nhân khác nhau hơn số liệu, nhưng tôi không thực sự mua nó. ohli.de/doad/ con / Deza2009.pdf
JeremyKun
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.