Coursera Machine Learning(7): 벡터 머신(SVM), 커널(Kernel) 지원

학습기기에 가장 적합한 교재Machine Learning | Coursera로 꼽히는 것을 들었기 때문에 복습과 학습의 내용을 간단하게 요약하고 싶습니다.
7탄은 여러분이 가장 좋아하는 지원 벡터 머신(Support Vector Machine)입니다.누구나 이름을 알 수 있는 알고리즘이지만 실제로 무엇을 하고 있는지 대충 보고 싶다.
과거의 보도
Coursera Machine Learning(1): 머신러닝이란 무엇입니까?단회귀분석, 최급하강법, 목적함수
Coursera Machine Learning(2): 재회귀 분석, 정표, 정규 방정식
Coursera Machine Learning(3): 논리적 회귀, 정규화
Coursera Machine Learning(4): 신경 네트워크 시작
Coursera Machine Learning(5): 신경 네트워크 및 역방향 속성
Coursera Machine Learning(6): 기계 학습의 모델 평가(교차 심사, Bias & Variance, 부합률 & 재현율)

벡터 및 논리 회귀 지원(SVM & Logiistic Regression)


SVM의 대략적인 인상은 많은 사람들이 가지고 있다고 생각합니다.
"자꾸만 이윤(?)최대화... 분류할까요?

이런 느낌이에요.
SVM이 실제로 이윤을 어떻게 결정하는지는 신경 네트워크에서도 마찬가지지만 논리적 회귀와 비교하면 이해하기 쉽다.
'회송편 뭐였지?'이런 분들은 옛 소식의 앞부분을 보세요.
로직 복귀의 목적 함수 $J(\theta)$는 다음과 같습니다.

J(\theta) = -y (log \frac{1}{1 + e^{-\theta^{\mathrm{T}} x}}) - (1-y) log(1 - \frac{1}{1 + e^{-\theta^{\mathrm{T}} x}})

