https://www.coursera.org/learn/machine-learning/lecture/X8JoQ/reconstruction-from-compressed-representationhttps://www.coursera.org/learn/machine-learning/lecture/czmip/unsupervised-learning-introduction

Unsupervised Learning: Introduction

image

unsupervised learning은 labeled된 데이터가 없으므로 그냥 x 값만 있다. 


https://www.coursera.org/learn/machine-learning/lecture/93VPG/k-means-algorithm

K-Means Algorithm

image
image

k mean algorithm에서 k는 총그룹 갯수이다. 뮤 는 centroid를 말한다. x 에 가장 가가운 centroid index를 c라고 한다. 즉 x i 는 i 번째 데이터를 말하며 이에 가장 가까운 centroid index를 c i 라고 한다. 위 알고리즘의 과정을 설명하면 우선 m개의 data set에서 요소 하나씩 가져온다 이는 x i 이며 이 요소에 가장 가까운 cluster centroid index를 c i 에 저장한다. 그다음 단계는 총 갯수 k 인  mu 를 처음부터 순환하며 본인의 index와 같은 x 들의 평균값을 구하고 이를 새로운 mu 값으로 갱신한다. 즉 cluster centroid 위치를 갱신하는 것이다.


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

K-Means Optimization Objective

image
image


https://www.coursera.org/learn/machine-learning/lecture/drcBh/random-initialization

K-Means Random Initialization

image

k means 알고리즘을 사용하는데에는 최초 시작 centroids를 지정해 주어야 하는데 training set에서 무작위로 k 숫자 만큼 선택하는 것을 추천한다.

image


https://www.coursera.org/learn/machine-learning/lecture/Ks0E9/choosing-the-number-of-clusters

K-Means Choosing the Number of Clusters

사실 cluster ( 그룹 )의 숫자는 개발자가 지정해 주어야 한다. 자동으로 지정할수 있는 방법은 없다.

image

cluster의 숫자에 따른 cost 값을 볼때 왼쪽 그래프와 같이 급격한 변화가 있다면 그 지점의 값만큼의 cluster 를 만든다. 오른쪽과 그래프와 같이 특별한 변화가 없는경우 개발자가 적당히 선택해야 한다. 


https://www.coursera.org/learn/machine-learning/lecture/0EJ6A/motivation-i-data-compression

Motivation I: Data Compression

image

2d dimensions의 data를 1d 바꾸어서 단순화하는 작업이다. 녹색선을 z1이라고 보고 이에 대응하는 각 데이터를 이용한다.

image

3차원의 데이터를 2차원에 project해서 새로운 데이터를 만들고 이를 이용한다. 3차원의 데이터를 z1, z2 벡터로 이루어진 평면에 project해서 얻은 데이터를 이용한다는 의미이다.


https://www.coursera.org/learn/machine-learning/lecture/t6pYD/motivation-ii-visualization

Motivation II: Visualization

image

예를 들어 위와 같은 데이터가 있다고 했을 때 이를 한번에 알아 보기가 힘들가 그래서 여러차원의 데이터를 dimensionality reduction작업을 통해 2차원, 3차원의 데이터로 바꾸고 이를 시각화 하는 것을 Visualization 한다고 한다.

image
image

2차원으로 줄여서 시각화 한 예를 보여준다.


https://www.coursera.org/learn/machine-learning/lecture/GBFTt/principal-component-analysis-problem-formulation

Principal Component Analysis Problem Formulation

image

pca 는 어떤 형태가 되는 지 보여준다. 위의경우는 2d를 1d로 바꿔주는 과정이다.

image
image

위의 그림은 linear regression과 pca와의 차이를 보여주고 있다.


https://www.coursera.org/learn/machine-learning/lecture/ZYIPa/principal-component-analysis-algorithm

Principal Component Analysis Algorithm

image

