ข้อดีของเครือข่ายประสาทเทียมเหนือเครื่องเวกเตอร์สนับสนุนคืออะไร [ปิด]


381

ANN (Artificial Neural Networks) และ SVM (Support Vector Machines) เป็นสองกลยุทธ์ยอดนิยมสำหรับการเรียนรู้และการจัดหมวดหมู่ของเครื่อง มักไม่ค่อยชัดเจนว่าวิธีใดดีกว่าสำหรับโครงการใดโครงการหนึ่งและฉันมั่นใจว่าคำตอบนั้นมักจะ "ขึ้นอยู่กับ" บ่อยครั้งที่มีการใช้ทั้งสองอย่างร่วมกันกับการจำแนกแบบเบย์

คำถามเหล่านี้ใน Stackoverflow ถูกถามเกี่ยวกับ ANN vs SVM:

การจำแนกประเภท ANN และ SVM

ความแตกต่างระหว่าง ANN, SVM และ KNN ในคำถามการจัดหมวดหมู่ของฉันคืออะไร

รองรับ Vector Machine หรือ Neural Network สำหรับการประมวลผลข้อความหรือไม่?

ในคำถามนี้ฉันต้องการทราบอย่างชัดเจนว่า ANN (โดยเฉพาะ Multilayer Perceptron) ด้านใดที่อาจทำให้เป็นที่พึงปรารถนาที่จะใช้กับ SVM เหตุผลที่ฉันถามก็เพราะว่ามันง่ายที่จะตอบคำถามตรงข้าม : เครื่องเวกเตอร์สนับสนุนมักจะดีกว่า ANNs เพราะพวกเขาหลีกเลี่ยงจุดอ่อนที่สำคัญสองประการของ ANNs:

(1) ANN มักจะมาบรรจบกันที่minima ท้องถิ่นมากกว่าminimaทั่วโลกซึ่งหมายความว่าพวกเขากำลัง "ขาดภาพใหญ่" บางครั้ง (หรือขาดป่าเพื่อต้นไม้)

(2) ANNs มักจะเกินความเหมาะสมหากการฝึกอบรมใช้เวลานานเกินไปซึ่งหมายความว่าสำหรับรูปแบบที่กำหนดใด ๆ ANN อาจเริ่มพิจารณาเสียงดังเป็นส่วนหนึ่งของแบบแผน

SVM ไม่ประสบปัญหาทั้งสองอย่างใดอย่างหนึ่ง อย่างไรก็ตามไม่มีความชัดเจนว่า SVM นั้นมีความหมายที่จะแทนที่ทั้งหมดสำหรับ ANN ดังนั้นANN มีข้อได้เปรียบเฉพาะอะไรบ้างที่มีมากกว่า SVM ที่อาจทำให้สามารถใช้งานได้ในบางสถานการณ์ ฉันแสดงรายการข้อดีเฉพาะของ SVM ผ่าน ANN ตอนนี้ฉันต้องการดูรายการข้อดีของ ANN (ถ้ามี)


61
น่าเสียดายที่อาจมีการปิดหรือย้ายในไม่ช้า แต่ฉันชอบคำถามนี้อย่างแน่นอน ฉันไม่ต้องการอะไรที่ดีไปกว่าการเห็นคำตอบที่หลากหลาย
duffymo

10
ฉันจินตนาการว่าคำตอบสำหรับคำถามนี้ส่วนใหญ่จะเป็นการเก็งกำไรหรือยึดตามหลักฐานเพราะมีการรับประกันทางทฤษฎีเพียงเล็กน้อยเกี่ยวกับพลังของเครื่องเหล่านี้ ตัวอย่างเช่น (ถ้าฉันจำได้อย่างถูกต้อง) มันไม่เป็นที่รู้จักว่าเครือข่ายนิวรัลฟีดไปข้างหน้ามีประสิทธิภาพมากกว่าเครือข่าย 2 ชั้น ดังนั้นเราจะพูดได้อย่างไรว่าหนึ่งดีกว่าอีกหลักการถ้าเราไม่เข้าใจความสัมพันธ์ระหว่างการเปลี่ยนแปลงเล็กน้อยของโมเดลเดียวกัน
JeremyKun

