https://www.coursera.org/learn/machine-learning/lecture/sHfVT/optimization-objective

large margin classifiers – SVM – Support Vector Machine Optimization Objective

image
image

logistic regression의 cost 함수를 분석하는 내용이다. y값이 1일때 ( 실제 값이 참일때 ) 쎄타 트랜스포스 x의 값은 0보다 커져야 cost 수치가 낮아지게 된다. 좌측하단 그래프 참조

y값이 0일때 ( 실제 값이 거짓일때 ) 쎄타 트랜스포스 x의 값은 커지면 cost 수치가 높아지게 된다. 우측하단 그래프 참조

image

SVM cost함수 유도 과정을 보여준다. 다항식 최소값을 만드는 x값은 다항식에 상수배한 다항식의 최소값 x와 같으므로 1/m은 의미가 없으므로 없앤다.

시그마 안에 있던 람다는 상수로 바뀌면서 시그마 앞의 c로 바뀐다.

image


https://www.coursera.org/learn/machine-learning/lecture/wrjaS/large-margin-intuition

large margin classifiers – SVM – Support Vector Machine 

Large Margin Intuition

image

c가 엄청큰 상수 100000 이라고 가정하고 y 즉 실제값이 1인경우 손실을 최소로 줄이려면 시그마 안의 뒷부분은 y가 1이므로 계산값이 0이 되어서 없어지고 앞부분만 남게 된다. 결구 최소로 되기 위헤서는 cost1 함수 계산값이 작아져야 한다는 이야기 이며 이에 해당하는 그래프는 좌측 그래프이기 때문에 z 값 즉 쎄타 트랜스포스 x의 값은 1보다 커져야 한다. y가 0일때도 같은 방법으로 어떤상황이 cost를 최소로 줄이는지 추측할수 있다.

image
image

large margin classifier의 특징은 구분선이 margin을 가진다는 점에 있다. 위 그림에서 보라색, 녹색의 구분선도 생각해 볼수 있지만 보다 이상적인 것은 검은 선이다. 이런 선이 유도 되기 위해 margin 개념이 추가되었다.

image

구분선을 보라색, 검은색으로 생각할 있다. c 상수가 커지면 bias된 그래프에 가까워진다 ( 각각의 쎄타값이 영향력이 적어진다는 의미, 그래프의 굴곡이 약해진다는 의미 ) 즉 c 상수값이 커지면 검은색에 가까워진다. 그래프 좌측 하단 요소에 둔감하게 반응하게 되기 때문이다. 

참고 사항으로 regularization에서의 lambda값이 커지면 cost를 줄이기 위해서는 각각의 쎄타값이 작아 져야 하므로 bias된 그래프에 가까워지며  각각의 쎄타값이 영향력이 적어진다. 또한 그래프의 굴곡이 약해진다. 

image


https://www.coursera.org/learn/machine-learning/lecture/3eNnh/mathematics-behind-large-margin-classification

large margin classifiers – SVM – Support Vector Machine
Mathematics Behind Large Margin Classification

참고 자료 1

project vector on another vector

아래 동영상은 하나의 벡터를 또다른 벡터위에 프로젝트했을때 나오는 벡터를 구하는 방법을 알려 준다. 결과적으로 스케일러가 아닌 벡터가 나오는 것에 유의한다.

https://youtu.be/fqPiDICPkj8

image

참고 자료 2

vector basic

https://www.mathsisfun.com/algebra/vectors.html

vector dot product

https://www.mathsisfun.com/algebra/vectors-dot-product.html

vector cross product

https://www.mathsisfun.com/algebra/vectors-cross-product.html

참고 자료 3

theta matrix와 decision boundary는 왜 수직인가에 대한 설명

https://www.quora.com/Support-Vector-Machines-Why-is-theta-perpendicular-to-the-decision-boundary

Think about decision boundary as a demarkation line (for simplification) on one side of which lie positive examples and on the other side of which the negative examples. On this very line the examples may be classified as either positive or negative. The difference between the kind (positive or negative) of examples becomes blurred or non-existent.

We know that the cost of SVM is a function of dot product of theta and examples vectors. The examples may have positive or negative projections on theta depending upon the kind they are. These projections on theta must be zero for any point lying on the decision boundary, otherwise, the example can be classified as either positive or negative.

This is only possible for the line (for simplification) that’s orthogonal to the theta vector. Similar to the fact that no shadow is formed when the Sun is directly overhead.

image

한 메트릭스 u 를 트랜스포스해서 벡터로 만들어 주고 또 다른 벡터 v 에 곱을 하게 되면 u1v1 + u2v2와 같이 된다. 또 이결과는 v vector를 u vector에 project했을때 생기를 벡터 p의 길이와 벡터 u의 곱과 같아 진다는 이야기를 보여준다. 이 과정을 이해하기 위해서는 위의 참고자료1 을 참조한다.  