pca 작업을 하기 전에 사전작업이 필요하다. 일단 mean normalization 작업을 통해서 각 데이터의 위치를 조정해서 전체 평균점이 0이 되게 한다. 위의 그림에서 첫번째 [ 안의 내용이 이에 해당한다.두번째 [ 의 작업은 feature scaling 작업에 대한 설명이다. 

image

위의 그림에서  u 는 벡터이고 z i 는 각각 새로 만들어진 축상의 값이다. 각각 2차원에서 1차원으로 3차원에서 2차원으로 차원이 낮아( dimension reduction ) 지는 것을 알수 있다.

image

pca 알고리즘은 두단계로 이루어져 있다. 1. covariance matrix를 구한다. x 한행과 x 한행의 transepose의 곱들을 다 더해서 행의 총갯수 m으로 나눈다. 

2. 1번에서 구해진 값을 sigma 변수에 넣고 이를 svd( singular value decomposition ) 또는 eig 함수에 넣어서 eigenvectors값을 구한다. 

위 그림에서 u1, u2 등등은 차원을 낮추면서 새로 생기게 되는 vector들이다. 위위그림에서 u1을 확인해볼것

image
image


https://www.coursera.org/learn/machine-learning/lecture/X8JoQ/reconstruction-from-compressed-representation

Reconstruction from Compressed Representation

image

왼쪽그림은 dimension reduction은 보여주고 오른쪽 그림은 reconstruction을 보여준다.


https://www.coursera.org/learn/machine-learning/lecture/S1bq1/choosing-the-number-of-principal-components

Choosing the Number of Principal Components

image

principal components의 숫자를 정한다는 이야기는 몇차원의 맞출것인가 하는 말과 같다.

우선 이를 결정하는 데 중요한 요소는 차원을 줄임에도 불구하고 데이터가 본래 가지고 있는 분별력을 유지해야 한다는 점이다. 즉 전체 분별정도 (전체 분산)과 projection error squares의 총합의 관계을 확인하면 되는데 여기서 한단계 더 나아가 평균값을 비교한다. 위의 그림에서 보듯이 m으로 나누어준다. 위의 예시를 보면 99% 분산 정도가 유지 되었다. 이렇게 볼수 있다. 보통 90% 이상이 유지 되는 것을 추천한다.

분산개념 이해를 위한 참고 자료) https://needjarvis.tistory.com/43

image

왼쪽의 방법을 통해 k = 1부터 원하는 값이 나올때까지 k값을 늘려가며 확인할수도 있다. 

또는 좀더 쉽게 오른쪽 처럼 svd 함수의 결과로 나오는 S matrix를 이용할수 도 있다.

S matrix 는 대각선만 값이 있고 나머지는 다 0을 요소로 갖는 특성을 가진다. 위 그림과 같이 s k까지 요소를 더한 값을 전체 s 요소들을 더한 값으로 나누고 결과값이 0.99 ( 또는 원하는 수치 ) 이상이 되는지 확인한다.

image


https://www.coursera.org/learn/machine-learning/lecture/RBqQl/advice-for-applying-pca

Advice for Applying PCA

overfitting을 보완하기 위해 pca를 쓰는 것은 좋지 못하다는 이야기이다. 그대신 regularization을 사용하기를 추천한다.

pca를 통해 약간 변화된 데이터를 이용하기 보다 본래 데이터를 이용해 우선 작업 시도하는 것을 추천한다.

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

vector

image

https://en.m.wikipedia.org/wiki/Magnitude_(mathematics)

Its magnitude or length is most commonly defined as its Euclidean norm (or Euclidean length) 

에 따르면 length 는 magnitude, Euclidean norm 다 같은 의미이다.









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

dot product

dot product는 a 벡터를 또 다른 벡터 b위에 procject 했을 때에 만들어지는 그 크기를 b의 크기에 곱한 결과 값과 같다.결과는 벡터가 아닌 실수값이 된다.  

image
image


image


image
image
image
image








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

cross product 

두개의 백터를 cross product하면 두 벡터에 수직하는 다른 차원의 벡터를 얻을수 있다. 

image
image
image

위 그림은 원래 gif 이미지 였으며 각 벡터의 위치변화에 따른 cross product 벡터의 모양을 보여준다. 

image
image
image

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

vector

image

https://en.m.wikipedia.org/wiki/Magnitude_(mathematics)

Its magnitude or length is most commonly defined as its Euclidean norm (or Euclidean length) 

에 따르면 length 는 magnitude, Euclidean norm 다 같은 의미이다.









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

dot product

dot product는 a 벡터를 또 다른 벡터 b위에 procject 했을 때에 만들어지는 그 크기를 b의 크기에 곱한 결과 값과 같다.결과는 벡터가 아닌 실수값이 된다.  

image
image


image


image
image
image
image








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

cross product 

두개의 백터를 cross product하면 두 벡터에 수직하는 다른 차원의 벡터를 얻을수 있다. 

image
image
image

위 그림은 원래 gif 이미지 였으며 각 벡터의 위치변화에 따른 cross product 벡터의 모양을 보여준다. 

image
image
image

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을 사용해야 하는지 보여주는 그림이다.

https://www.coursera.org/learn/machine-learning/lecture/OVM4M/deciding-what-to-try-next

Deciding What to Try Next

image

machine learning의 성능개선을 위해 해볼수 있는 조치들이다.

image


https://www.coursera.org/learn/machine-learning/lecture/yfbJY/evaluating-a-hypothesis

Evaluating a Hypothesis

image

overfitting을 방지하는 방법중의 하나로 데이터를 둘로 구분해서 한 부분( 70% )에 대한 Hypothesis (쎄타)값을 얻고 나머지 데이터에 적용해 보는 것이 있다.

image
image

https://www.coursera.org/learn/machine-learning/supplement/aFpD3/evaluating-a-hypothesis

Evaluating a Hypothesis

image
image


https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-validation-test-sets

Model Selection and Train/Validation/Test Sets

image

 여러가지의  model을 생각할수 있다. 모든 features를 넣은 모델도 생각할수 있지만 적은 features만으로도 더 좋은 성능을 보이는 model이 있을수 있으며 이를 사용한다. 각각 model의 J() 최소값을 비교해서 결정할수 있다. 다만 모든 data를 training set으로 사용하면 그 data에 최적화된 model을 구할수 있지만 다른 새로운 data에 잘 부합하는지 확인할 방법이 없다. 확인을 위해 또 다른 data가 추가로 필요하다. 그러므로 주어진 data를 training set, cross validation set, test set으로 구분해서 각각이용하는 것이 좋다.  

image
image

위의 그림에서는 cross validation J()값이 제일 작은 d4를 model을 사용하는 것을 보여준다.

https://www.coursera.org/learn/machine-learning/supplement/XHQqO/model-selection-and-train-validation-test-sets

Model Selection and Train/Validation/Test Sets

image


https://www.coursera.org/learn/machine-learning/lecture/yCAup/diagnosing-bias-vs-variance

Diagnosing Bias vs. Variance

image
image

cross validation J() 를 대신해서 test J() 사용해도 된다.   

image

https://www.coursera.org/learn/machine-learning/supplement/81vp0/diagnosing-bias-vs-variance

Diagnosing Bias vs. Variance

image
image


https://www.coursera.org/learn/machine-learning/lecture/4VDlf/regularization-and-bias-variance

Regularization and Bias/Variance

image
image

training J() – (이 함수에 lamda가 있는데 유의)를 통해 최적의 theta를 구한다 그리고 또 이를 cross validation J() –(이함수에는 lamda가 없음에 유의)에 대입해서 가장 낮은 손실값을 가지는 theta를 구한다. 또 이를 test J() –(이함수에는 lamda가 없음에 유의) 에 대입해 본다.

image

https://www.coursera.org/learn/machine-learning/supplement/JPJJj/regularization-and-bias-variance

Regularization and Bias/Variance

image
image


https://www.coursera.org/learn/machine-learning/lecture/Kont7/learning-curves

Learning Curves

image
image

cross validation J()와 training J()가 높은 error에서 만난다는 것에 유의한다. 위 그림 좌측 하단 참조

image

https://www.coursera.org/learn/machine-learning/supplement/79woL/learning-curves

Learning Curves

image
image


https://www.coursera.org/learn/machine-learning/lecture/zJTzp/deciding-what-to-do-next-revisited

Deciding What to Do Next Revisited

training J() , cross validation J() 의 결과를 보고 어떤 조치를 해야 하는지에 대한 방법 설명

image

각 상황에 어떤 조치를 취해야 하는지 위에 그림 하단을 참조한다.

image


https://www.coursera.org/learn/machine-learning/lecture/4h5X4/prioritizing-what-to-work-on

Error Analysis

image

andrew 교수는 지저분하고 거칠수도 있지만 간단히 사용할수 있는 알고리즘을 통해 프로젝트에 접근하는 것을 추천한다.

image

이 강의에서는 spam 방지 알고리즘을 예로 들고 있다. 에러 분석 과정에서는 cross validation set에서 error를 일으킨(예상값과 실제값이 다른경우) 데이타를 category별로 구분하고 그 갯수를 확인한다. 그리고 이를 통해 어떤 새로운 방법을 적용할지 생각해 낸다.

image

알고리즘을 보완해 줄것이라고 예상되는 방법을 실제 적용해 보고 결과 수치가 어떻게 변화하는지 확인한다.

https://www.coursera.org/learn/machine-learning/supplement/Z11RP/error-analysis

Error Analysis

image
image


https://www.coursera.org/learn/machine-learning/lecture/tKMWX/error-metrics-for-skewed-classes

Error Metrics for Skewed Classes

본래 발생 가능성이 낮은 경우를 예측하는 경우 몇번의 우연한 예측이 들어 맞아도 좋은 성능을 보이는 알고리즘으로 평가 될수 있는데 이는 정확하지 않는 평가이다. 이와 같은 경우를 skewed class라고 하며 이를 평가할때는 precision과 recall 수치를 이용한다.

image


https://www.coursera.org/learn/machine-learning/lecture/CuONQ/trading-off-precision-and-recall

Trading Off Precision and Recall

image

cancer 여부를 판단하는 알고리즘을 예로 들고 있다. 예를 들어 계산값 판단기준을 0.99 와 같이 높게 잡으면 알고리즘의 정확성은 올라가지만  ( precision 값이 높아짐 ) 많은 경우 이미 암에 걸린 사람도 아닌것으로 판단될 가능성이 있다( recall 값이 낮아짐 ). 반대로 기준값을 0.01과 같이 낮추면 대부분의 사람이 암으로 판단되므로 정확성은 낮아 지고 recall값은 높아지게 된다. 그러므로 적당한 기준값을 설정해야 하며 이는 precision과 recall 값 둘다 적당히 유지 되어야 한다. 두 값을 적절히 조합한 수치가 f1 score이며 이를 알고리즘 성능 판단기준으로 삼는다.

image

기준값을 결정하는 방법으로 F1 score를 이용할수 있다. 


https://www.coursera.org/learn/machine-learning/lecture/XcNcz/data-for-machine-learning

Data For Machine Learning

대부분의 경우에는 많은 양의 training set이 머신러닝의 성능을 높이는데 도움이 된다.그렇지만 꼭 많은 데이터가 있어야만 하는 것은 아니다. 

image

대개 사람이 바로 대답할수 있는 질문의 경우 많은 양의 데이터가 필요하지 않다. 위의 그림의 two 단어 채우기 같은 작업을 들수 있다. 

많은 features를 가지고 있는 linear regression, logistic regression 많은 hidden layer를 가지고 있는 neural network의 경우 많은 데이터가 필요하다. 

https://www.coursera.org/learn/machine-learning/lecture/OVM4M/deciding-what-to-try-next

Deciding What to Try Next

image

machine learning의 성능개선을 위해 해볼수 있는 조치들이다.

image


https://www.coursera.org/learn/machine-learning/lecture/yfbJY/evaluating-a-hypothesis

Evaluating a Hypothesis

image

overfitting을 방지하는 방법중의 하나로 데이터를 둘로 구분해서 한 부분( 70% )에 대한 Hypothesis (쎄타)값을 얻고 나머지 데이터에 적용해 보는 것이 있다.

image
image

https://www.coursera.org/learn/machine-learning/supplement/aFpD3/evaluating-a-hypothesis

Evaluating a Hypothesis

image
image


https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-validation-test-sets

Model Selection and Train/Validation/Test Sets

image

 여러가지의  model을 생각할수 있다. 모든 features를 넣은 모델도 생각할수 있지만 적은 features만으로도 더 좋은 성능을 보이는 model이 있을수 있으며 이를 사용한다. 각각 model의 J() 최소값을 비교해서 결정할수 있다. 다만 모든 data를 training set으로 사용하면 그 data에 최적화된 model을 구할수 있지만 다른 새로운 data에 잘 부합하는지 확인할 방법이 없다. 확인을 위해 또 다른 data가 추가로 필요하다. 그러므로 주어진 data를 training set, cross validation set, test set으로 구분해서 각각이용하는 것이 좋다.  

image
image

위의 그림에서는 cross validation J()값이 제일 작은 d4를 model을 사용하는 것을 보여준다.

https://www.coursera.org/learn/machine-learning/supplement/XHQqO/model-selection-and-train-validation-test-sets

Model Selection and Train/Validation/Test Sets

image


https://www.coursera.org/learn/machine-learning/lecture/yCAup/diagnosing-bias-vs-variance

Diagnosing Bias vs. Variance

image
image

cross validation J() 를 대신해서 test J() 사용해도 된다.   

image

https://www.coursera.org/learn/machine-learning/supplement/81vp0/diagnosing-bias-vs-variance

Diagnosing Bias vs. Variance

image
image


https://www.coursera.org/learn/machine-learning/lecture/4VDlf/regularization-and-bias-variance

Regularization and Bias/Variance

image
image

training J() – (이 함수에 lamda가 있는데 유의)를 통해 최적의 theta를 구한다 그리고 또 이를 cross validation J() –(이함수에는 lamda가 없음에 유의)에 대입해서 가장 낮은 손실값을 가지는 theta를 구한다. 또 이를 test J() –(이함수에는 lamda가 없음에 유의) 에 대입해 본다.

image

https://www.coursera.org/learn/machine-learning/supplement/JPJJj/regularization-and-bias-variance

Regularization and Bias/Variance

image
image


https://www.coursera.org/learn/machine-learning/lecture/Kont7/learning-curves

Learning Curves

image
image

cross validation J()와 training J()가 높은 error에서 만난다는 것에 유의한다. 위 그림 좌측 하단 참조

image

https://www.coursera.org/learn/machine-learning/supplement/79woL/learning-curves

Learning Curves

image
image


https://www.coursera.org/learn/machine-learning/lecture/zJTzp/deciding-what-to-do-next-revisited

Deciding What to Do Next Revisited

training J() , cross validation J() 의 결과를 보고 어떤 조치를 해야 하는지에 대한 방법 설명

image

각 상황에 어떤 조치를 취해야 하는지 위에 그림 하단을 참조한다.

image


https://www.coursera.org/learn/machine-learning/lecture/4h5X4/prioritizing-what-to-work-on

Error Analysis

image

andrew 교수는 지저분하고 거칠수도 있지만 간단히 사용할수 있는 알고리즘을 통해 프로젝트에 접근하는 것을 추천한다.

image

이 강의에서는 spam 방지 알고리즘을 예로 들고 있다. 에러 분석 과정에서는 cross validation set에서 error를 일으킨(예상값과 실제값이 다른경우) 데이타를 category별로 구분하고 그 갯수를 확인한다. 그리고 이를 통해 어떤 새로운 방법을 적용할지 생각해 낸다.

image

알고리즘을 보완해 줄것이라고 예상되는 방법을 실제 적용해 보고 결과 수치가 어떻게 변화하는지 확인한다.

https://www.coursera.org/learn/machine-learning/supplement/Z11RP/error-analysis

Error Analysis

image
image


https://www.coursera.org/learn/machine-learning/lecture/tKMWX/error-metrics-for-skewed-classes

Error Metrics for Skewed Classes

본래 발생 가능성이 낮은 경우를 예측하는 경우 몇번의 우연한 예측이 들어 맞아도 좋은 성능을 보이는 알고리즘으로 평가 될수 있는데 이는 정확하지 않는 평가이다. 이와 같은 경우를 skewed class라고 하며 이를 평가할때는 precision과 recall 수치를 이용한다.

image


https://www.coursera.org/learn/machine-learning/lecture/CuONQ/trading-off-precision-and-recall

Trading Off Precision and Recall

image

cancer 여부를 판단하는 알고리즘을 예로 들고 있다. 예를 들어 계산값 판단기준을 0.99 와 같이 높게 잡으면 알고리즘의 정확성은 올라가지만  ( precision 값이 높아짐 ) 많은 경우 이미 암에 걸린 사람도 아닌것으로 판단될 가능성이 있다( recall 값이 낮아짐 ). 반대로 기준값을 0.01과 같이 낮추면 대부분의 사람이 암으로 판단되므로 정확성은 낮아 지고 recall값은 높아지게 된다. 그러므로 적당한 기준값을 설정해야 하며 이는 precision과 recall 값 둘다 적당히 유지 되어야 한다. 두 값을 적절히 조합한 수치가 f1 score이며 이를 알고리즘 성능 판단기준으로 삼는다.

image

기준값을 결정하는 방법으로 F1 score를 이용할수 있다. 


https://www.coursera.org/learn/machine-learning/lecture/XcNcz/data-for-machine-learning

Data For Machine Learning

대부분의 경우에는 많은 양의 training set이 머신러닝의 성능을 높이는데 도움이 된다.그렇지만 꼭 많은 데이터가 있어야만 하는 것은 아니다. 

image

대개 사람이 바로 대답할수 있는 질문의 경우 많은 양의 데이터가 필요하지 않다. 위의 그림의 two 단어 채우기 같은 작업을 들수 있다. 

많은 features를 가지고 있는 linear regression, logistic regression 많은 hidden layer를 가지고 있는 neural network의 경우 많은 데이터가 필요하다.