Mengapa Convolutional Neural Networks tidak menggunakan Mesin Vector Support untuk mengklasifikasikan?

46

Dalam beberapa tahun terakhir, Jaringan Neural Konvolusional (CNN) telah menjadi yang terdepan untuk pengenalan objek dalam visi komputer. Biasanya, CNN terdiri dari beberapa lapisan konvolusional, diikuti oleh dua lapisan yang sepenuhnya terhubung. Intuisi di balik ini adalah bahwa lapisan konvolusional belajar representasi yang lebih baik dari data input, dan lapisan yang terhubung sepenuhnya kemudian belajar untuk mengklasifikasikan representasi ini berdasarkan seperangkat label.

Namun, sebelum CNN mulai mendominasi, Support Vector Machines (SVMs) adalah yang paling canggih. Jadi tampaknya masuk akal untuk mengatakan bahwa SVM masih merupakan pengklasifikasi yang lebih kuat daripada jaringan saraf dua lapis yang terhubung penuh. Oleh karena itu, saya bertanya-tanya mengapa CNN canggih cenderung menggunakan lapisan yang sepenuhnya terhubung untuk klasifikasi daripada SVM? Dengan cara ini, Anda akan memiliki yang terbaik dari kedua dunia: representasi fitur yang kuat, dan classifier yang kuat, daripada representasi fitur yang kuat tetapi hanya ...

Ada ide?

Karnivaurus
sumber

Jawaban:

54

Itu bisa dilakukan; makalah lokakarya ICML, Deep Learning menggunakan Linear Support Vector Machines , Tang (2013) , melakukan hal ini dan menemukan perbaikan kecil tapi konsisten. Ini juga kadang-kadang dilakukan untuk melatih CNN dengan cara yang khas, tetapi kemudian mengambil output dari lapisan akhir sebagai "fitur" dan melatih SVM terpisah pada itu.

Namun, perlu diketahui bahwa mereka menggunakan SVM linear , dan sungguh, perbedaan antara SVM linier dan regresi logistik (yang setara dengan lapisan biner-output tunggal dengan aktivasi sigmoid) cukup kecil. Lapisan tambahan dari jaring, dengan asumsi Anda memiliki cukup data untuk mempelajarinya, sebenarnya membuat dua lapisan terakhir lebih kuat dari SVM linier - meskipun tentu saja Anda bisa melakukan satu sigmoid atau lapisan ReLU yang terhubung penuh dan kemudian menempatkan lapisan SVM yang terakhir.

Juga, untuk keluaran multikelas, aktivasi softmax lebih alami daripada multikelas SVM, dan saya pikir pendekatan SVM dari makalah itu agak lebih intensif secara komputasi. Jadi orang biasanya tidak berpikir itu sepadan.

Dougal
sumber
0

Sejauh yang saya bisa lihat, setidaknya ada perbedaan pasangan:

  1. CNN dirancang untuk bekerja dengan data gambar, sedangkan SVM adalah klasifikasi yang lebih umum;
  2. CNN mengekstrak fitur sementara SVM hanya memetakan inputnya ke beberapa ruang dimensi tinggi di mana (mudah-mudahan) perbedaan antara kelas dapat diungkapkan;
  3. Mirip dengan 2., CNN adalah arsitektur yang dalam sementara SVM dangkal;
  4. Tujuan pembelajaran berbeda: SVM terlihat memaksimalkan margin, sedangkan CNN tidak (ingin tahu lebih banyak)

Karena itu, SVM dapat bekerja sebaik CNN asalkan fitur yang baik digunakan dengan fungsi kernel yang baik.

Vladislavs Dovgalecs
sumber
4
Saya pikir Anda mungkin telah salah paham pertanyaannya; ini tentang menggunakan "lapisan SVM" di akhir CNN.
Dougal
4
Saya mengerti perbedaan antara CNN dan SVM, tetapi seperti yang dikatakan @Dougal, saya bertanya lebih banyak tentang lapisan akhir CNN. Biasanya, ini adalah jaringan saraf yang sepenuhnya terhubung, tetapi saya tidak yakin mengapa SVM tidak digunakan di sini mengingat bahwa mereka cenderung lebih kuat daripada jaringan saraf dua lapis.
Karnivaurus
6
@Karnivaurus Maaf karena salah membaca pertanyaan Anda. Idenya bukan hal baru. Biasanya lapisan terakhir dibuang dan output dari lapisan terakhir digunakan sebagai fitur dalam algoritma klasifikasi lainnya. Mengapa itu tidak dilakukan secara konsisten dan di mana-mana? Fitur-fitur dari lapisan terakhir biasanya sangat diskriminatif sehingga tidak perlu kotak hitam canggih seperti SVM, Regresi Logistik sederhana melakukan pekerjaan. Inilah visi saya tentang berbagai hal.
Vladislavs Dovgalecs