선형 커널을 사용하는 SVM에서 C의 영향은 무엇입니까?


134

현재 데이터를 분류하기 위해 선형 커널과 함께 SVM을 사용하고 있습니다. 훈련 세트에 오류가 없습니다. 매개 변수 ( )에 여러 값을 시도했습니다 . 테스트 세트의 오류는 변경되지 않았습니다.C105,,102

지금은 궁금해 :이 오류가 루비 바인딩으로 인한 위해 libsvm내가 (사용하고 RB-libsvm을 ) 또는 이것이 이론적으로 설명 할 ?

매개 변수 항상 분류기의 성능을 변경 해야합니까 ?C


답이 아닌 주석 : 와 같이 두 용어의 합계를 최소화하는 모든 프로그램 은 두 용어가 무엇인지 말해야합니다. 그것들이 어떻게 균형을 이루는 지 볼 수 있습니다. (두 SVM의 용어를 직접 계산에 도움이 필요한 경우, 별도의 질문을하려고 당신은 최악의 분류 점의 몇 봤어 당신이 당신과 같은 문제를 게시 할 수 없습니다.??)|w|2+Cξi,
데니스

답변:


136

C 매개 변수는 SVM 최적화에 각 학습 예제를 잘못 분류하지 않으려는 정도를 알려줍니다. C 값이 큰 경우, 하이퍼 플레인이 모든 트레이닝 포인트를 올바르게 분류하는 데 더 나은 작업을 수행하면 최적화에서 더 작은 마진 하이퍼 플레인을 선택합니다. 반대로, C 값이 매우 작 으면 옵티마이 저가 하이퍼 플레인이 더 많은 포인트를 잘못 분류하더라도 더 큰 마진 분리 하이퍼 플레인을 찾습니다. 아주 작은 C 값의 경우 훈련 데이터를 선형으로 분리 할 수있는 경우에도 잘못 분류 된 예제를 가져와야합니다.


