일류 SVM과 모범 SVM


16

나는 부정적인 데이터가 없다는 것을 염두에두고 단일 클래스 SVM (OSVM)이 제안되었고, 그들은 긍정적 세트와 부정적인 앵커 포인트를 분리하는 결정 경계를 찾으려고 노력한다는 것을 이해합니다.

2011 년의 연구는 OSVM과는 다른 "범주 별 분류기"를 훈련시키는 ESVM ( Exemplar SVM )을 제안 합니다. 계산 " 이것이 의미하는 바와 ESVM이 OSVM과 어떻게 다른지 잘 모르겠습니다. 그래서 어떻게 다릅니 까? 그리고 ESVM에서이 유사성 커널 계산을 어떻게 피할 수 있습니까?

답변:


20

(먼저 아래의 "표"를보고 싶을 수도 있습니다)

"클래식"지원 벡터 머신부터 시작하겠습니다. 이들은 두 범주를 구별하는 법을 배웁니다. 카테고리 A의 일부 예와 카테고리 B의 일부 예를 수집하여 둘 다 SVM 훈련 알고리즘으로 전달합니다.이 알고리즘은 A와 B를 가장 잘 구분하는 선 / 평면 / 고 평면을 찾습니다. 당신은 잘 정의 된 클래스와 상호 배타적 인 클래스 (남성 대 여자, 알파벳 글자 등)를 구별하려고합니다.

그러나 대신 "A"를 식별하려고한다고 가정하십시오. 이것을 분류 문제로 취급 할 수 있습니다. "A"와 "not-A"를 어떻게 구별합니까? 개 사진으로 구성된 훈련 세트를 수집하는 것은 상당히 쉽지만 개가 아닌 훈련 세트에는 무엇이 있어야합니까? 개가 아닌 수많은 것들이 있기 때문에 개가 아닌 것들에 대한 포괄적이고 대표적인 훈련 세트를 구성하는 데 어려움을 겪을 수 있습니다. 대신 1 클래스 분류기를 사용하는 것이 좋습니다. 기존의 2 클래스 분류기는 A와 B를 분리하는 (하이퍼) 평면을 찾습니다. 대신 1 클래스 SVM은 모든 동급 포인트 ( "A")를 원점에서 분리하는 선 / 평면 /과 평면을 찾습니다. ;

Ensemble SVM "시스템"은 실제로 많은 2 클래스 SVM "서브 유닛"의 모음입니다. 각 소단위는 하나를 사용하여 훈련한 클래스에 대한 긍정적 인 예와 다른 클래스에 대한 부정적인 예의 거대한 모음. 따라서 개와 개가 아닌 예 (표준 2 종 SVM) 또는 개와 원산지 (1 종 SVM)를 구별하는 대신 각 하위 단위는 특정 개 (예 : "Rex")와 많은 개를 구별합니다. 예. 개별 서브 유닛 SVM은 포지티브 클래스의 각 예에 대해 훈련되었으므로 Rex에 대한 SVM, Fido에 대한 SVM, 오전 6시에 짖는 이웃의 개에 대한 SVM이 있습니다. 이들 서브 유닛 SVM의 출력은 교정되고 결합되어 특정 예시 중 하나가 아니라 개가 시험 데이터에 나타나는지 여부를 결정합니다. 개별 서브 니트를 단일 클래스 SVM과 비슷하게 생각할 수 있다고 생각합니다. 좌표 공간이 이동하여 단일 긍정적 예가 원점에 위치합니다.

요약하면 주요 차이점은 다음과 같습니다.

훈련 데이터

  • 두 가지 클래스 SVM : 긍정적 및 부정적 예
  • 하나의 클래스 SVM : 긍정적 인 사례
  • Ensemble SVM "시스템": 긍정적이고 부정적인 예. 각 서브 유닛은 하나의 긍정적 인 예와 많은 부정적인 예에 ​​대해 훈련됩니다.

기계 수

  • 두 가지 클래스 SVM : 하나
  • 하나의 클래스 SVM : 하나
  • Ensemble SVM "시스템": 다수 (긍정적 인 예당 하나의 서브 유닛 기계)

수업 당 예 (기계 당)

  • 2 가지 SVM : 다 / 다
  • 하나의 클래스 SVM : 다수 / 하나 (원점에서 고정)
  • 앙상블 SVM "시스템": 많은 / 많은
  • 앙상블 SVM "서브 유닛": 하나 / 다

