Чому конволюційні нейронні мережі не використовують класифікаційний векторний апарат підтримки?


46

В останні роки конволюційні нейронні мережі (CNN) стали найсучаснішим для розпізнавання об'єктів в комп'ютерному зорі. Зазвичай CNN складається з декількох згорткових шарів, за якими слідують два повністю з'єднані шари. Інтуїція, що стоїть за цим, полягає в тому, що згорткові шари навчаються кращому представленню вхідних даних, а повністю пов'язані шари потім вчаться класифікувати це представлення на основі набору міток.

Однак, перш ніж CNN почали домінувати, підтримка векторних машин (SVM) була найсучаснішим. Тому здається розумним сказати, що SVM все ще є більш сильним класифікатором, ніж двошарова повністю пов'язана нейронна мережа. Тому мені цікаво, чому сучасні CNN мають тенденцію використовувати повністю пов'язані шари для класифікації, а не SVM? Таким чином, ви мали б найкраще з обох світів: сильне представлення функцій та сильний класифікатор, а не сильне представлення функцій, але лише слабкий класифікатор ...

Якісь ідеї?

Відповіді:


54

Це можна зробити; Довідковий семінар ICML « Глибоке навчання з використанням векторних машин лінійної підтримки» , Тан (2013) , зробив саме це і знайшов невеликі, але послідовні вдосконалення. Іноді це також робиться для тренування CNN типовим способом, але потім приймати висновок пізнього шару як "функції" та тренувати окремий SVM для цього.

Зауважте, що вони використовували лінійні SVM, і насправді різниця між лінійною SVM та логістичною регресією (що еквівалентно одному бінарному вихідному шару з сигмоподібною активацією) досить мала. Додатковий шар мережі, якщо припустити, що у вас є достатньо даних для його вивчення, насправді робить останні два шари сильнішими за лінійний SVM - хоча, звичайно, ви могли б зробити один повністю підключений сигмоїдний або ReLU шар, а потім поставити останній шар SVM.

Крім того, для багатокласових виходів активація softmax є більш природною, ніж багатокласові SVM, і я вважаю, що підхід цього документа до SVM є дещо більш обчислювальним. Тому люди просто не вважають, що цього варто.


0

Наскільки я бачу, є принаймні пари відмінностей:

  1. CNN розроблені для роботи з даними зображення, тоді як SVM - більш загальний класифікатор;
  2. CNNs витягує функції, в той час як SVM просто відображає свій внесок у якийсь великий розмірний простір, де (сподіваємось) різниці між класами можна виявити;
  3. Подібно до 2., CNN - це глибока архітектура, тоді як SVM - неглибокі;
  4. Цілі навчання різні: SVM намагаються досягти максимального запасу, тоді як CNN - ні (хотілося б знати більше)

З цього приводу, SVM можуть працювати так само добре, як CNN, за умови, що хороші функції використовуються з хорошою функцією ядра.


4
Я думаю, ви, можливо, неправильно зрозуміли питання; йдеться про використання "SVM-шару" в кінці CNN.
Дугал

4
Я розумію різницю між CNN та SVM, але, як говорить @Dougal, я запитую більше про остаточний шар CNN. Як правило, це повністю пов'язана нейронна мережа, але я не впевнений, чому SVM не використовуються тут, враховуючи, що вони, як правило, сильніші за двошарову нейронну мережу.
Karnivaurus

6
@Karnivaurus Вибачте за неправильне прочитання вашого питання. Ідея не нова. Зазвичай останній шар викидається, а висновок останнього шару використовується як функції в інших алгоритмах класифікації. Чому це не робиться послідовно і скрізь? Особливості останнього шару, як правило, настільки дискримінаційні, що немає необхідності в складній чорній коробці, як SVM, проста робота з логістичної регресії справляється із цим завданням. Це моє бачення речей.
Владислав Довгалець
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.