돌아서면 까먹어서

ML 개념 정리 - classification, K-nearest neighbor 18.11.21 본문

ML/ETC

ML 개념 정리 - classification, K-nearest neighbor 18.11.21

양갱맨 2018. 11. 21. 16:22

Classification problem : Input Data를 미리 정해진 클래스 중 하나인 label로 분류하는 문제


<Image Classification이 고려해야할 점>

1. Viewpoint Variation : 카메라에 의해 시점이 달라지는 경우

2. Scale Variation : 크기 변화

3. Deformation : 변형, 여러 자세로 찍힌 사물

4. Occlusion : 다른 부분에 의해 가려진 경우, 일부만 보이는 경우

5. Background Clutter : 배경과 비슷해 구분이 안되는 경우

6. Intra-class Variation : 객체의 종류가 많은 경우


Data Driven Approach : 먼저 com에게 각 class에 대해 많은 예제를 주고서 Test Data를 보고 시각적으로 학습할 수 있는
                               training 알고리즘을 개발하는 것.




<Image Classification Pipeline>


Input -> Learning -> Evaluation

Input : N개의 이미지로 구성, K개의 class로 이루어져있음.

Learning : Input Img를 training set으로 사용해 각 class에 대해 학습한다.

Evaluation : 새로운 이미지가 어떤 label로 분류될지 예측함으로써 분류기의 성능을 평가한다.

새로운 이미지의 예측된 label과 정답 label(Ground truth)을 비교




<DATASET>

ImageNet : 전세계에서 모은 이미지

CIFAR-10,100 : class가 10,100인 이미지를 모아놓은 데이터 셋

SVHN : 집 번호판 데이터 셋(구글)

MNIST : 필기체 데이터셋

등등이 있다.




<Nearest Neighbor>

각 Image 간 Pixel 거리 차이 구하기.

- L1 Distance(Manhattan)


L1은 좌표계의 영향을 받는다.

Vector의 각 요소에 대한 개별적인 의미를 알고있다면 사용했을때 더 좋은 성능을 내기도 함.

- L2 Distance(Euclidean)

L2는 좌표계의 영향을 받지 않는다.

vector가 일반적인 vector이고 개별적인 의미가 없을 때 더 잘 어울린다.




<K-Nearest Neighbor Classifier>

Nearest Neighbor이 가장 가까운 이미지 하나만 찾는 것이라면

K-Nearest Neighbor Classifier는 가장 가까운 이미지 K개를 찾고 그 이미지의 label에 대해 vote하는 방식이다.

K=1인 경우는 이미지 1개만 찾기때문에 NN과 같다.

K가 커질수록 경계가 부드러워지고 동 떨어진 이상한 점을 만들지 않지만 무작정 크다고 좋은 것이 아니다.

어느 label에도 속하지 않는 경우는 따로 어디로 속하게 할 것인지 정해야한다.


K-Nearest Neighbor Classifier의 HyperParameter(머신러닝을 위해 최적으로 만들어줘야하는 값들)

= K, Distance


Hyper Parameter를 조정하기 위해서 Testset을 사용해선 안된다.

-> testset에 맞는 hyper parameter를 찾게 된다. 즉, overfitting


overfitting : 과적합, 과하게 데이터 셋에 맞게 학습한것.


test set은 마지막에 딱 한 번만 적용해보도록 한다.


Cross Validation : Hyper parameter를 조정하기 위한 방법

Dataset이 작은 경우에 사용한다.

Training set을 여러개로 나누고 validation set을 번걸아가며 지정해주면서 트레이닝한다.

학습이 끝나면 가장 좋은 parameter로 test set 적용해보고 성능 평가한다.


cross validation에 대한 이미지 검색결과

* 출처 : https://www.kaggle.com/dansbecker/cross-validation



<NN의 장단점>

1. 느리다.

2. L1, L2 Distance가 이미지를 비교하기 적절치못함(이미지가 변형되어도 같은 값이 나온다.)

3. 차원이 커지면 계산이 필요한 학습 data양이 기하급수적으로 증가(curse of dimension=차원의 저주)






이 포스팅은 http://cs231n.stanford.edu 바탕으로 작성했습니다.

* 잘못된 부분들은 댓글 부탁드립니다

Comments