블로그에 포스팅하는 내용들은 강의 전체 내용이 아닌 내 기준, 나한테 필요한 내용들 기억하고 싶은 내용들 위주입니다
해당 내용의 출처는 LG Aimers(https://www.lgaimers.ai)에 있습니다
classification은 discrete output을 가짐 = category를 구성하고 분류
binary classification

hyper plane을 구해서 dataset의 positive, negative sample을 linear combination에 의해서 구분
hyper plane이 다수 존재
*score 값이 동일하다면, 해당 점에서 hyper plane까지 투영한 거리가 동일하다는 의미
- Which predictor?
hypothesis class- Loss fuction을 통한 predictor 성능 평가
Zero-one loss
Hinge loss
Cross-entropy loss- Optimization algorithm
Gradient descent algorithm
parameter W를 학습한다 -> W에 따라서 sample들의 판별 결과가 바뀜
- score 값은 결정 과정에서 model이 얼마나 confident한지를 측정
- margin은 score * y. 정답을 맞췄을 때 margin값이 증가하고(score가 1이고 정답도 1, score가 -1이고 정답도 -1), 틀렸을 때는 margin이 감소)
zero-one loss를 gradient descent algorithm에 적용하려면 loss function의 partial derivative term을 구해야함

문제점 : 미분하면 모든 곳에서 기울기가 0이 됌

(1-margin) 값과 0 중 큰 값을 택함

classification model 학습에서 가장 많이 쓰는 대표적인 loss임

H(p) 즉 entropy 부분은 잘 바뀌지 않으므로 K-L divergence 부분에 의해 영향 받음. K-L divergence는 두개의 서로 다른 pmf 의 차이.
즉 cross-entropy 역시 두 개의 서로 다른 pmf p와 q가 유사한지 그렇지 않은지에 따라 error가 바뀜
지금까지 우리가 계산한 모델의 score 값은 실수 값임.
cross-entropy는 확률 값임.
따라서 실수 값을 확률 함수를 통해서 매핑을 해야함.
이때 매핑에서 사용하는 함수가 Sigmoid 함수.

- + 방향으로 real 값이 증가시 확률값 1에 근사
- - 방향으로 증가시 확률값 0에 근사
- 0일 경우 1/2의 확률
= 실수 값을 0~1 사이 값으로 매핑 = logistic model
linear classifier 학습 과정
1. weight 초기화
2. gradient 계산
3. 움직일 방향 설정
4. update weight
5. 수렴할때까지 반복


장점
Summary
- linear classification model에선, hyperplane이 decision boundary로 sample들을 classify하게 되며 이때 sample들은 선형적으로 분리가 가능하다고 가정한다. hyperplane은 입력변수와 파라미터의 linear combination이다.
- cross-entropy는 두 개의 서로 다른 pmf 사이의 dissimilarity를 측정하는 도구이다. 실수값은 sigmoid 함수 등을 통해 확률 값으로 매핑한 후 loss를 계산해야한다.
- binary linear classifier는 one-vs-all 방식(binary linear classifier를 여러개 사용함)을 사용하여 muticlass linear classifier로 확장할 수 있다
hyper plane을 선택하는데 많은 문제들이 발생

현재 존재하는 data sample들에 대해서는 유사한 loss를 제공할 것이다
그러나 실생활에 적용시 새로운 sample들이 생기며, 이에 대해서도 좋은 성능을 제공해야함
SVM에서 hyperplane을 결정하는 핵심적인 idea

가장 hyper plane에 가까운 positive sample, negative sample을 지나가는 점선 2개 사이의 가장 가운데(서로간의 위치가 동일한)있는 hyper plane이 최대 margin을 갖는 최적화임
Support vector
positive sample/negative sample들과 hyper plane 사이의 거리 중에서 가장 가까운 margin을 갖는 vector, 결국 성능을 좌지우지하는 민감한 data point
이러한 support vector 사이의 최대 margin을 갖는 hyperplane을 선택
outlier들에 대해서도 보다 안정적인 성능을 제공함

가운데 있는 hyperplane은 h(x)=0이다.
hyperplane에서 가장 가까운 support vector 간의 거리는 한 vector의 길이의 2배이다.
model parameter W는 hyperplane의 nomal(직각, orthogonal)한 방향으로 설정됌.
margin 즉 hyper plane으로부터 떨어져 있는 support vector 간 거리를 최소화하기 위한 optimization 방식
- Hard margin SVM
sample들이 linear separable함 = support vector 두 개 사이의 영역에는 어떠한 sample도 없다는 것을 가정- Soft margin SVM
어느정도의 error를 용인- Nonlinear transform & kernel trick
SVM은 linear한 vector들을 사용. 즉 linear한 상황에서만 사용가능한 단점을 극복. kernel을 이용하여 2차원의 sample을 고차원으로 매핑.

이때 y*score 즉 y(w^Tx+b)는 항상 1보다 크거나 같다

전자는 hyper plane에서 support vector까지의 거리이다. positive sample에서 hyperplane까지의 거리와 negative sample에서 hyperplane까지의 거리는 동일하므로 2/||w||라고 나타낼 수 있다.
margin 값을 maximization 해야한다
즉 ||w||를 minimize 해야한다. 다시말해서 w^2를 minimize 해야한다.
SVM Primal problem
||w||^2를 minimize 하자.
y(w^Tx+b)>=1 즉 constrained optimization 문제를 푸는 것으로 바뀐다
linearly seperable 하지않은 data sample들이 있다고 할 때, 그 차수를 높여서 linearly separable하게 만든다
nonlinear classification model을 제공
DNN의 기본
고유한 파라미터를 이용한 linear combination을 통해 score 값을 만들어낸다
Activation function는 linear한 score를 입력으로 받아들여 sigmoid 함수 등을 통해 non linear하게 mapping 해줌
Multilayer Perceptron(MLP)
DNN
계층에 따라서 학습을 하게되는 feature의 형태가 달라짐
그러나 accuracy가 낮아지는 문제가 발생
Gradient Vanising Problem
모델 학습 과정에서, 계층이 깊어질 수록 학습 parameter가 줄어들면서 깊은 layer에 대해선 학습이 효과적으로 진행되지 못함
breakthough
Ensemble Learning
알고리즘의 종류에 상관 없이 다양한 머신러닝 모델을 묶어 함께 사용하는 방식

Dataset을 random하게 n가지로 나눠 학습을 진행, 다수의 모델이 각각 내린 결정을 다수결로 최종 결과를 제공
장점
다양한 여러개의 model의 결정으로 최종 예측 결과를 제공하므로 보다 안정적이며 쉽게 구현이 가능
각 모델은 독립적으로 작동하기 때문에 parameter tuning이 많이 필요없음
단점
model을 여러개 사용하므로 compact한 표현이 어렵다
Bagging(Bootstrapping + aggregating)
학습 과정에서 training sample을 랜덤하게 나눠서 선택
subset들은 서로 다르게 구성
다양한 classifier들이 다양한 subset data로 학습되기때문에 모델이 같더라도 서로 다른 특성의 학습이 가능함
병렬적인 모델 학습 가능
overfitting에 대해서, sample을 random하게 선택하는 과정에서 data augmentation 효과를 가짐
Boosting
다음 학습에 이전 학습의 결과를 사용, sequential하게 동작
Random Forest
Bagging과 Boosting을 활용한 대표적 algorithm
decision tree의 집합
Supervised learning에서의 model 성능 평가