후 처리

  • 2 클래스 SVM : 필요하지 않음
  • 하나의 클래스 SVM : 필요하지 않음
  • 앙상블 SVM : 각 SVM의 출력을 클래스 수준 예측에 통합해야합니다.

Postscript : "[다른 접근 방식]에서는 유사 커널을 계산할 수있는 공통 피처 공간에 예제를 매핑해야합니다." 나는 그들이 클래스의 모든 멤버는 어떻게 든 유사하다는 기존의 두 클래스 SVM는 가정하에 동작하는 것을 의미한다 생각하고, 당신이 커널을 발견 할 수 있도록 그 장소 위대한 덴마크dachsunds 멀리 다른 모든 것들에서 서로 가까이 있지만. 대조적으로, 앙상블 SVM 시스템은 예를 들어 덴마크 인이나 닥스 훈트 형 또는 푸들 형과 같이 충분히 훌륭한 경우 개를 호출함으로써 이러한 예시를 회피합니다.


위대하고 포괄적 인 답변에 감사드립니다. 분명하게, 어떤 곳에서는 실제로 모범 SVM의 "앙상블"을 의미하지만 다른 곳에서는 "예시"SVM? 공정하다고 생각합니다. (1) 단일 ESVM이있는 단일 OSVM 또는 (2) ESVM의 ENSEMBLE이있는 OSVM의 ENSEMBLE과 비교해야합니다.
bjou

이것이 여러 클래스에 얼마나 잘 일반화되는지를 묻는 것이 너무 주제가 아니기를 바랍니다. 고양이, 개 및 새가있는 경우 esvm이 각 고양이 대 fido에 대해 하나의 "요소"SVM을 요구하고 fido 대 새에 대해 하나의 "요소"SVM을 요구합니까? 3 개 카테고리 각각에 대해 10 개의 데이터 포인트가있는 경우 "개"당 20 개의 요소 SVM 또는 200 개의 요소로 구성된 앙상블을 의미합니까? 300 개의 데이터 요소와 20 개의 차원 또는 50k 개의 데이터 요소와 50k의 크기가있는 경우 SVM의 임의 포리스트를 만드는 경우 임의 하위 집합을 사용하여 "차원의 저주"의 영향을 줄일 수 있습니까?
EngrStudent-복직 모니카

@ bjou, 나는 ESVM 용어로 약간 조잡했기 때문에 돌아가서 정리했습니다. ESVM 시스템의 "서브 유닛"은 OSVM과 같다고 생각할 수 있습니다. 단, 좌표 시스템의 중심이 조정되어 긍정적 인 예가 원점에 놓이는 것입니다.
매트 크라우스

1
@ EngrStudent, 그것은 실제로 정말 멋지게 일반화합니다. 이 논문에서는 ~ 20 개의 범주가있는 Pascal VOC 작업을 사용합니다. 동물의 예를 확장하기 위해, "Fido"대 (모든 새, 고양이 및 물고기)에 대한 하위 단위, "Rex"에 대한 또 다른 하위 단위 및 모든 비개 등이 있습니다. 새의 경우, "Tweety"대 (모든 고양이, 개, 물고기), "Polly"대 모든 비새 등을 훈련시킵니다. 각각의 고양이와 물고기 예제에 대해 각각의 비 고양이와 비 물고기에 대해 훈련 된 서브 유닛이있을 것입니다. 클래스 수에 관계없이 레이블이있는 예제 당 1 개의 SVM으로 끝납니다.
매트 크라우스

부스팅의 사촌처럼 들립니다 (그라디언트 부스트 트리의 의미에서). 앙상블, 출력 오류 가중치 또는 균일 가중치입니까?
EngrStudent-복원 자 Monica Monica

2

요컨대, ESVM 모델은 각각의 단일 트레이닝 세트 요소를 나머지 모든 것과 구별하도록 훈련 된 SVM의 앙상블이며, OSVM은 하나의 클래스에 속하는 트레이닝 요소의 각 서브 세트를 구별하도록 훈련 된 SVM의 앙상블입니다. 따라서 훈련 세트에 300 개의 고양이와 300 개의 개 예제가있는 경우 ESVM은 각각 한 애완 동물에 대해 600 개의 SVM 을 만들지 만 OSVM은 두 개의 SVM 을 만듭니다 (모든 고양이에 대해 첫 번째, 모든 개에 대해 두 번째).

이런 식으로 ESVM은 전체 클래스가 클러스터되는 공간을 찾을 필요가없고이 단일 요소가 특이 치인 공간을 찾을 필요가 없습니다. 리콜은 앙상블에서 제공한다고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.