NLP/AI/Statistics

[cs231n] Note 1: Image Classification (Nearest Neighbor Classifier) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 1: Image Classification (Nearest Neighbor Classifier)

Danbi Cho 2020. 11. 16. 19:14

> Nearest Neighbor Classifier와 데이터셋

 

Image classification의 접근 방식을 이해하기 위해 우선 Nearest Neighbor classifier(NN)에 대하여 설명한다. 

 

NN 분류기는 유사성을 기준으로 분류한다고 생각하면 된다. 

 

NN 분류기 이전에 image classification에 초점을 맞춰 데이터셋부터 소개를 해보면, 

 

대표적인 image classification 데이터셋으로 CIFAR-10 (www.cs.toronto.edu/~kriz/cifar.html) 이 있다. 

 

CIFAR-10 데이터는 32 픽셀의 너비와 높이를 가지는 60,000개의 이미지로 구성된 데이터셋이다. 

 

즉, 32 x 32 x 3 의 이미지 데이터셋이다. 

 

총 10개의 class로 구성되어 있으며 학습 데이터 50,000개와 평가 데이터 10,000개의 데이터로 분류된다. 

 

이제 CIFAR-10 데이터셋을 NN분류기에 적용한다고 가정하면, 

 

우선 50,000개의 학습 데이터로 모델을 학습하고 10,000개의 평가 데이터에 대하여 class를 예측해야한다. 

 

 

NN 분류기는 모든 데이터 간의 거리를 추정하여 가장 가까운 하나의 데이터의 class로 분류되는 것을 의미한다. 

 

예를 들어, 50,000개의 학습 데이터가 각각의 class를 가지고 벡터 공간에 표현되어 있을 때

 

평가 데이터로부터 새로운 데이터를 그 벡터 공간에 표현하면 새로운 데이터와 가까이에 존재하는 학습 데이터들의 class를 알 수 있다. 

 

새로운 데이터는 주변 학습 데이터들 중 가장 거리가 가까운 데이터의 class로 자신의 class를 예측하게 된다. 

 

 

> L1 & L2 distance

 

새로운 평가 데이터에 대하여 가까운 학습 데이터의 class를 추정하기 위한 방법론에 대하여 소개한다. 

 

즉, 입력되는 새로운 평가 데이터와 기존의 학습 데이터 간의 거리를 계산하고 각각의 거리를 비교하는 것인데

 

대표적으로 L1 distanceL2 distance가 있다. 

 

입력되는 평가 데이터와 학습 데이터를 간단히 데이터 두 개의 이미지라고 가정하여 설명하고자 한다. 

 

서로 다른 두 개의 이미지 데이터가 있고 각각의 데이터를 벡터로 표현한 값을 $I_{1}, I_{2}$라고 할 때,

 

L1 distance는 다음과 같다. 

 

$$L1(I_{1}, I_{2}) = \sum_{p} |I_{1}^{p}, I_{2}^{p}|$$

 

모든 픽셀 (32 x 32)에 대하여 거리 계산이 수행되고 각 픽셀 별 차이를 합하여 계산한다.

 

위의 그림은 L1 distance의 예시이다. 

 

다시 데이터와 모델 간의 관계로 설명해보면,

 

입력되는 하나의 평가 데이터와 학습 데이터들 간의 거리를 비교하여 가장 가까운 학습 데이터의 class로 평가데이터의 class가 예측되는 것이다. 

 

#. image classification에서는 accuracy의 평가 지표를 사용한다.

 

L1 distance 이외에 거리를 계산하는 방식으로 L2 distance가 있다. 

 

L2 distance는 다음과 같이 계산된다. 

 

$$L2(I_{1}, I_{2}) = \sqrt(\sum_{p} (I_{1}^{p} - I_{2}^{p})^{2})$$

 

이는 흔히 아는 euclidean distance와 동일하다. 

 

픽셀 단위로 거리를 계산하는 방식은 L1 distance와 동일하지만 그 거리를 계산하는 데에서 차이가 있다. 

 

 

> K-Nearest Neighbor Classifier

 

NN 분류기에서 주변의 학습 데이터들 중 몇 개의 데이터셋을 고려하는지에 따라 예측 값이 달라질 수 있다. 

 

그래서 학습 데이터들 중 거리가 가까운 K개의 데이터를 선별하여 가장 많이 속하는 class로 평가 데이터의 class를 예측하는 K-Nearest Neighbor classifier (KNN) 아이디어가 도입되었다. 

 

즉, 가장 거리가 가까운 하나의 데이터만을 고려하여 class를 예측하는 NN 분류기와 달리,

 

KNN 분류기는 여러개의 학습 데이터를 고려하여 가장 유사한 class가 무엇인지 예측하는 것이다. 

 

k가 클수록 주변의 많은 데이터를 고려하고 평가하게 되기 때문에 k가 증가할수록 이상치에 강건한 특성을 보여준다. 

 

하지만 KNN은 모든 학습 데이터와의 거리를 비교해야하기 때문에 모델을 학습하고 평가하는 단계에서의 연산량이 크다는 단점이 있다.

 

참고) cs231n.github.io/classification/#nearest-neighbor-classifier

 

CS231n Convolutional Neural Networks for Visual Recognition

This is an introductory lecture designed to introduce people from outside of Computer Vision to the Image Classification problem, and the data-driven approach. The Table of Contents: Image Classification Motivation. In this section we will introduce the Im

cs231n.github.io

Comments