SVM 파라미터 선택


9

더 나은 훈련 성과를내는 C와 감마를 선택하는 더 좋은 대안 방법이 있습니까?

답변:


5

그리드 검색은 거의 최적의 위치에 있지 않은 하이퍼 파라미터 설정을 조사하는 데 많은 시간을 소비하므로 느립니다. 더 좋은 솔루션은 Nelder-Mead 심플 렉스 알고리즘 입니다. 그래디언트 정보를 계산할 필요가없고 구현하기가 쉽습니다 (Wikipedia 페이지에 충분한 정보가 있어야합니다). Weka 도구 상자 에 Java 코드가있을 수도 있지만 MATLAB에서 작업하고 Weka를 자세히 보지 않았습니다.

SMO는 하이퍼 파라미터가 아닌 모델 파라미터를 찾기위한 알고리즘입니다.


matlab 구현을 제공 할 수 있습니까?
Zach

1
여기에 theoval.cmp.uea.ac.uk/matlab/#optim 중 하나가 있지만 이미 최적화 도구 상자가 있으면 fminsearch는 Nelder-Mead 방법 IIRC의 구현입니다.
Dikran Marsupial

5

Nelder-Mead 심플 렉스 방법은 간단한 그리드 검색만큼 많은 기능 평가를 포함 할 수 있습니다. 일반적으로 오차 표면은 최적의 매개 변수 값에 가깝게 충분히 매끄 럽기 때문에 작은 영역에서 거친 격자 검색과 미세한 격자 검색으로 충분합니다.

C 및 감마의 그래디언트 기반 최적화에 관심이있는 경우 반경 한계 한계를 최적화하거나 유효성 검사 세트에서 오류율을 최적화하는 방법이 있습니다. 목적 함수의 기울기 계산에는 하나의 SVM 기차와 같은 것이 포함되지만 간단한 기울기 감소는 수십 번의 반복 만 포함 할 수 있습니다. (봐 http://olivier.chapelle.cc/ams/ 기사와의 MATLAB 구현을 위해.)


내 경험상, nelder-mead는 일반적으로 그리드 검색보다 빠르며 기울기 감소는 반복이 적고 기울기 계산 비용이 많이 드는 반면 약간 더 빠른 becuase입니다. 따라서 그라디언트 디센트를 제공하는 구현이있는 경우 사용하지만 Nelder-Mead는 그리 뒤지지 않을 것입니다. 물론 그리드 검색을 조정하기위한 하이퍼 파라미터가 두 개 이상 있으면 즉시 가장 느린 방법이됩니다. 각 방법의 비교 효율에 대한 연구를 보는 것은 흥미로울 것입니다.
Dikran Marsupial

매개 변수 수가 둘 이상인 경우 그리드 검색을 실행할 수 없습니다. 그러나 단면의 크기는 치수에 의해 결정되기 때문에 Nelder-Mead도 마찬가지입니다.
Innuo

그래디언트 디센트의 경우와 같은 정도로만 문제에 추가 차원을 추가하면 단면에 하나의 추가 포인트 만 추가되므로 그래디언트 디센트와 같이 하이퍼 파라미터의 수는 대략 선형으로 조정됩니다. 나는 40 + 하이퍼 매개 변수와 함께 문제를 사용했으며 그라디언트 디센트보다 약간 느립니다 (많은 하이퍼 매개 변수를 사용하더라도 모델 선택에 과도하게 맞추는 경향이 있습니다).
Dikran Marsupial

0

여기입니다 알렉스 Smola의 블로그 항목 질문에 관련이

인용문은 다음과 같습니다.

[...] 데이터 세트에서 무작위로 1000 쌍 (x, x ')을 선택하여 그러한 모든 쌍의 거리를 계산하고 중앙값, 0.1 및 0.9 분위수를 취합니다. 이제 λ를 선택하여이 세 숫자의 역수를 구하십시오. 약간의 교차 검증을 통해 세 가지 중 어느 것이 가장 좋은지 알아낼 것입니다. 대부분의 경우 더 이상 검색 할 필요가 없습니다.

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