이 목적 함수를 최소화하기 위해 $z=\theta^{\mathrm{T}×$
  • $y=1달러일 경우 $z\g0달러
  • $y=0달러일 경우 $z\ll0달러
  • 이렇게 하려면 Theeta달러를 배워야 한다.
    SVM은 이를 서커스로 해석한다.
    "논리 함수를 너무 많이 사용하지 마세요. $y=1달러일 때도 $z\g0을 포기해야 해요. $y=1달러일 때 $z\ge1달러일 경우 그때 비용을 0달러로 바꿔요. 마찬가지로 $y=0달러일 때 $z\le-1달러일 경우 그때 비용을 0달러로 바꿔주세요."

    이 대담한 목적 함수 $cost{(y=1)}(z)$、$cost_{(y=0)}(z)$의 디자인에 따라 SVM이 가장 작은 목적 함수에 귀일화 인자 $\lambda를 포함해야 할 때는 다음과 같다.
    
    \frac{1}{m} \sum^m_{i=1} [y^{(i)} cost_1 (\theta^{\mathrm{T}} x^{(i)}) + (1 - y^{(i)}) cost_0 (\theta^{\mathrm{T}} x^{(i)})] + \frac{\lambda}{2m} \sum^n_{i=1} \theta^2_j
    
    
    변형이 좀 있어요.$m (데이터 샘플 수) 두 개가 중복되기 때문에, 정규화 인자 $\lambda 달러를 포함하고, $C =\lambda/m 달러라면
    
    C \sum^m_{i=1} [y^{(i)} cost_1 (\theta^{\mathrm{T}} x^{(i)}) + (1 - y^{(i)}) cost_0 (\theta^{\mathrm{T}} x^{(i)})] + \frac{1}{2} \sum^n_{i=1} \theta^2_j
    
    
    이렇게 다시 쓸 수 있어요.
    여기서 SVM의 과감한 해석은 매우 효과적이다.
  • $y^{(i)}=1달러일 때 $\theeta^{mathrm{T}x^{(i)}\ge1달러일 경우 $cost1 = 0$
  • $y^{(i)}=0달러일 때 $\theeta^{mathrm{T}x^{(i)}\le-1달러일 경우 $cost0 = 0$
  • 따라서 이 조건을 충족시키면 첫 번째 $C의 값은 0이 됩니다.
    결국 두 번째 항목만 남았고, 결국 SVM의 과제는 다음과 같은 최소였다.
    
    \frac{1}{2} \sum^n_{i=1} \theta^2_j \\
     s.t. \hspace{15pt} \theta^{\mathrm{T}}x^{(i)} \ge 1 \hspace{10pt} if \hspace{5pt}y^{(i)} = 1 \\
    \hspace{30pt} \theta^{\mathrm{T}}x^{(i)} \le -1 \hspace{10pt} if \hspace{5pt}y^{(i)} = 0
    
    $s.t.$는 such that(~가 됨)의 생략입니다.보기 쉬워졌네.

    경계 결정(Decision Boundary)


    사소한 수학적 측면을 떠나 SVM이 이윤을 어떻게 결정하는지 간단히 살펴본다.
    $\theta^{mathrm{T}×^{(i)} 달러는 벡터의 내적(Inner Product)을 계산하고 있기 때문에 $x^{(i)} 달러 벡터 $\theta 달러에 대한 벡터의 투영 길이를 $p^{(i)} 달러로 설정하면 아래와 같이 다시 쓸 수 있습니다.고등학교 수학에서 배운 내적의 정의와 같다.
    
    \theta^{\mathrm{T}} x^{(i)} = p^{(i)}・|| \theta ||
    
    
    이때 $||||theta|||$벡터는 $\theta의 길이를 나타냅니다.

    "내적의 길이는 x 길이이기 때문에 값은 정적일 수밖에 없다!"
    위의 그림 오른쪽처럼 투영의 착지점이 투영 벡터의 반대편에 있으면 값이 마이너스로 변한다.
    SVM은 각 데이터의 샘플 $x^{(i)} 달러입니다.
  • $y^{(i)}=1달러면 $p^{(i)}·|||theta||||||ge1달러
  • $y^{(i)}=0달러면 $p^{(i)}·|||theta|\le-1달러
  • $\theta를 계속 찾겠습니다.주의해야 할 것은
    
    \frac{1}{2} \sum^n_{i=1} \theta^2
    
    
    최소값을 받는 조건이기 때문에 $\theeta 자체가 크지 않습니다.
    따라서 투영의 길이가 $p^ (i)} 커져야 합니다.
    결과적으로 $\theta는 데이터 전파 방향을 관통하는 벡터가 되고 경계(Decision Boundary)는 $\theta의 시작점을 통해 교차하는 벡터가 됩니다.

    커널(Kernel)


    이전에는 선형 분류를 전제로 SVM도 논리 회귀와 신경 네트워크와 마찬가지로 비선형 분류를 할 수 있었다.그것을 가능하게 하는 것은 커널(Kernel)이다.내핵 하면 좀 무섭지만 수학에서는'가권 함수'라는 뜻만 나타낸다.
    커널은 원시 데이터 $x를 새로운 설명 변수 $f로 변환하는 도구입니다.이번에는 고스카네이션(고스시안 Kernel)을 사용하여 수중에 있는 데이터 $x와 $x$와 같은 차원의 어떤 점 $l^ {(1)} 달러(랜드마크)의 유사성을 계량화합니다.
    
    f1 = similarity(x,l^{(1)}) = exp(-\frac{||x - l^{(1)}||^2}{2 \sigma^2})
    
    
    새로운 설명 변수는 $f1달러입니다. $x와 $l^{(1)}달러가 가까워지면 $1이고, 멀어지면 $0에 가까운 값입니다.
    "그럼, 이것은 비선형 분류와 무슨 관계가 있습니까?"
    즉, 간단한 예는 3개의 랜드마크 (Landmark) 를 가져와, 핵으로 새로운 3개의 설명 변수인 $f1, f2, f3달러로 바꾸는 것이다.SVM
    
    y = 1 \hspace{15pt} if \hspace{15pt} \theta_0 + \theta_1 f_1 + \theta_2 f_2 + \theta_3 f_3 \ge 0
    
    \\
    
    y = 0 \hspace{15pt} if \hspace{15pt} \theta_0 + \theta_1 f_1 + \theta_2 f_2 + \theta_3 f_3 < 0
    
    
    이런 규칙에 따라 예측하다.대략적으로 말하면, $f1, f2, f3달러의 설명 변수가 증가했다1^2, x_2^2, x_1 x_2달러 증가와 설명 변수로 다항식 회귀.회다항식회 뭐였지? 과거의 보도 아래를 보세요.
     
    (출처: Wikipedia -- Kernel Method
    위의 그림은 위키백과의 내핵법 페이지를 인용했다.왼쪽 그림은 원시 데이터의 분포이다.경계가 선형으로 결정되면 빨간색과 파란색의 데이터를 분리할 수 없지만 경계가 원으로 결정되면 예쁘게 분리할 수 있다.거기서 내핵법을 사용해요.
    
    F: (x,y) \to K: (x, y, x^2 + y^2)
    
    
    그리고 원래 공간 ($F$) 에서 새 핵 공간 ($K$, 3차원) 으로 투영합니다.그렇다면 온라인성은 경계에서 아름다운 지역의 배당과 파란색을 결정할 수 있는 데이터를 결정한다.
    기존 공간에서 경계를 비선형으로 결정할 수 없더라도 투영 목표의 커널 공간에서 경계를 결정하는 것이 선형으로 바뀌어 SVM에서도 사용할 수 있다는 것이다.이처럼 커널링을 사용하면 비선형 분류도 SVM을 사용할 수 있다.
    주의점
  • 어떤 SVM의 라이브러리를 사용하든 SVM의 귀일화 매개 변수를 결정해야 합니다$CC달러는 $\lambda의 꼴찌이기 때문에 $C는 매우 작고 ($\lambda달러는 매우 크다), 저적정 (low variance, high bias) 은 쉬워지고, $C는 크고 ($\lambda달러는 작다) 과 초적정 (high variance, low bias) 은 쉬워진다.
  • 가우스 커널을 사용할 때 가우스(정적 분포) 면적을 나타내는 매개 변수 $\sigma를 결정해야 합니다.\sigma$크기가 클수록 정적 분포의 범위가 넓어지고 유사성이 쉽게 검출될수록 저적합(low variance, high bias)을 하기 쉽다.반면 $\sigma가 작으면 정적 분포의 범위가 작아져 유사성을 검출하기 어려워 과도하기 쉽다(high variance,low bias).
  • $l달러의 선택을 표시하고 원 데이터는 $x달러를 사용합니다.즉, $l^{(1)}=x^{(1)},l^{(m)} = x^{(m)}달러.결과, 새로운 설명 변수 $f$$$$m입니다.데이터 샘플 수는 $m(예: $m>10000달러)로 계산량이 커지므로 논리적 회귀를 사용하거나 커널이 없는 SVM을 사용하는 것이 좋습니다.

  • 총결산

  • SVM에서 경계를 지정하여 데이터 클래스 간의 여유(간격)를 최대화합니다.
  • 핵 사용을 통해 새로운 설명 변수 $f1, f2,...$비선형 분류를 할 수 있다.
  • 끝맺다


    이번에는 SVM에 관한 것입니다.신경 네트워크와 마찬가지로 물류 회귀의 연장이지만 해석 목적 함수와 내핵을 이용한 새로운 설명 변수는 천재다.다들 좋아하는 거겠지.
    다음번는 기념할 만한 첫 번째, 교사가 없는 학습(Unsupervised Learning) 차례다.K-Manas 및 PCA(Principal Component Analysis)를 취급합니다.

    좋은 웹페이지 즐겨찾기