Optimization Objective
Logistic regression 대안
- Logitcis regression cost: −(yloghθ(x)+(1−y)log(1−hθ(x)))
- y=1일 때 θTx≫0이면 loss가 0으로 수렴한다.
- y=0일 때 θTx≪0이면 loss가 0으로 수렴한다.
- Support vector machine cost: y(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))
- Hinge loss
L(w)=m=1∑Mmax(0,1−ymy^(xm,w))
- if ym=1,cost1
- 1 이상의 값으로 예측한 경우 loss는 0이어야 한다.
max(0,1−1×1.xx)=0
- 1 이하의 값으로 예측한 경우 loss는 0보다 커야한다.
max(0,1−1×0.xx)>0
- if ym=−1,cost0
- -1 이하의 값으로 예측한 경우 loss는 0이어야 한다.
max(0,1+1×(−1.xx))=0
- -1 이상의 값으로 예측한 경우 loss는 0보다 커야한다.
max(0,1+1×(−0.xx))>0
minθCi=1∑my(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))+21i=1∑nθj2
Large Margin Intuition
- y=1일 때 θTx≥1
- cost1=max(0,1−y^)
- 예측값이 1보다 작으면 loss가 커진다.
- 정답에 가까워지기 위해서 예측값은 1보다 커야 한다.
- y=0일 때 θTx≤−1
- cost0=max(0,1+y^)
- 예측값이 -1보다 크면 loss가 커진다.
- 정답에 가까워지기 위해서 예측값은 -1보다 작아야 한다.
- logistic regression과 달리 decision boundary는 다양할 수 있다.
- 분류만 잘 한다고 해서 좋은 boundary인지는 알 수 없다.
- data는 잘 표현하지만 다른 input이 들어왔을 때 적절하지 않을 수 있다.
- SVM은 margin을 최대화하는 decision boundary를 찾는다.
SVM Decision Boundary
- y=1일 때 θTx≥1이고 y=0일 때 θTx≤−1을 만족하면 margin을 고려하여 정규화를 해야한다.
- minθ∑j=1nθj2
θ와 decision boundary는 항상 수직이다.
Large margin classifier in presence of outliers
C=λ1
- C가 커지면 규제가 약해지므로 overfitting이 발생한다.
- C에 따라 boundary fitting 정도가 달라진다.
The mathematics behind large margin classification
Vector Inner Product
- θ: model
- x: input data
- θTx: x를 model θ에 투영
- θTx=∥θ∥∥x∥cosα
- p=∥x∥cosα
- θTx
- 투영한 p와 θ를 곱하는 것
- θ에 정사영했을 때 방향과 길이 값을 통해 학습을 진행한다.
SVM Decision Boundary
- y(i)=1일 때
- θTx(i)=∥θ∥∥x∥cosα≥1
- data를 모델에 정사영했을 때 model(θ)과 같은 방향, 길이는 적당히 길어야 한다.
- y(i)=0일 때
- θTx(i)=∥θ∥∥x∥cosα≤−1
- data를 모델에 정사영했을 때 model(θ)과 반대 방향, 길이는 적당히 길어야 한다.
Kernels
Non-linear Decision Boundary
- Decision boundary는 항상 linear 형태일 수 없다.
- 특정 그래프의 내부, 외부로 boundary가 결정되는 경우도 있다.
- feature의 조합으로 decision boundary가 계산된다.
- y=1 if θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+...≥0
- hypothesis의 변수가 입력의 조합으로 이루어진 경우 feature로 대체한다.
- θ0+θ1x1+θ2x2+θ3x1x2+θ4x12+...
=θ0+θ1f1+θ2f2+θ3f3+θ4f4+...
Kernel
- 선형적으로 데이터를 분류할 수 없을 때 데이터를 높은 차원으로 이동시켜 고차원 공간에서 데이터를 분류할 수 있다.
- Kernel: similarity를 구하는 함수
- f: 기존의 feature x를 변형시켜 만든 새로운 feature
- f는 landmark l과 x의 유사도로 정의한다.
- landmark l은 임의로 정한다.
- f=similarity(x,l(i)): data와 landmark의 유사도
Kernels and Similarity
f1=similarity(x,l(i))=exp(−2σ2∥x−l(1)∥2)
Gaussian kernel 사용
- x와 l(1)이 거의 같을 때 f1은 거의 1로 수렴한다.
- x와 l(1)이 큰 차이가 날 때 f1은 거의 0으로 수렴한다.
Example
Predict 1 when θ0+θ1f1+θ2f2+θ3f3≥0
- θ0=0.5,θ1=1,θ2=1,θ3=0
- l(1)과 l(2)에 가까우면 1
- θ2=−1
Choosing the landmarks
임의로 점 l을 찍고 θ를 학습한다.
SVM with Kernels
모든 data를 사용하여 landmark를 결정한다.
- Given (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))
- choose l(1)=x(1),l(2)=x(2),...,l(m)=x(m)
- f1=similarity(x,l(1))
- f(i)=⎣⎢⎢⎢⎢⎢⎡f0(i)f1(i)⋮fm(i)⎦⎥⎥⎥⎥⎥⎤
SVM parameters C
C=λ1
- Large C: λ가 작으므로 정규화가 덜 되어 overffiting
- variance가 크기 때문에 model이 data의 영향을 많이 받는다.
- Small C: λ가 크므로 정규화가 심하게 되어 underfitting
Gaussian kernel의 변수
- Large σ2: f가 넓게 분포되어 있다.
- 거리 값이 모두 비슷하여 underfitting
- 모델의 분산은 작아진다.
- Higher bias
- Small σ2: f가 평균 가까이 분포되어 있다.
- landmark에 매우 민감한 overfitting
- 모델의 분산은 커진다.
- Lower bias
Using an SVM
Other choices of Kernel
- 모두 거리 기반 kernel인 것은 아니다.
- String kernel, chi-square kernel, histogram intersection kenler, ...
Multi-class classification
- (θ(i))Tx가 가장 큰 i를 선택한다.
- one vs all method
- 투영하였을 때 그 값이 가장 크다는 것은 해당 class에서 margin이 가장 크다는 뜻이므로 그 class에 속할 확률이 가장 높다.
Logistic regression vs SVMS
n은 feature의 개수, m은 훈련 dataset의 개수일 때
- n이 m보다 크다면
- logistic regression 또는 linear kernel을 사용하는 것이 좋다.
- SVM을 사용할 경우 overfitting이 발생할 수 있다.
- n이 작고 m이 적당히 있다면
- Gaussian kernel을 이용하여 SVM을 사용한다.
- feature가 적으므로 feature를 조합하여 고차원 공간에서 데이터를 분류한다.
- n이 작고 m이 크다면
- feature를 늘린 후에 logistic regression이나 linear kernel를 사용하는 것이 좋다.
- Neural network는 대부분의 설정에서 SVM을 대체하여 잘 작동하지만 훈련 속도가 느릴 수 있다.