image

logistic regression에서 사용되는 z 값은 theta transpose에 x 를 dot product한것을 볼수 있으며 이경우 조금 다른 관점에서 바라본다면 위의 그림 하단처럼 theta vector를 x vector에 projection해서 나온 p vector의 길이에 theta vector의 길이를 곱한것과 같다고 할수 있다. 

image

전 그림을 보면 p i 에 theta vector를 dot product한 것은 theta transpose 에 x dot product한것과 같다는 것을 알수 있다.

위의 그림 좌측 하단의 그래프로 보면 theta vector는 decision boundary와 수직을 이루고 있는데 이에 대한 설명은 참고자료3을 참조한다. 좌측하단의 그래프의경우 각각의 p 벡터의 길이가 작은 것을 알수 있다. 이런경우 p 길이 값이 작기 때문에 1 보다 커지기 위해서는 theta의 길이가 상대적으로 커져야 한다. 그러면 그림 맨위의 ½ theta square의 값이 커지기 때문에 cost 전체는 커지게 된다. 그러므로 성립할수 없는 그래프가 된다. 우측 하단의 그래프의 경우는 p 길이 값이 좌측보다는 크다 그렇기 때문에 상대적으로 theta 의 길이는 작아지게 되고 결과적으로 cost의 값이 작아지게 된다. 결국 large margin classification 알고리즘을 우측 하단의 그래프 방향으로 변해가려고 한게 된다. 


https://www.coursera.org/learn/machine-learning/lecture/YOMHn/kernels-i

large margin classifiers – SVM – Support Vector Machine

Kernels I

non linear classification의 방법으로 kernel을 이용한 방법을 소개한다. 

image

다항식을 이용해서 decision boundary를 만들수 있겠지만 복잡한 모양이 될수록 그에따른 계산에 필요한 자원이 많이 들어가게 된다 그러므로 새로운 방법으로 접근하는 것을 제시한다. 위의 각 x features 값들을 f로 바꾸어 생각하고 다음 그림들을 이해한다.

image

이 강의에서는 similarity 함수로 gaussian kernels을 이용한다. 다른 알고리즘을 이용할수 있다. l 값들은 landmarks이며 이들을 기준으로 x 값이 얼마 떨어져 있는지를 확인하고 그에 따른 유사값을 되돌리는 것이 similarity 함수가 하는 일이다. 

image

gaussian kernels의 경우 landmark에서 멀어지면 결과값은 0에 가까우진다. 그리고 가까워지면 1에 가까워지게 된다. 

image

gaussian 에서 시그마 값의 변화에 따라 similarity 범위가 변하는 것을 알수 있다.

image


https://www.coursera.org/learn/machine-learning/lecture/hxdcH/kernels-ii

large margin classifiers – SVM – Support Vector Machine

Kernels II

image

위 그림은 Kernels 를 이용한 방법에서 landmarks를 결정하는 방법을 설명한다. 실제 training set에서 데이터 하나 하나를 landmarks로 사용하면된다. 

image

위의 그림은 x features가 들어있는 vector에서 각각의 요소를 similarity kernel를 거쳐서 나온 값들을 다시 vector로 정리한 것을 보여준다. 

image

kernel을 이용한 cost 계산법을 보여 준다.

image


https://www.coursera.org/learn/machine-learning/lecture/sKQoJ/using-an-svm

large margin classifiers – SVM – Support Vector Machine
Using An SVM

앤드류 잉 교수는 svm 구현을 처음부터 다 하는 것보다 기존의 펙키지를 사용하기를 추천한다. 기존 팩키지를 사용하더라도 parameter c , kernel의 종류는 개발자가 선택해야한다. 

많이 사용하는 kernel로는 no kernel ( linear kernel ), gaussian kernel 을 들수 있다. gaussian kernel을 사용하는 경우 시그마 값을 개발자가 선택해 주어야 한다. features수가 많고 training set의 갯수가 작은 경우는 no kernel을 추천, features수가 작고 data갯수가 많은 경우 gaussian kernel을 추천한다.

gaussian kernel사용시 그리 하단과 같이 값의 범위가 상당히 큰경우 조정이 필요하다. 특정 feature가 과도하게 영향을 미치는 것을 방지하기 위해서이다.

위의 그림은 다른 종류의 kernel을 보여주고 있다.

어떤 경우에 logistic regression을 사용해야 하는지 어떤 경우에 svm을 사용해야 하는지 보여주는 그림이다.