1
C는 목적 함수에 대한 오 분류의 영향을 결정한다는 것을 이해합니다. 목적 함수는 정규화 용어와 오 분류 비율의 합계입니다 ( en.wikipedia.org/wiki/Support_vector_machine#Soft_margin 참조 ). C를 변경해도 이것이 목표 함수의 최소값에 영향을 미치지 않습니다. 정규화 기간이 항상 매우 작다는 것을 의미 할 수 있습니까?
alfa

3
데이터 세트에서 최적화가 빠르면 더 넓은 범위의 C 값, 아마도 10 ^ [-5, ..., 5] 이상을 시도하여보다 합리적인 것으로 보이는 것이 있는지 확인하는 것이 좋습니다. C가 변화함에 따라 훈련 오류와 최소 비용의 가치가 변해야한다. 또한 데이터의 규모가 극단적입니까? 일반적으로 데이터를 축소 할 때는 최적의 C 매개 변수가 커야하고 그 반대도 마찬가지입니다. 따라서 기능에 대한 값이 매우 작은 경우 가능한 C 값에 대해 매우 큰 값을 포함해야합니다. 위의 어느 것도 할 수없는 경우에, 나는 것 같아요 문제가 루비 바인딩에
마크 떨고

3
균형 잡힌 정확도를 0.5 (그냥 추측)에서 0.86으로 변경하는 것은 나에게 거의 영향을 미치지 않는 것처럼 들립니다. Marc가 제안한 것처럼 C에 대한 더 작은 값의 그리드를 조사하는 것이 좋습니다. 그러나 당신이 제공 한 결과는 상당히 정상적인 행동 인 것 같습니다. 과도한 피팅으로 인해 C가 무한대 인 경향이 있기 때문에 오류가 다시 되돌아 올 것으로 예상 할 수 있지만,이 경우에는 큰 문제가되지 않습니다. 균형 잡힌 오류에 관심이 있고 훈련 세트에 50:50 분할이 없으면 더 나은 결과를 얻을 수 있습니다.
Dikran Marsupial

2
... 양수 클래스와 음수 클래스에 속하는 패턴에 대해 서로 다른 C 값을 사용하여 (각 클래스에 속하는 패턴의 비율을 변경하기 위해 데이터를 리샘플링하는 것과 동일합니다).
Dikran Marsupial 2016

2
C = 10 ^ 0에 도달하면 SVM이 이미 모든 훈련 데이터를 올바르게 분류하고 있으며,이 경우 C를 더 크게 만드는 지원 벡터는 바인딩되지 않습니다 (알파는 C와 같음). 솔루션에 영향을 미치지 않습니다.
Dikran Marsupial 2016

152

SVM에서 최소 마진이 가장 큰 하이퍼 플레인과 가능한 한 많은 인스턴스를 올바르게 분리하는 하이퍼 플레인을 검색합니다. 문제는 항상 두 가지를 모두 얻을 수는 없다는 것입니다. c 매개 변수는 후자에 대한 욕구가 얼마나 큰지를 결정합니다. 이것을 설명하기 위해 아래에 작은 예를 그렸습니다. 왼쪽에는 c가 낮아서 최소 마진 (보라색)이 커집니다. 그러나이를 위해서는 올바른 분류에 실패한 파란색 원 이상 치를 무시해야합니다. 오른쪽에는 높은 c가 있습니다. 이제 특이 치를 무시하지 않으므로 훨씬 작은 마진으로 끝납니다.

여기에 이미지 설명을 입력하십시오

그렇다면이 분류기 중 어느 것이 가장 좋습니까? 그것은 당신이 예측할 미래의 데이터가 무엇인지에 달려 있으며, 대부분은 물론 그 사실을 모릅니다. 미래 데이터가 다음과 같은 경우 :

큰 c가 최고입니다 그런 다음 큰 c 값을 사용하여 배운 분류 기가 가장 좋습니다.

반면에 미래 데이터가 다음과 같은 경우 :

낮은 c가 가장 좋습니다 그런 다음 낮은 c 값을 사용하여 배운 분류 기가 가장 좋습니다.

데이터 세트에 따라 c를 변경하면 다른 초평면이 생성되거나 생성되지 않을 수 있습니다. 이 경우 않는 다른 초평면을 생산, 그것은 당신의 분류 출력 다른 클래스가 특정 데이터에 대한 당신이 분류하는 데 사용한 것을 의미하지는 않습니다. Weka는 SVM에 대한 다양한 설정으로 데이터를 시각화하고 재생하는 데 유용한 도구입니다. 데이터의 모양과 c 값을 변경해도 분류 오류가 변경되지 않는 이유를 더 잘 이해할 수 있습니다. 일반적으로 교육 인스턴스가 적고 속성이 많으면 데이터를 선형으로 쉽게 분리 할 수 ​​있습니다. 또한 보이지 않는 새로운 데이터가 아니라 훈련 데이터를 평가한다는 사실이 분리를 더 쉽게 만듭니다.

어떤 종류의 데이터에서 모델을 배우려고합니까? 얼마나 많은 데이터? 우리가 볼 수 있습니까?


4
나는 3 년 이상 데이터를 건드리지 않았다. 그것은 매우 고차원적이고 시끄러워서 게시 할 수 없습니다. 질문에 이미 답변되었지만 시각화가 매우 훌륭하고 직관적이라고 생각합니다.
alfa

대박. 당신은 또한 감마 가치에 대한 설명이 있습니까?
MonsterMMORPG

2
감마 매개 변수는 가우스 커널 함수에 사용됩니다. 커널 기능은 원래 기능을 다른 공간으로 변환하는 효율적인 방법으로 볼 수 있습니다. 새 기능 공간에서 분리 하이퍼 플레인은 원래 기능 공간에서 선형 일 필요는 없습니다. 예를 들어, 원래 피쳐 공간에서 데이터 포인트의 2 차원 위치를 사용하여 맵에서 일부 마커까지의 거리를 나타내는 새 피쳐를 계산할 수 있습니다. 이 새로운 기능을 사용하면 결정 경계가 마커 주위에 원을 형성하는 비선형 분류기 (원래 공간)를 만들 수 있습니다.
Kent Munthe Caspersen

@KentMuntheCaspersen이 C에 대한 설명이 정확하지 않습니까? "통계 학습 입문"책에서 말하는 것과 반대입니다.
diugalde

2
@diugalde 책에서 내 설명과 정확히 다른 점을 인용 할 수 있습니까? 나는 항상 c를 오 분류의 비용으로 생각한다 (분류에서 c에 의해 기억하기 쉽다). 이런 식으로 c가 높을수록 오 분류 비용이 높아 알고리즘이 모든 데이터 요소를 완벽하게 분리하려고합니다. 이상 값을 사용하면 이것이 항상 가능한 것은 아니며 항상 좋은 결과를 얻지는 못할 것입니다. 이것이 낮아 지거나 소개되는 좋은 이유입니다. c.
켄트 Munthe Caspersen은

26

C는 기본적으로 정규화 매개 변수로, 훈련 데이터에서 낮은 오류를 달성하는 것과 가중치의 표준을 최소화하는 것 사이의 절충을 제어합니다. 릿지 회귀 분석에서 리지 매개 변수와 유사합니다 (실제로 선형 SVM과 릿지 회귀간에 성능 또는 이론에는 거의 차이가 없으므로, 일반적으로 관찰보다 더 많은 속성이있는 경우 후자 또는 커널 릿지 회귀를 사용합니다).

구조적 위험 최소화 (기본 접근 방식의 핵심 원칙)는 C의 튜닝을 통해 당사자가 구현하므로 C를 올바르게 튜닝하는 것이 SVM 사용에서 모범 사례의 필수 단계입니다. 매개 변수 C는 표준의 상한을 강제합니다. 가중치는 C에 의해 색인화 된 중첩 된 가설 클래스 세트가 있음을 의미합니다. C를 증가 시키면 가설 클래스의 복잡성이 증가합니다 (C를 약간 증가 시키면 이전에 할 수있는 모든 선형 모델을 여전히 형성 할 수 있음) 또한 허용 가능한 가중치의 상한선을 늘리기 전에는 불가능했던 것들도 있습니다). 최대 마진 분류를 통해 SRM을 구현할뿐만 아니라 C를 제어하여 가설 클래스의 복잡성을 제한함으로써 구현됩니다.

