7-2 Kernels 본문

ML & DL/Coursera-ML

7-2 Kernels

eremo2002 2019. 2. 7. 21:29

SVM Complex nonlinear classifier 사용하기 위한 Kernel 대해 알아본다.










다음과 같은 data 분류하는 Non-linear decision boundary 있을 , 이와 같은 boundary 오른쪽과 같은 굉장히 복잡한 다항식을 사용한 모델일 것이며 이때 가설 h(x) 값이 0 이상이면 1, 그렇지 않으면 0으로 예측할 것이다. 그리고 x1, x2, x1*x2 feature f1, f2, f3 같이 다른 표기법으로 나타내어 h(x) 표현할 있다. 컴퓨터 비전 문제를 굉장히 복잡한 고차 다항식 모델을 사용하게 것이고 이러한 모델은 계산량이 매우 expensive하다는 단점이 있다.










그럼 f1, f2, f3 같은 새로운 feature 정의할 있는 방법은 무엇일까?

x1, x2 있을 (x0 무시함), 매뉴얼하게 선택한 3개의 지점을 l(1), l(2), l(3)라고 하면 feature f1, f2, f3 train data x 대해서 l(1), l(2), l(3)와의 similarity 정의할 있다. 여기서 Similarity kernel 이라고 부르며 구체적으로 exp()으로 정의한 커널을 Gaussian kernel이라고 부른다. smiliarity(x, l(i)) 대신 간단하게  k(x, l(i)) 나타낼 있다.










앞서 정의한 것처럼 f1 다음과 같을 sample x l(1) 매우 가깝다면 f1 값은 1 가까워질 것이다. 이와 반대로 x l(1) 멀리 떨어져 있다면 f1 값은 0 것이다. (1이면 유사도가 높은 , 0이면 유사도가 낮은 것으로 간주할 있음)

이와 같은 방식으로 l(2), l(3) 따라 f2, f3, 정의할 있다.









2개의 feature x1, x2 있고 l(1) 𝝈^2=1 다음과 같다고 해보자

그럼 f1 대한 그림은 다음과 같이 그려질 것이다. x1, x2 = 3, 5 f1 값은 1 것이고 해당 지점에서 멀어지면 f1 값은 0 가까워질 것이다.









앞선 그림에서 𝝈 값을 1 두었지만 𝝈 역시 가우시안 커널의 파라미터이기 때문에 𝝈 값에 따라 결과가 조금 달라질 있다. 만약 𝝈^2=0.5라면 중간 그림과 같은 결과를 얻을 있다. 𝝈^2 = 1 때와 비슷하지만 width 조금 narrow해졌다. 따라서 𝝈 값이 작아지면 landmark에서 조금만 벗어나도 f1 값이 급격하게 0 가까워진다. 반면 𝝈 값이 커지면 이러한 변화가 둔해지는 효과가 있다.










주어진 feature landmark 따라 h(x) 정의하고 해당 파라미터 𝜽값이 다음과 같을 , training example 분홍색 지점의 위치에 있다면 어떻게 될까? 주어진 sample x l(1) 매우 가깝기 때문에 f1 값은 1 가까울 것이고 l(2), l(3)와의 거리는 멀기 때문에 f2, f3 0 가까운 값이 것이다. 따라서 가설 h(x) 값은 0.5 되어 0이상이기 때문에 y=1 predict 것이다. 이번에는 하늘색 지점의 training sample 있을 , 해당 sample l(1), l(2), l(3) 모두 멀기 때문에 f1, f2, f3 값은 모두 0 가까울 것이다. 따라서 가설 h(x) 값은 -0.5 되어 y=0으로 predict 것이다.

 

이와 같은 방식으로 주어지는 training sample 대해 f1, f2, f3 값을 구할 있고 해당 가설 h(x) 값에 따라 y=0 or y=1 예측할 있다. 결과적으론 대략 빨간색과 같은 decision boundary 그려지게 된다. l(1) 혹은 l(2) 중에 하나와 가까우면 y=1, l(1), l(2) 두개의 landmark 지점으로부터 멀리 떨어져 있으면 y=0 된다.



















커널 SVM 적용하기 위한 new feature(landmark) 정의하는 방법과 bais, variance trade-off 대해 알아본다.









Feature x1, x2 대해 landmark 다음과 같을 커널 f = similarity( x, l(i) ) 값을 다음과 같이 정의하였고 이와 같은 커널을 가우시안 커널이라고 하였다. 이를 이용하여 새롭게 정의된 가설 h(x) 다음과 같을 h(x) 값이 0이상이면 y=1, 0미만이면 y=0으로 predict하였다.

 

그러면 landmark 값은 어떻게 정의해야 하는가?

가장 간단한 방법은 training data 위치한 지점을 landmark 사용하는 것이다. 따라서 m개의 sample 있으면 m개의 landmark 구할 있다.











m개의 sample 있을 m개의 landmark 구할 있었다. 이를 사용하여 validation data 혹은 test data 대한 f1, f2, f3 … 값을 구할 있으며 f0=1 설정하면 m+1차원의 벡터 f 정의할 있다. 나아가 벡터 f 사용하여 training data x 정의할 있다. 하나의 training sample 대하여 m개의 커널(f ) 구할 있으므로 f0 1 설정하면 x(i) m+1차원의 벡터 f(i) 정의할 있다.











이제 예측해야 하는 주어진 어떤 cross validation data 혹은 test data 있을 , 이를 가설 h(x)  𝜽' m+1차원의 벡터 f 곱으로 정의할 있다. 결과값에 따라 y=1 or y=0으로 예측하게 된다.

 

따라서 SVM에서 우리가 학습을 통해 최적화해나가는 파라미터 𝜽 값에 대한 학습 알고리즘은 다음과 같이 정의된다

원래 𝜽'x(i)였던 것을 위에서 x(i) 벡터 f(i) 정의한 것을 사용하여 𝜽'f(i) 바꾼 것이다.












다음으로 SVM 사용할 파라미터에 따른 Bias, Variance effect 다음과 같다.

C 1/람다 이므로 C 매우 값이라면 로지스틱 회귀에서의 람다 값이 매우 작은 값이라고 생각하면 된다. 따라서 C 매우 값이라면 Lower bias, High variance(over fitting) 된다.

반대로 C 매우 작은 값이라면 로지스틱 회귀에서의 람다 값이 매우 값이므로 High bias, Low variance(under fitting) 된다.

 

하나의 파라미터인 𝝈에 따라 Bias, Variance effect 달라질 있다.

𝝈값이 매우 크다면 앞에서 봤던 것처럼 feature 값에 따라 커널(f ) 값이 변화하는 정도가 둔할 것이다. 따라서 경우 High bias, Low variance 된다.

반대로  𝝈값이 매우 작은 값이라면 feature 값에 따라 커널 값이 변화하는 정도가 급격하게 변하게 되므로 경우 Low bias, High variance 된다.







'ML & DL > Coursera-ML' 카테고리의 다른 글

7-3 SVMs in Practice  (0) 2019.02.08
7-1 Large Margin Classification  (0) 2019.01.31
6-5 Data for machine learning  (0) 2019.01.29
6-4 Error Metrics for Skewed Classes  (0) 2019.01.29
6-3 Building a Spam Classifier  (0) 2019.01.29
Comments