https://www.coursera.org/learn/machine-learning/lecture/sHfVT/optimization-objective

large margin classifiers – SVM – Support Vector Machine Optimization Objective

image
image

logistic regression의 cost 함수를 분석하는 내용이다. y값이 1일때 ( 실제 값이 참일때 ) 쎄타 트랜스포스 x의 값은 0보다 커져야 cost 수치가 낮아지게 된다. 좌측하단 그래프 참조

y값이 0일때 ( 실제 값이 거짓일때 ) 쎄타 트랜스포스 x의 값은 커지면 cost 수치가 높아지게 된다. 우측하단 그래프 참조

image

SVM cost함수 유도 과정을 보여준다. 다항식 최소값을 만드는 x값은 다항식에 상수배한 다항식의 최소값 x와 같으므로 1/m은 의미가 없으므로 없앤다.

시그마 안에 있던 람다는 상수로 바뀌면서 시그마 앞의 c로 바뀐다.

image


https://www.coursera.org/learn/machine-learning/lecture/wrjaS/large-margin-intuition

large margin classifiers – SVM – Support Vector Machine 

Large Margin Intuition

image

c가 엄청큰 상수 100000 이라고 가정하고 y 즉 실제값이 1인경우 손실을 최소로 줄이려면 시그마 안의 뒷부분은 y가 1이므로 계산값이 0이 되어서 없어지고 앞부분만 남게 된다. 결구 최소로 되기 위헤서는 cost1 함수 계산값이 작아져야 한다는 이야기 이며 이에 해당하는 그래프는 좌측 그래프이기 때문에 z 값 즉 쎄타 트랜스포스 x의 값은 1보다 커져야 한다. y가 0일때도 같은 방법으로 어떤상황이 cost를 최소로 줄이는지 추측할수 있다.

image
image

large margin classifier의 특징은 구분선이 margin을 가진다는 점에 있다. 위 그림에서 보라색, 녹색의 구분선도 생각해 볼수 있지만 보다 이상적인 것은 검은 선이다. 이런 선이 유도 되기 위해 margin 개념이 추가되었다.

image

구분선을 보라색, 검은색으로 생각할 있다. c 상수가 커지면 bias된 그래프에 가까워진다 ( 각각의 쎄타값이 영향력이 적어진다는 의미, 그래프의 굴곡이 약해진다는 의미 ) 즉 c 상수값이 커지면 검은색에 가까워진다. 그래프 좌측 하단 요소에 둔감하게 반응하게 되기 때문이다. 

참고 사항으로 regularization에서의 lambda값이 커지면 cost를 줄이기 위해서는 각각의 쎄타값이 작아 져야 하므로 bias된 그래프에 가까워지며  각각의 쎄타값이 영향력이 적어진다. 또한 그래프의 굴곡이 약해진다. 

image


https://www.coursera.org/learn/machine-learning/lecture/3eNnh/mathematics-behind-large-margin-classification

large margin classifiers – SVM – Support Vector Machine
Mathematics Behind Large Margin Classification

참고 자료 1

project vector on another vector

아래 동영상은 하나의 벡터를 또다른 벡터위에 프로젝트했을때 나오는 벡터를 구하는 방법을 알려 준다. 결과적으로 스케일러가 아닌 벡터가 나오는 것에 유의한다.

https://youtu.be/fqPiDICPkj8

image

참고 자료 2

vector basic

https://www.mathsisfun.com/algebra/vectors.html

vector dot product

https://www.mathsisfun.com/algebra/vectors-dot-product.html

vector cross product

https://www.mathsisfun.com/algebra/vectors-cross-product.html

참고 자료 3

theta matrix와 decision boundary는 왜 수직인가에 대한 설명

https://www.quora.com/Support-Vector-Machines-Why-is-theta-perpendicular-to-the-decision-boundary

Think about decision boundary as a demarkation line (for simplification) on one side of which lie positive examples and on the other side of which the negative examples. On this very line the examples may be classified as either positive or negative. The difference between the kind (positive or negative) of examples becomes blurred or non-existent.

We know that the cost of SVM is a function of dot product of theta and examples vectors. The examples may have positive or negative projections on theta depending upon the kind they are. These projections on theta must be zero for any point lying on the decision boundary, otherwise, the example can be classified as either positive or negative.

This is only possible for the line (for simplification) that’s orthogonal to the theta vector. Similar to the fact that no shadow is formed when the Sun is directly overhead.

image

한 메트릭스 u 를 트랜스포스해서 벡터로 만들어 주고 또 다른 벡터 v 에 곱을 하게 되면 u1v1 + u2v2와 같이 된다. 또 이결과는 v vector를 u vector에 project했을때 생기를 벡터 p의 길이와 벡터 u의 곱과 같아 진다는 이야기를 보여준다. 이 과정을 이해하기 위해서는 위의 참고자료1 을 참조한다.  