13
มันปิดไม่สร้างสรรค์มาก ... ฮ่า ๆ !
erogol

65
ฉันชอบที่ StackOverflow พยายามรักษาคุณภาพของคำถามและคำตอบไว้สูง ฉันเกลียดที่ StackOverflow บังคับให้ใช้ขวานแทนมีดผ่าตัด มีความแตกต่างระหว่างการถามว่า "ฉันจะทำ HTML stuffz ได้อย่างไร" และคำถามเฉพาะโดเมนที่หาคำตอบจากที่อื่นได้ยาก มีเหตุผลที่มี 140 upvotes - แต่ก็ถือว่า "ไม่สร้างสรรค์" คำถามเช่นนี้เป็นสิ่งที่ดีเลิศของการสร้างสรรค์ แน่นอนมากกว่าหลาย ๆ ครั้งที่ฉันเห็นทุกวันที่ตกอยู่ในรูปแบบของคำถามและคำตอบในขณะที่ยังไร้ประโยชน์กับทุกคน แต่ผู้ถาม
Chase Ries

20
เห็นได้ชัดว่ามีความสร้างสรรค์ ฉันไม่เข้าใจว่าทำไมมันจึงถูกปิด มันกำลังถามถึงสถานการณ์เฉพาะที่การใช้อัลกอริทึมหนึ่งมีข้อดีมากกว่าการใช้อัลกอริทึมอื่น นั่นไม่ใช่สิ่งที่สมเหตุสมผลที่จะถามหรือ
Rab

คำตอบ:


137

เมื่อพิจารณาจากตัวอย่างที่คุณให้ไว้ฉันสมมติว่าโดย ANN คุณหมายถึงเครือข่ายฟีดไปข้างหน้าหลายระดับ (ตาข่าย FF สั้น ๆ ) เช่นการรับรู้หลายชั้นเพราะสิ่งเหล่านั้นเป็นการแข่งขันโดยตรงกับ SVM

ข้อดีอย่างหนึ่งของแบบจำลองเหล่านี้ที่มีมากกว่า SVM คือขนาดคงที่: เป็นแบบจำลองพารามิเตอร์ขณะที่ SVM ไม่ใช่แบบพารามิเตอร์ นั่นคือใน ANN คุณจะมีเลเยอร์ที่ซ่อนอยู่จำนวนหนึ่งซึ่งมีขนาดh 1ถึงh nขึ้นอยู่กับจำนวนของคุณสมบัติรวมถึงพารามิเตอร์อคติและสิ่งเหล่านั้นประกอบเป็นแบบจำลองของคุณ ในทางตรงกันข้าม SVM (อย่างน้อยหนึ่งเคอร์เนล) ประกอบด้วยชุดเวกเตอร์สนับสนุนที่เลือกจากชุดการฝึกอบรมโดยมีน้ำหนักสำหรับแต่ละชุด ในกรณีที่เลวร้ายที่สุดจำนวนของเวกเตอร์การสนับสนุนคือจำนวนตัวอย่างการฝึกอบรมทั้งหมด (แม้ว่าส่วนใหญ่จะเกิดขึ้นกับชุดการฝึกอบรมขนาดเล็กหรือในกรณีที่เลวร้าย) และโดยทั่วไปแล้วขนาดของแบบจำลองจะมีขนาดเป็นเส้นตรง ในการประมวลผลภาษาธรรมชาติตัวแยกประเภท SVM ที่มีเวกเตอร์สนับสนุนนับหมื่นแต่ละตัวมีคุณสมบัตินับแสนไม่ต่างกัน

