When will you grow up?

Lecture2. Image Classification pipeline정리 본문

02. Study/cs231n

Lecture2. Image Classification pipeline정리

미카이 2017. 7. 13. 17:37

유명한 Stanford cs231n강의를 듣고 제 이해를 돕고자 내용정리를 했습니다.

참고내용 : http://cs231n.stanford.edu/2016/  

강의동영상 : https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlC



이미지 분류(Image Classification)란? 

->컴퓨터비전(Computer Vision)에 있어서 중요한 부분이다.

->분류가 가능해지면 detection, Segmentation, Image Captioning 등을 할 수 있다.


오래전부터 (Computer vision)분야에서는 이미지를 보고 edge,shape 등을 검출하여 이미지 분류를 계속해서 해오고 있다.


하지만 위 그림과 같은 조건으로 data-driven approach(데이터 기반 접근) 방식을 이용하게 된다. (image + label)로 구성


data-driven approach 첫번째 방식은 Nearest Neighbor Classifier 방식


이 방식은 현재 사용되지는 않지만, 교육용 및 학습용으로 사용되고 있다.

(모든 이미지에 대하여 비교해서 가장 유사한 이미지에 label을 주는 방식)


이 방식을 사용하기 위해 CIFAR-10 dataset를 이용하여 예시를 들었다.

CIFAR-10 dataset은 한 이미지당 32*32 크기를 가지며,

총 60000개의 image로 구성되어 있고 

50000개는 train용 10000개는 test용으로 준비되어 있고,

10개의 classifify된 label로 구성되어 있다.


그렇다면 모든 이미지에 대해 어떻게 비교를 할까?

L1 distance(Manhattan distance)라고 불리는 방식

L2 distance(Euclidean distance)라고 불리는 방식 2가지 중

L1을 이용하였다.




위 사진과 같이 test image와 training image 픽셀값 차이의 합으로 나타낼수 있으며,

L1 값이 작을수록 이미지가 가깝고 최소화 되는 것에 Label작업을 하게 된다.



Nearest Neighbor 방식은 모든 이미지에 대해서 비교를 하기때문에 이미지가 많으면 많을수록 linear 하게 계산속도가 떨어지며, L1, L2중 무엇을 사용할지는 주어진 환경에서 최적의 Parameter를 찾는 Hyperparameter를 찾는 방법을 것을 선택하여 사용한다.


data-driven approach 두번째 방식은 K-Nearest Neighbor Classifier 방식

(K개의 가장 가까운 image를 찾고 이 K개의 이미지들로 분류하는 것) 방식 있다.




그럼 어떻게 Hyperparameter를 찾기위한 노력을 위하여

train data 와 test data가 있을경우 

최악의 경우에는 train data와 test data를 바꿔가면서 가면 안된다.(test data는 성능평가를 위해 남겨 두어야 할 data들이므로)

그래서 train data를 K개로 fold시켜 train순서를 조금씩 바꿔 가면서 training시키는 방법이 cross-validation방법이다.


위에서 나온결과는 image에서 사용될 수 없다. 왜냐하면 이미지가 틀어져 있거나 가려져 있거나 어둡게 처리되어 있는 경우에도 test time때 성능이 매우 낮게 나오고, L2 distance가 동일하기 때문에 사용되지 않는다


그래서 나오는것이 NN(Neural Network) 이다.

Neural Network는 레고쌓는 형식으로 생각을 할 수 있는데


기본적인 Linear Classification은

f(x,w,b) = wx+b 의 형태에서 w와 b을 최적화된 parameter를 찾는것이 중요하다.

예를들어 CIFAR-10기준으로

10*1 = (10*3072)  * (3072 * 1) 의 행렬 계산형식으로 나와야 하기때문에 우리가 학습시켜야될 W는 총 30720개가 된다.

Linear Classification 더 궁금한 점은 클릭  이글을 참고하시길 바란다.


마지막으로 linear한 경우에는 color , texture 등 분류에서는 분간이 힘들 수가 있다.

Comments