image

logistic regression에서 사용되는 z 값은 theta transpose에 x 를 dot product한것을 볼수 있으며 이경우 조금 다른 관점에서 바라본다면 위의 그림 하단처럼 theta vector를 x vector에 projection해서 나온 p vector의 길이에 theta vector의 길이를 곱한것과 같다고 할수 있다. 

image

전 그림을 보면 p i 에 theta vector를 dot product한 것은 theta transpose 에 x dot product한것과 같다는 것을 알수 있다.

위의 그림 좌측 하단의 그래프로 보면 theta vector는 decision boundary와 수직을 이루고 있는데 이에 대한 설명은 참고자료3을 참조한다. 좌측하단의 그래프의경우 각각의 p 벡터의 길이가 작은 것을 알수 있다. 이런경우 p 길이 값이 작기 때문에 1 보다 커지기 위해서는 theta의 길이가 상대적으로 커져야 한다. 그러면 그림 맨위의 ½ theta square의 값이 커지기 때문에 cost 전체는 커지게 된다. 그러므로 성립할수 없는 그래프가 된다. 우측 하단의 그래프의 경우는 p 길이 값이 좌측보다는 크다 그렇기 때문에 상대적으로 theta 의 길이는 작아지게 되고 결과적으로 cost의 값이 작아지게 된다. 결국 large margin classification 알고리즘을 우측 하단의 그래프 방향으로 변해가려고 한게 된다. 


https://www.coursera.org/learn/machine-learning/lecture/YOMHn/kernels-i

large margin classifiers – SVM – Support Vector Machine

Kernels I

non linear classification의 방법으로 kernel을 이용한 방법을 소개한다. 

image

다항식을 이용해서 decision boundary를 만들수 있겠지만 복잡한 모양이 될수록 그에따른 계산에 필요한 자원이 많이 들어가게 된다 그러므로 새로운 방법으로 접근하는 것을 제시한다. 위의 각 x features 값들을 f로 바꾸어 생각하고 다음 그림들을 이해한다.

image

이 강의에서는 similarity 함수로 gaussian kernels을 이용한다. 다른 알고리즘을 이용할수 있다. l 값들은 landmarks이며 이들을 기준으로 x 값이 얼마 떨어져 있는지를 확인하고 그에 따른 유사값을 되돌리는 것이 similarity 함수가 하는 일이다. 

image

gaussian kernels의 경우 landmark에서 멀어지면 결과값은 0에 가까우진다. 그리고 가까워지면 1에 가까워지게 된다. 

image

gaussian 에서 시그마 값의 변화에 따라 similarity 범위가 변하는 것을 알수 있다.

image


https://www.coursera.org/learn/machine-learning/lecture/hxdcH/kernels-ii

large margin classifiers – SVM – Support Vector Machine

Kernels II

image

위 그림은 Kernels 를 이용한 방법에서 landmarks를 결정하는 방법을 설명한다. 실제 training set에서 데이터 하나 하나를 landmarks로 사용하면된다. 

image

위의 그림은 x features가 들어있는 vector에서 각각의 요소를 similarity kernel를 거쳐서 나온 값들을 다시 vector로 정리한 것을 보여준다. 

image

kernel을 이용한 cost 계산법을 보여 준다.

image


https://www.coursera.org/learn/machine-learning/lecture/sKQoJ/using-an-svm

large margin classifiers – SVM – Support Vector Machine
Using An SVM

앤드류 잉 교수는 svm 구현을 처음부터 다 하는 것보다 기존의 펙키지를 사용하기를 추천한다. 기존 팩키지를 사용하더라도 parameter c , kernel의 종류는 개발자가 선택해야한다. 

많이 사용하는 kernel로는 no kernel ( linear kernel ), gaussian kernel 을 들수 있다. gaussian kernel을 사용하는 경우 시그마 값을 개발자가 선택해 주어야 한다. features수가 많고 training set의 갯수가 작은 경우는 no kernel을 추천, features수가 작고 data갯수가 많은 경우 gaussian kernel을 추천한다.

gaussian kernel사용시 그리 하단과 같이 값의 범위가 상당히 큰경우 조정이 필요하다. 특정 feature가 과도하게 영향을 미치는 것을 방지하기 위해서이다.

위의 그림은 다른 종류의 kernel을 보여주고 있다.

어떤 경우에 logistic regression을 사용해야 하는지 어떤 경우에 svm을 사용해야 하는지 보여주는 그림이다.