Convolutional Neural Networks가 분류를 위해 Support Vector Machine을 사용하지 않는 이유는 무엇입니까?


46

최근 몇 년 동안 CNN (Convolutional Neural Networks)은 컴퓨터 비전의 객체 인식을위한 최첨단 기술이되었습니다. 일반적으로 CNN은 여러 개의 컨볼 루션 레이어로 구성되고 그 뒤에 완전히 연결된 두 레이어가 있습니다. 이것에 대한 직관은 컨볼 루션 레이어가 입력 데이터의 더 나은 표현을 배우고 완전히 연결된 레이어는 레이블 세트 로이 표현을 분류하는 법을 배우는 것입니다.

그러나 CNN이 지배하기 전에 SVM (Support Vector Machine)이 최첨단이었습니다. 따라서 SVM은 여전히 ​​2 계층 완전 연결된 신경망보다 강력한 분류기라고 할 수 있습니다. 따라서 최신 CNN이 SVM이 아닌 분류를 위해 완전히 연결된 계층을 사용하는 이유가 궁금합니다. 이런 식으로, 강력한 기능 표현보다는 강력한 분류기보다는 강력한 기능 표현과 강력한 분류기 등 두 가지 이점을 모두 누릴 수 있습니다.

어떤 아이디어?

답변:


54

할 수 있습니다; ICML 워크샵 논문 인 Linear Support Vector Machines를 사용한 딥 러닝 , Tang (2013) 은 정확하게이 작업을 수행했으며 작지만 일관된 개선점을 발견했습니다. 때로는 일반적인 방식으로 CNN을 교육하기 위해 수행되지만 늦은 레이어의 출력을 "기능"으로 가져 와서 별도의 SVM을 교육합니다.

그러나 선형 SVM 을 사용 하고 실제로 선형 SVM과 로지스틱 회귀의 차이 (시그 모이 드 활성화의 단일 이진 출력 레이어와 동일)는 매우 작습니다. 네트의 추가 계층은 데이터를 학습하기에 충분한 데이터가 있다고 가정 할 때 실제로 마지막 두 계층을 선형 SVM보다 강력하게 만듭니다. 물론 완전히 연결된 시그 모이 드 또는 ReLU 계층을 수행 한 다음 SVM 계층을 마지막에 둘 수 있습니다.

또한 멀티 클래스 출력의 경우 소프트 맥스 활성화는 멀티 클래스 SVM보다 자연스럽고, 그 논문의 SVM 접근 방식은 다소 계산 집약적이라고 생각합니다. 그래서 사람들은 보통 그만한 가치가 있다고 생각하지 않습니다.


0

내가 알 수 있듯이 적어도 몇 가지 차이점이 있습니다.

  1. CNN은 이미지 데이터와 함께 작동하도록 설계되었으며 SVM은보다 일반적인 분류 기준입니다.
  2. CNN은 기능을 추출하는 반면 SVM은 단순히 입력 내용을 높은 차원의 공간에 매핑하여 클래스 간 차이가 드러날 수 있습니다.
  3. 2와 유사하게 CNN은 심층 아키텍처이며 SVM은 얕습니다.
  4. 학습 목표는 다릅니다. SVM은 마진을 극대화하려고하지만 CNN은 그렇지 않습니다 (더 알고 싶어).

이것은 좋은 기능이 좋은 커널 기능과 함께 사용된다면 SVM은 CNN만큼 훌륭하게 작동 할 수 있다는 것입니다.


4
나는 당신이 그 질문을 오해했을 것입니다. CNN의 끝에 "SVM 계층"을 사용하는 것입니다.
Dougal

4
CNN과 SVM의 차이점을 이해하지만 @Dougal이 말했듯이 CNN의 최종 계층에 대해 더 많이 묻습니다. 일반적으로 이것은 완전히 연결된 신경망이지만, SVM이 2 계층 신경망보다 강한 경향이 있기 때문에 왜 SVM을 사용하지 않는지 잘 모르겠습니다.
Karnivaurus

6
@Karnivaurus 질문을 잘못 읽어서 죄송합니다. 아이디어는 새로운 것이 아닙니다. 일반적으로 마지막 레이어는 버리고 마지막 레이어의 출력은 다른 분류 알고리즘의 기능으로 사용됩니다. 왜 어디서나 일관되게 수행되지 않습니까? 마지막 계층의 기능은 일반적으로 매우 차별적이기 때문에 간단한 로지스틱 회귀가 SVM과 같이 정교한 블랙 박스가 필요하지 않습니다. 이것이 저의 비전입니다.
Vladislavs Dovgalecs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.