Coursera Machine Learning(7): 벡터 머신(SVM), 커널(Kernel) 지원
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}×$
J(\theta) = -y (log \frac{1}{1 + e^{-\theta^{\mathrm{T}} x}}) - (1-y) log(1 - \frac{1}{1 + e^{-\theta^{\mathrm{T}} x}})
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의 과감한 해석은 매우 효과적이다.
결국 두 번째 항목만 남았고, 결국 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)} 달러입니다.
\theta^{\mathrm{T}} x^{(i)} = p^{(i)}・|| \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을 사용할 수 있다.
주의점
f1 = similarity(x,l^{(1)}) = exp(-\frac{||x - l^{(1)}||^2}{2 \sigma^2})
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
F: (x,y) \to K: (x, y, x^2 + y^2)
총결산
끝맺다
이번에는 SVM에 관한 것입니다.신경 네트워크와 마찬가지로 물류 회귀의 연장이지만 해석 목적 함수와 내핵을 이용한 새로운 설명 변수는 천재다.다들 좋아하는 거겠지.
다음번는 기념할 만한 첫 번째, 교사가 없는 학습(Unsupervised Learning) 차례다.K-Manas 및 PCA(Principal Component Analysis)를 취급합니다.
Reference
이 문제에 관하여(Coursera Machine Learning(7): 벡터 머신(SVM), 커널(Kernel) 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/katsu1110/items/43b69436723daf6d34e7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Coursera Machine Learning(7): 벡터 머신(SVM), 커널(Kernel) 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/katsu1110/items/43b69436723daf6d34e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)