นอกจากนี้การฝึกอบรมออนไลน์ของ FF อวนนั้นง่ายมากเมื่อเทียบกับการติดตั้ง SVM ออนไลน์และการคาดการณ์สามารถทำได้เร็วขึ้นเล็กน้อย

แก้ไข : ทั้งหมดข้างต้นเกี่ยวข้องกับกรณีทั่วไปของเคอร์เนล SVMs Linear SVM เป็นกรณีพิเศษที่มีพารามิเตอร์และอนุญาตให้เรียนรู้ออนไลน์ด้วยอัลกอริทึมอย่างง่ายเช่นการไล่ระดับสีแบบสุ่ม


12
อีกเหตุผลหนึ่งที่สามารถพบได้ในบทความนี้: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf กล่าวโดยย่อผู้เขียนกล่าวว่า "สถาปัตยกรรมชั้นลึก" สามารถแสดงพฤติกรรม / ฟังก์ชั่น "อัจฉริยะ" และอื่น ๆ ได้อย่างมีประสิทธิภาพมากกว่า "สถาปัตยกรรมตื้น" เช่น SVM
alfa

1
นอกเหนือจากการเรียนรู้ลึกสูญเสีย "ข้อดี" ที่ได้รับที่นี่สำหรับ MLPs (ขนาดคงที่การฝึกอบรมที่ง่ายขึ้น) บ้าง ฉันไม่แน่ใจว่าข้อดีเหล่านี้มีค่าหรือไม่
มูฮัมหมัด Alkarouri

6
@ MuhammadAlkarouri: การเรียนรู้ที่ลึกเป็นเทคนิคที่ค่อนข้างกว้าง แต่สิ่งที่ฉันคุ้นเคยกับการรักษาผลประโยชน์ของแบบจำลองที่เป็นตัวแปร (ขนาดคงที่)
Fred Foo

สองความคิดเห็น: จุดฝึกอบรมออนไลน์นั้นเป็นความจริง แต่มีตัวแยกประเภทของตัวแยกประเภทคล้าย SVM ที่ออกแบบมาโดยเฉพาะสำหรับการเรียนรู้ออนไลน์ที่เรียกว่า MIRA (ตัวแยกประเภทแบบพาสซีฟที่ก้าวร้าว) ซึ่งมีการอัปเดตเล็กน้อย ประการที่สองมันคุ้มค่าที่จะชี้ให้เห็นว่าอวนประสาทส่วนใหญ่สามารถกำหนดเป็น SVM ได้โดยใช้เคล็ดลับเคอร์เนล
เบ็นแอลลิสัน

1
@FredFoo ยัง ANN สามารถติดอยู่ในท้องถิ่นขนาดเล็กที่สนับสนุนเครื่องเวกเตอร์ไม่ได้มีแนวโน้มปัญหานี้
นักท่องเที่ยว

62

ข้อดีอย่างหนึ่งที่เห็นได้ชัดของเครือข่ายประสาทเทียมเหนือเครื่องเวกเตอร์สนับสนุนคือเครือข่ายประสาทเทียมอาจมีเอาต์พุตจำนวนเท่าใดก็ได้ในขณะที่เครื่องเวกเตอร์สนับสนุนมีเพียงเครื่องเดียวเท่านั้น วิธีที่ตรงที่สุดในการสร้างตัวจําแนก n-ary พร้อมเครื่องเวกเตอร์สนับสนุนคือการสร้างเครื่องสนับสนุนเวกเตอร์ n และฝึกอบรมทีละตัวทีละตัว ในทางกลับกันลักษณนามของ n-ary ที่มีโครงข่ายประสาทเทียมสามารถฝึกได้ในคราวเดียว ยิ่งไปกว่านั้นเครือข่ายประสาทจะมีเหตุผลมากกว่าเพราะมันเป็นหนึ่งเดียวในขณะที่เวกเตอร์สนับสนุนเป็นระบบที่แยกได้ สิ่งนี้มีประโยชน์อย่างยิ่งหากเอาต์พุตมีความสัมพันธ์กัน

