Dlaczego Konwolucyjne sieci neuronowe nie używają maszyny wektorów wsparcia do klasyfikacji?

46

W ostatnich latach Konwolucyjne sieci neuronowe (CNN) stały się najnowocześniejszymi urządzeniami do rozpoznawania obiektów w wizji komputerowej. Zazwyczaj CNN składa się z kilku warstw splotowych, po których następują dwie w pełni połączone warstwy. Za intuicją kryje się to, że warstwy splotowe uczą się lepszej reprezentacji danych wejściowych, a następnie w pełni połączone warstwy uczą się klasyfikować tę reprezentację na podstawie zestawu etykiet.

Jednak zanim CNN zaczęły dominować, maszyny wektorów wsparcia (SVM) były najnowocześniejsze. Wydaje się zatem rozsądne stwierdzenie, że SVM jest nadal silniejszym klasyfikatorem niż dwuwarstwowa w pełni połączona sieć neuronowa. Zastanawiam się zatem, dlaczego najnowocześniejsze CNN używają w pełni połączonych warstw do klasyfikacji zamiast SVM? W ten sposób uzyskasz to, co najlepsze z obu światów: silną reprezentację cech i silny klasyfikator, zamiast silnej reprezentacji cech, ale tylko słaby klasyfikator ...

Jakieś pomysły?

Karnivaurus
źródło

Odpowiedzi:

54

To może być zrobione; artykuł warsztatowy ICML „ Głębokie uczenie się z wykorzystaniem maszyn wektorów wsparcia liniowego” , Tang (2013) , dokładnie to zrobił i znalazł małe, ale konsekwentne ulepszenia. Czasami wykonuje się to również w celu trenowania CNN w typowy sposób, ale następnie przyjmuje się wynik późnej warstwy jako „cechy” i trenuje na tym osobną maszynę SVM.

Należy jednak zauważyć, że używali liniowych maszyn SVM, a tak naprawdę różnica między liniową maszyną SVM a regresją logistyczną (co jest równoważne pojedynczej warstwie wyjściowej binarnej z aktywacją sigmoidalną) jest dość niewielka. Dodatkowa warstwa sieci, zakładając, że masz wystarczającą ilość danych, aby się jej nauczyć, w rzeczywistości sprawia, że ​​dwie ostatnie warstwy są silniejsze niż liniowy SVM - chociaż oczywiście możesz zrobić jedną w pełni połączoną warstwę sigmoidalną lub ReLU, a następnie umieścić warstwę SVM na końcu.

Ponadto, w przypadku wyników wieloklasowych, aktywacje softmax są bardziej naturalne niż wieloklasowe maszyny SVM i myślę, że podejście SVM tego papieru jest nieco bardziej intensywne obliczeniowo. Więc ludzie zwykle nie sądzą, że warto.

Dougal
źródło
0

Jak widzę, jest co najmniej kilka różnic:

  1. Sieci CNN są zaprojektowane do pracy z danymi obrazu, podczas gdy SVM jest bardziej ogólnym klasyfikatorem;
  2. CNN wyodrębniają funkcje, podczas gdy SVM po prostu odwzorowuje swoje dane wejściowe na jakąś przestrzeń o dużych wymiarach, gdzie (mam nadzieję) różnice między klasami mogą zostać ujawnione;
  3. Podobnie jak w przypadku 2. CNN są głębokimi architekturami, podczas gdy SVM są płytkie;
  4. Cele uczenia się są różne: maszyny SVM starają się zmaksymalizować margines, podczas gdy CNN nie są (chciałbym wiedzieć więcej)

To powiedziawszy, SVM mogą działać tak dobrze, jak CNN, pod warunkiem, że dobre funkcje są używane z dobrą funkcją jądra.

Vladislavs Dovgalecs
źródło
4
Myślę, że mogłeś źle zrozumieć pytanie; chodzi o użycie „warstwy SVM” na końcu CNN.
Dougal,
4
Rozumiem różnicę między CNN a SVM, ale jak mówi @Dougal, pytam o ostatnią warstwę CNN. Zazwyczaj jest to w pełni połączona sieć neuronowa, ale nie jestem pewien, dlaczego SVM nie są tutaj stosowane, biorąc pod uwagę, że są one zwykle silniejsze niż dwuwarstwowa sieć neuronowa.
Karnivaurus,
6
@Karnivaurus Przepraszamy za błędne odczytanie pytania. Pomysł nie jest nowy. Zazwyczaj ostatnia warstwa jest wyrzucana, a wynik ostatniej warstwy jest wykorzystywany jako cechy w innych algorytmach klasyfikacji. Dlaczego nie odbywa się to konsekwentnie i wszędzie? Funkcje ostatniej warstwy są zazwyczaj tak dyskryminujące, że nie ma potrzeby stosowania wyrafinowanej czarnej skrzynki jak SVM, wystarczy regresja logistyczna. To moja wizja rzeczy.
Vladislavs Dovgalecs,