ทำไม Convolutional Neural Networks ไม่ใช้ Support Vector Machine เพื่อจัดประเภท?


46

ในช่วงไม่กี่ปีที่ผ่านมา Convolutional Neural Networks (CNNs) ได้กลายเป็นสุดยอดของการรับรู้วัตถุในคอมพิวเตอร์วิสัยทัศน์ โดยทั่วไปแล้วซีเอ็นเอ็นประกอบด้วยหลายชั้น convolutional ตามมาด้วยสองชั้นเชื่อมต่ออย่างเต็มที่ สัญชาตญาณที่อยู่เบื้องหลังสิ่งนี้คือเลเยอร์ convolutional เรียนรู้การแสดงข้อมูลอินพุตที่ดีขึ้นและเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์จากนั้นเรียนรู้ที่จะจำแนกการแสดงนี้ตามชุดฉลาก

อย่างไรก็ตามก่อนที่ CNNs จะเริ่มครอบครอง Support Vector Machines (SVMs) เป็นสิ่งที่ล้ำสมัย ดังนั้นจึงมีเหตุผลที่จะบอกว่า SVM ยังคงเป็นลักษณนามที่แข็งแกร่งกว่าเครือข่ายนิวรัลสองชั้นที่เชื่อมต่อเต็มที่ ดังนั้นฉันสงสัยว่าทำไม CNN ที่ล้ำสมัยมักใช้เลเยอร์ที่เชื่อมต่ออย่างเต็มที่เพื่อการจำแนกประเภทมากกว่า SVM ด้วยวิธีนี้คุณจะได้สิ่งที่ดีที่สุดทั้งสองโลก: การแสดงคุณสมบัติที่แข็งแกร่งและตัวจําแนกที่แข็งแกร่งมากกว่าการแสดงคุณสมบัติที่แข็งแกร่ง แต่เป็นตัวจําแนกที่อ่อนแอเท่านั้น ...

ความคิดใด ๆ

คำตอบ:


54

มันสามารถทำได้ กระดาษการประชุมเชิงปฏิบัติการของ ICML, การเรียนรู้เชิงลึกโดยใช้ Linear Vector Vector Machines , Tang (2013)ทำสิ่งนี้อย่างแน่นอนและพบว่ามีการปรับปรุงเล็ก ๆ น้อย ๆ แต่สอดคล้องกัน บางครั้งก็ทำเพื่อฝึกอบรม CNNs ในลักษณะทั่วไป แต่จากนั้นนำผลลัพธ์ของเลเยอร์ล่าช้าเป็น "คุณสมบัติ" และฝึกอบรม SVM แยกต่างหากในเรื่องนั้น

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

นอกจากนี้สำหรับเอาต์พุตหลายคลาสการเปิดใช้งาน softmax นั้นเป็นธรรมชาติมากกว่า SVM แบบหลายคลาสและฉันคิดว่าวิธี SVM ของกระดาษนั้นค่อนข้างเข้มข้นกว่าการคำนวณ ดังนั้นคนมักจะไม่คิดว่ามันคุ้มค่า


0

เท่าที่ฉันเห็นมีความแตกต่างอย่างน้อยสอง:

  1. CNN ได้รับการออกแบบให้ทำงานกับข้อมูลภาพในขณะที่ SVM เป็นตัวจําแนกทั่วไป
  2. ซีเอ็นเอ็นดึงคุณสมบัติในขณะที่ SVM แมปอินพุตกับพื้นที่มิติสูงที่ (หวังว่า) ความแตกต่างระหว่างคลาสจะถูกเปิดเผย
  3. คล้ายกับ 2, CNNs เป็นสถาปัตยกรรมที่ลึกในขณะที่ SVM นั้นตื้น
  4. วัตถุประสงค์การเรียนรู้ที่แตกต่าง: SVM มองหาการเพิ่มระยะขอบในขณะที่ CNN ไม่ใช่ (อยากจะรู้มากขึ้น)

สิ่งนี้ถูกกล่าวว่า SVM สามารถทำงานได้ดีเหมือนกับ CNN ที่มีคุณสมบัติที่ดีที่ใช้กับฟังก์ชันเคอร์เนลที่ดี


4
ฉันคิดว่าคุณอาจเข้าใจผิดคำถาม; มันเกี่ยวกับการใช้ "เลเยอร์ SVM" ที่ส่วนท้ายของ CNN
Dougal

4
ฉันเข้าใจความแตกต่างระหว่าง CNN และ SVM แต่ในขณะที่ @Dougal บอกว่าฉันกำลังถามเพิ่มเติมเกี่ยวกับชั้นสุดท้ายของ CNN โดยทั่วไปแล้วนี่เป็นเครือข่ายประสาทที่เชื่อมต่ออย่างสมบูรณ์ แต่ฉันไม่แน่ใจว่าทำไม SVM ไม่ได้ใช้ที่นี่เนื่องจากพวกเขามีแนวโน้มที่จะแข็งแกร่งกว่าเครือข่ายประสาทสองชั้น
Karnivaurus

6
@Karnivaurus ขออภัยที่อ่านคำถามของคุณผิด แนวคิดไม่ใช่เรื่องใหม่ โดยทั่วไปแล้วชั้นสุดท้ายจะถูกโยนทิ้งไปและเอาท์พุทของชั้นสุดท้ายจะถูกใช้เป็นคุณสมบัติในอัลกอริทึมการจำแนกประเภทอื่น ๆ ทำไมมันไม่ทำอย่างสม่ำเสมอและทุกที่? โดยทั่วไปคุณสมบัติของเลเยอร์สุดท้ายนั้นมีการเลือกปฏิบัติอย่างมากจนไม่จำเป็นต้องมีกล่องดำที่ซับซ้อนเหมือน SVM การถดถอยโลจิสติกอย่างง่ายก็สามารถทำได้ นี่คือวิสัยทัศน์ของฉันในสิ่งต่าง ๆ
Vladislavs Dovgalecs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.