비전딥러닝/cs231n

Lecture 2. Image Classification

아무 말하는 감자 2022. 9. 16. 16:50

Image Classification이란 이미지를 분류하는 것으로, 입력된 사진의 픽셀의 정보를 통해 객체를 분류하는 것이다.

이전에는 객체의 특징을 구분지어 픽셀에 일정한 기준을 적용시켜 분류하였는데, 이는 사진이 온전히 찍히지 않는 경우 등에는 전혀 쓸모가 없을 정도로 오차율이 높았다.

따라서, 객체의 특징을 구분짓지 않고, 다양한 사진들과 label들을 수집하고, 이를 이용해 모델을 학습하여 사진을 새롭게 분류하는 방식인 ‘Data-Driven Approach’ 방법을 사용하게 되었다

 

[Data-Driven Approach]

    Nearest Neighbor (NN)

입력 받은 데이터를 저장한 다음 새로운 입력 데이터가 들어오면, 기존 데이터에서 비교하여 가장 유사한 데이터를 찾아내는 방식이다.

기계가 비교하는 방식은 ‘Distance Metric’ 방식이 있는데, 강의에서는 L1,L2에 대해 배웠다.

L1test image에서 training image를 빼고, 절댓값을 취한다음 다 더해서 비교하는 방식이다. 값이 작을수록 유사하다고 볼 수 있다.

L2L1과 비슷한데, root를 씌우고, 제곱을 한다는 차이점이 있고, L1과 달리, 좌표계에 영향을 받지 않는 다는 장점이 있다.

이 둘은 cs231n 강의에서 제공하는 assignment1을 통해 2-loop, 1-loop, no-loop 순으로 직접 구현해보는 시간을 가졌다.

    K-Nearest Neigbor

NN의 보완으로 나온 방법이며, NN의 모든 neighbor들을 다 보기때문에, 시간이 오래 걸린다는 단점 및 엉뚱한 영역까지 분류할 수 있다는 단점을 극복할 수 있다.

‘distance mertic’를 이용해서 가까운 이웃을 k개만큼 찾고, 이웃 간에 투표를 하여 득표수가 많이 얻은 label로 예측하는 방법이다. 하지만 가장 가까운 이웃이 존재하지 않으면 흰색으로 표기된다.

모든 이웃을 다 둘러보는 NN과 달리, k에 따라 보는 이웃의 수를 제한하는 방식이다.

    linear classification

Input imagex이고, W이라는 가중치 파라미터와 곱하면 카테고리 값 score(f(x,W))가 생성된다. score가 높을수록 input image는 정답 카테고리에 속해 있을 확률이 높다고 본다.

 

이미지를 고차원 공간으로 보게 되면 , Linear Classifie는 각 클래스를 구분해주는 선형 경계 역할을 하지만, 일차함수 직선으로 분류되지 않은, 즉 데이터의 분포에 따른 선형으로 분류할 수없은 데이터가  대부분(Multimodal problem)이다.