ตัวอย่างเช่นหากเป้าหมายคือการจำแนกตัวเลขที่เขียนด้วยมือระบบจะสนับสนุนเวกเตอร์เครื่องสิบเครื่อง เครื่องเวกเตอร์สนับสนุนแต่ละเครื่องจะรับรู้ตัวเลขหนึ่งหลักอย่างแน่นอนและไม่สามารถรับรู้ได้ทั้งหมด เนื่องจากตัวเลขแต่ละตัวที่เขียนด้วยลายมือนั้นไม่สามารถเก็บข้อมูลได้มากกว่าคลาสของมันมันจึงไม่มีเหตุผลที่จะพยายามแก้ปัญหานี้ด้วยเครือข่ายประสาทเทียม

อย่างไรก็ตามสมมติว่าเป้าหมายคือการสร้างแบบจำลองความสมดุลของฮอร์โมนของบุคคล (สำหรับฮอร์โมนหลาย ๆ ตัว) เป็นหน้าที่ของปัจจัยทางสรีรวิทยาที่วัดได้ง่ายเช่นเวลาตั้งแต่มื้อสุดท้าย, อัตราการเต้นของหัวใจ ฯลฯ ... เนื่องจากปัจจัยเหล่านี้ล้วนเกี่ยวข้องกับระบบประสาทเทียม การถดถอยเครือข่ายเหมาะสมกว่าการสนับสนุนการถดถอยของเครื่องเวกเตอร์


18
ที่จริงแล้วมีสูตรหลายคลาสที่แท้จริงของเครื่องสนับสนุนเวกเตอร์ (ดูเอกสารของ Crammer & นักร้อง) ฉันเชื่อว่า LibSVM มีการใช้งานสิ่งเหล่านี้
Fred Foo

3
อย่างไรก็ตามการฝึกอบรม SVM แบบหลายคลาสนั้นไม่ใช่เรื่องง่ายและดูเหมือนว่าประสิทธิภาพจะดีขึ้นใน OVA มากกว่าวิธี AVA
crodriguezo

3
"ไม่มีเหตุผลที่จะลองแก้ปัญหานี้ด้วยเครือข่ายประสาทเทียม" คุณสามารถใช้เครือข่ายประสาทเทียมเพื่อแก้ปัญหาการจำแนกตัวเลขที่เขียนด้วยลายมือ ฉันทำสิ่งนี้เป็นการมอบหมาย hw สำหรับชั้นเรียน ชั้นเอาท์พุทมีความน่าจะเป็นของตัวเลขทั้งหมด ชั้นที่มีความน่าจะเป็นสูงที่สุดจะถูกใช้เป็นสมมติฐาน ฉันมีอัตราความแม่นยำ 94%
user3266824

คุณหมายถึงการสร้างตัวแยกประเภท SVM จำนวน 1 vs N-1 SVM เทียบกับการใช้ NN เพื่อสร้างเอาต์พุต SVM ดูเหมือนจะช้าลงด้วยวิธีนี้ไหม
mskw

@ user3266824 ใช่แล้วคำพูดนั้นไม่ค่อยดีเท่าไหร่
runDOSrun

46

สิ่งหนึ่งที่ควรสังเกตคือทั้งสองเกี่ยวข้องกันมาก Linear SVMs เทียบเท่ากับ NN ของเลเยอร์เดียว (เช่น perceptrons) และ NNs แบบหลายเลเยอร์สามารถแสดงในรูปของ SVM ดูที่นี่สำหรับรายละเอียดบางอย่าง


18

