SVM은 한 번에 하나의 예를 스트리밍 학습 할 수 있습니까?


33

스트리밍 데이터 세트가 있는데 예제를 한 번에 하나씩 사용할 수 있습니다. 나는 그들에 대해 다중 클래스 분류를해야합니다. 학습 과정에 학습 예제를 제공하자마자 예제를 삭제해야합니다. 동시에, 나는 레이블이없는 데이터에 대한 예측을 수행하기 위해 최신 모델을 사용하고 있습니다.

내가 아는 한 신경망은 한 번에 하나의 예제를 제공하고 예제에서 순방향 전파 및 역방향 전파를 수행하여 스트림 학습을 수행 할 수 있습니다.

SVM이 한 번에 하나의 예제만으로 스트림 학습을 수행하고 예제를 바로 버릴 수 있습니까?


2
수락 된 답변을 업데이트해야합니다. 현재 SVM 온라인 학습 알고리즘을 지원하는 라이브러리가 여러 개있는 것 같습니다. Vowpal Wabbit은 svm을 줄이고 다른 대안은 다음과 같습니다 : scikit-learn, sofia-ml 및 R의 kernlab 패키지에는 온라인 학습을위한 몇 가지 옵션이 있습니다.
marbel

답변:


22

머신 러닝의 스트리밍 설정을 "온라인 학습"이라고합니다. 온라인 설정에는 정확한 서포트 벡터 머신이 없습니다 (목적 기능의 정의는 본질적으로 배치 설정을위한 것이므로). 온라인 설정에 대한 SVM의 가장 간단한 일반화는 수동적 공격 알고리즘 일 것입니다. 코드는 http://webee.technion.ac.il/people/koby/code-index.html 이며 관련 논문은 http://eprints.pascal-network.org/archive/00002147/01/CrammerDeKeShSi06입니다. pdf

기본 아이디어는 쌍으로 쿼리 포인트 여기서 레이블 수입니다. 알고리즘은 가중치 행렬 유지 반복에서 데이터 점 접수에 알고리즘을 다음과 범 예측 점수 각 레이블에 대해 이며 최고 레이블을 실제 레이블로 예측합니다. 예측이 틀린 경우 알고리즘은 가장 작은 변화를(x,y)Rd×[k]xRkWtRk×dtxty^t=WxtWt미래에 그 실수를 피할 수 있도록. 가장 작은 변화는 Frobenius 규범으로 정의됩니다.


1
(+1) 사이트에 오신 것을 환영합니다. Mark.
추기경

11

필자는 항상 암시 적 업데이트 프레임 워크 (여기 다른 답변에서 언급 한 수동적 공격적 알고리즘 포함)가 명시 적 업데이트 프레임 워크보다 불필요하게 더 복잡하다는 것을 발견했습니다 (암시 적 업데이트는 명시 적 업데이트 프레임 워크보다 훨씬 느릴 수 있습니다). 암시 적 업데이트를위한 폐쇄 형 솔루션 사용 가능).

Online Importance Weight Aware Updates 는 암시 적 대응보다 단순하고 빠르며 더 유연한 (다중 손실 기능, 여러 벌금, 비용에 민감한 학습 등 지원) 최신 명시 적 업데이트 알고리즘의 예입니다. 이 논문은 선형 모델만을 다룬다 (선형 svm은 2 차 페널티가있는 힌지 손실 함수의 경우에 해당)

멀티 클래스 분류가 필요하기 때문에 한 가지 접근 방식은 불행히도 잘 문서화되지 않은 vowpal wabbit (종이의 접근 방식 위에 구축) 의 "감소"기능을 사용하는 것입니다.


8

LASVM 은 SVM의 가장 인기있는 온라인 학습 변형 중 하나입니다.

선형 SVM은 선형 모델과 마찬가지로 확률 적 경사 하강을 사용하여 학습 할 수 있습니다.


SGD를 사용하여 선형 모델을 학습 할 수있는 것이 아니라는 사실을 명확히하기 위해, 적어도 특정 형태의 목표 (추가 손실 함수)를 가정해야합니다.
lejlot

6

이진 분류를위한 온라인 SVM을 제안한 SVM Incremental Learning, Adaptation and Optimization 논문을 참조하십시오 .

위의 논문 코드는 여기 에서 찾을 수 있습니다 . 이 코드에는 두 가지 온라인 교육 방법이 도입되었습니다.

  1. 을 호출하여 한 번에 하나의 예제에서 SVM을 증 분식으로 훈련 svmtrain()하고
  2. 을 호출하여 모든 교육 예제를 솔루션으로 동시에 증가시키는 배치 교육을 수행 svmtrain2()합니다.

귀하의 질문으로 돌아 가면, 한 번에 하나의 예를 스트림 학습에 대한 대답은 분명히 그렇습니다 . 또한이 코드는 예를 들어 정확하고 근사한 LOO (Lake-One-Out) 오류 추정과 같이 예를 들어 비 배제 (삭제)를 처리 할 수 ​​있습니다. 정확한 LOO 오류 추정은 한 번에 하나의 예를 정확히 학습하고 분류기를 테스트하여 효율적으로 계산할 수 있습니다. 예.


(+1) 저희 사이트에 오신 것을 환영합니다!
whuber

0

커널을 이용한 온라인 학습은 일반적인 커널 설정에서 온라인 학습을 설명합니다.

초록에서 발췌-

" 지원 벡터 머신과 같은 커널 기반 알고리즘은 모든 트레이닝 데이터를 미리 이용할 수있는 배치 설정에서 다양한 문제에서 상당한 성공을 거두었습니다. 지원 벡터 머신은 소위 커널 트릭과 큰 마진 아이디어를 결합합니다. 실시간 애플리케이션에 적합한 온라인 환경에서 이러한 방법을 거의 사용하지 않음 본 논문에서는 재현 커널 힐버트 공간에서 온라인 학습을 고려하고 특징 공간 내에서 고전적인 확률 적 경사 하강 및 일부 간단한 트릭의 사용을 고려함으로써 " 분류, 회귀 및 참신 탐지와 같은 광범위한 문제에 대해 간단하고 계산적으로 효율적인 알고리즘을 개발합니다. "

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