슬프게도 C를 설정하는 방법을 결정하는 이론은 현재 잘 발달되어 있지 않기 때문에 대부분의 사람들은 교차 검증을 사용하는 경향이 있습니다 (무슨 일을하는 경우).


좋아, 나는 지금 C의 의미를 이해한다고 생각한다. :)
alfa

2
그러나 C가 정규화 매개 변수 인 경우 일반적으로 말하면 정규화를 수행하여 과적 합을 완화하기 위해 (예 :보다 일반적인 모델을 작성) 높은 C가 과적 합을 증가시키는 이유는 무엇입니까?
user1603472

2
C는 정규화 매개 변수이지만 기본적으로 정규화 항 (마진 비트)이 아닌 데이터 불일치 항 (슬랙 변수의 합)에 첨부되므로 C의 값이 클수록 정규화가 적습니다. 또는 rgularisation 매개 변수의 일반적인 표현을 1 / C로 볼 수 있습니다.
Dikran Marsupial

8

C는 분류 오류를 보이지 않는 데이터로 일반화하는 기능인 낮은 교육 오류와 낮은 테스트 오류 간의 균형을 제어하는 ​​정규화 매개 변수입니다.

선형 SVM의 목적 함수를 고려하십시오 : min | w | ^ 2 + C∑ξ. C가 너무 크면 최적화 알고리즘이 | w | 각 훈련 예제를 올바르게 분류하려고하는 초평면으로 이어진다. 이렇게하면 분류기의 일반화 속성이 손실됩니다. 반면에 C가 너무 작 으면 목적 함수에 | w | 많은 훈련 오류가 발생할 것입니다.

아래 그림은이를 시각화하는 데 도움이 될 수 있습니다. C = 10000000 인 선형 SVM 분류기C = 0.001 인 선형 SVM 분류기


나는 당신의 음모를 정말로 이해하지 못합니다. 설명 할 수 있습니까?
alfa

1
@alfa : 플롯을 표시하려는 의도는 다음과 같습니다. 1) C가 너무 크면 (플롯 1) 분류 기가 적합합니다. 즉, 각 교육 데이터 포인트를 정확하게 분류하려고 시도합니다. 도표 1은 거의 모든 훈련 점이 올바르게 분류되었음을 보여줍니다. 2) 반면에 C가 너무 적 으면 (플롯 2) 분류 기가 적합합니다. 플롯 2는 언더 핏 분류기를 보여줍니다. 포인트를 각 클래스로 분리하지는 않습니다. 도움이 되었기를 바랍니다.
deerishi

즉, x 축과 y 축에는 서로 다른 두 가지 기능이 있습니다. "데이터 세트 길이"와 "평균 합"이라는 레이블이 약간 혼란 스럽습니까?
alfa

두 경우 모두 C의 올바른 선택이 어떻게 도움이되는지 보는 것이 흥미로울 것입니다.
alfa

2
나는 C = 10000000이 나쁜 선택임을 알지 못하고 데이터 세트가 그것을 입증하는 것이 옳지 않다고 생각합니다. 아마도 분리 초평면의 반대쪽에 몇 개의 특이 치가있는 데이터 세트가 더 좋을까요?
alfa

4

위의 답변은 훌륭합니다. 귀하의 질문을주의 깊게 읽은 후 간과 할 수있는 두 가지 중요한 사실이 있습니다.

  1. 당신은 선형 커널을 사용하고 있습니다
  2. "훈련 세트에 오류가 없기 때문에"훈련 데이터를 선형으로 분리 할 수 ​​있습니다.

두 가지 사실을 감안할 때 C 값이 적절한 범위 내에서 변경되면 최적 초평면은 마진 (지지 벡터에 의해 형성된 간격) 내에서 소량 만 무작위로 이동합니다.

직관적으로 훈련 데이터의 마진이 적거나 마진 내에 테스트 데이터 포인트가없는 경우 마진 내에서 최적의 초평면 이동은 테스트 세트의 분류 오류에 영향을 미치지 않습니다.

그럼에도 불구하고 C = 0을 설정하면 SVM은 오류를 무시하고 가중치 (w)의 제곱합을 최소화하려고 시도합니다. 테스트 세트에서 다른 결과를 얻을 수 있습니다.


2

C 매개 변수는 특이 치를 제어하는 ​​데 사용됩니다. 낮은 C는 더 많은 특이 치를 허용하고 높은 C는 더 적은 특이 치를 허용한다는 것을 의미합니다.


1

높은 C (비용)는 오 분류 비용이 증가 함을 의미합니다. 이는 훈련 세트에서 관찰이 잘못 분류되는 것을 피하기 위해 유연한 커널이 더 구불 구불하게 될 것임을 의미합니다.

커널이하는 경우 구불 구불 한 새로운 데이터를 예측할 때 모델이 잘 일반화되지 않습니다.

커널이 직진 이라면 새 데이터를 예측할 때 모델이 잘 일반화되지 않습니다.

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