หากคุณต้องการใช้เคอร์เนล SVM คุณต้องเดาเคอร์เนล อย่างไรก็ตาม ANNs เป็นตัวประมาณสากลที่คาดเดาได้ว่าจะต้องทำเท่านั้นคือความกว้าง (ความแม่นยำในการประมาณค่า) และส่วนสูง (ประสิทธิภาพการประมาณค่า) หากคุณออกแบบปัญหาการปรับให้เหมาะสมอย่างถูกต้องคุณจะไม่กระชับเกินไป (โปรดดูบรรณานุกรมสำหรับการกระชับมากเกินไป) นอกจากนี้ยังขึ้นอยู่กับตัวอย่างการฝึกอบรมหากสแกนอย่างถูกต้องและสม่ำเสมอในพื้นที่การค้นหา การค้นหาความกว้างและความลึกเป็นเรื่องของการเขียนโปรแกรมจำนวนเต็ม

สมมติว่าคุณมีฟังก์ชันที่ล้อมรอบ f (.) และตัวประมาณสากลที่ล้อมรอบบน I = [0,1] ด้วยช่วงอีกครั้ง I = [0,1] ตัวอย่างเช่นที่ parametrized ตามลำดับจริงของการสนับสนุนแบบกะทัดรัด U (., a) ด้วย คุณสมบัติที่มีลำดับของลำดับอยู่ด้วย

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

และคุณวาดตัวอย่างและการทดสอบด้วยการกระจายบน(x,y) DIxI

สำหรับการสนับสนุนที่กำหนดสิ่งที่คุณทำคือการหาสิ่งที่ดีที่สุด

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

ปล่อยให้เรื่องนี้ a=aaเป็นตัวแปรสุ่ม!

ใช้งานโดยเฉลี่ย D and D^{N} of ( y - U(x,aa) )^{2}

ให้ฉันอธิบายว่าทำไมถ้าคุณเลือกaaเช่นว่าข้อผิดพลาดจะถูกย่อให้เล็กสุดแล้วสำหรับชุดของค่าที่หายากที่คุณมีได้อย่างลงตัว อย่างไรก็ตามเนื่องจากเป็นของหายากค่าเฉลี่ยจะไม่เป็น 0 คุณต้องการย่อวินาทีแม้ว่าคุณจะมีค่าประมาณที่ไม่ต่อเนื่องกับ D และโปรดทราบว่าระยะเวลาในการสนับสนุนฟรี


14

คำตอบเดียวที่ฉันหายไปที่นี่: perceptron แบบหลายเลเยอร์สามารถค้นหาความสัมพันธ์ระหว่างคุณลักษณะต่างๆได้ ตัวอย่างเช่นมีความจำเป็นในการมองเห็นคอมพิวเตอร์เมื่อมีการจัดเตรียมรูปภาพดิบให้กับอัลกอริทึมการเรียนรู้และตอนนี้มีการคำนวณคุณสมบัติที่ซับซ้อน เป็นหลักระดับกลางสามารถคำนวณคุณสมบัติใหม่ที่ไม่รู้จัก


12

เราควรพิจารณาว่าระบบ SVM สามารถนำไปใช้โดยตรงกับช่องว่างที่ไม่ใช่ตัวชี้วัดเช่นชุดของกราฟหรือสตริงที่มีป้ายกำกับ ในความเป็นจริงฟังก์ชั่นเคอร์เนลภายในสามารถวางแนวทั่วไปให้เหมาะสมกับอินพุตทุกชนิดโดยมีเงื่อนไขว่าความต้องการเชิงบวกของเคอร์เนลเป็นที่พอใจ ในทางกลับกันเพื่อให้สามารถใช้ ANN ในชุดของกราฟที่มีป้ายกำกับต้องพิจารณาขั้นตอนการฝังอย่างชัดเจน


6
ในใจของฉันการสร้างเคอร์เนลที่สมเหตุสมผลและการสร้างการฝังเมตริกที่สมเหตุสมผลนั้นเป็นปัญหาอย่างเท่าเทียมกัน นี่เป็นเพียงความคิดเห็นที่อาจมีความหลากหลายของเมล็ดมากกว่าตัวชี้วัด แต่ฉันไม่ได้ซื้อมัน ohli.de/download/papers/Deza2009.pdf
JeremyKun
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.