1 분 소요

스탠포드대학에서 발표한 CNN 강의 영상을 듣고 자료를 정리했습니다.

Lecture 2 | Image Classification

Image Classification이란

컴퓨터 비전에서 가장 중요한 Task

이미지가 주어졌을 때 시스템에서 미리 label해놓은 분류된 이미지 집합 중, 어디에 속할지 컴퓨터가 판단하는 것


Semantic Gap 문제

image 카메라 각도나 밝기, 객채의 행동 혹은 가려짐 등 여러차이로 인해 이미지의 픽셀 값이 달리 읽어 사물을 다르게 인식하는데, 고양이라는 객체와 컴퓨터가 보는 픽셀의 숫자들 간에 격차가 생김


방법1

image

객체의 특징을 규정한다. → 성능 좋지 못하고 다른 데이터에 적용시키기에 비효율적


방법2

데이터 중심 접근 방법(Data-Driven Approach)

image

객체의 특징을 규정하지 않고, 다양한 사진들과 label을 수집하고, 이를 이용해 모델을 학습하여 사진을 새롭게 분류하는 방식



Nearest Neighbor(NN)

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

image

단점: 모든 사진의 픽셀값의 계산하기 때문에 예측 과정에서 소요되는 시간이 상당하다.


방법: K-Nearest Neighbors

image

Distance metric를 이용해서 가까운 이웃을 k개만큼 찾고, 이웃간에 투표를 하여 득표수가 많이 얻은 label로 예측하는 방법

(가장 가까운 이웃이 존재하지 않으면 흰색으로 표기된다)


image

L1 Distance

마름모 형태

좌표계를 회전 시 거리값이 달라짐


L2 Distance(Euclidean Distance)

원형의 형태

좌표계를 회전해도 거리값은 좌표의 영향을 받지 않는다.


KNN이 이미지 분류에 실제로 사용되지 않는 이유

  1. 너무 느림

  2. L1, L2 Distance는 이미지 거리 구하는데 적합하지 않다.

image

부분적인 차이를 감지하기 어렵다



Linear Classification(선형분류)

Neural Network(NN)과 Convolution Neural Network(CNN)의 기반 알고리즘으로 매우 중요하다.

image
image

위 고양이 사진(2x2)을 예시로 입력(X)을 받으면 , 가중치 파라미터(W)와 곱하여 카테고리 score 값(f(x,w))인 10을 만든다. score값이 높을수록 고양이일 확률이 높다.

W*x 에 bias(편향값)을 더하는데, bias는 입력과는 직접적인 관계를 가지지 않으나 이미지 라벨의 불균형한 상태 보완하기 위해 사용된다.

Interpreting a Linear Classifier

가중치 행렬의 행벡터를 가지고 다시 이미지로도 나타낼 수 있다.
image
image

위 사진에서 Linear Classifier는 각 클래스를 구분해주는 선형 경계 역할을 한다.


Linear Classifier의 단점

이미지 변동이 있어도 그것의 평균을 결과로서 보여준다.

그래서 말 카테고리의 이미지를 보면 말의 머리가 두개가 나타난다.
image

Multimodal problem: 선형으로 분류할 수 없는 데이터에 사용하기 어렵다.

image


KNN과 Linear Classifier의 차이점

KNN

시작할 때 파라미터가 없다.

테스트 할 때 전체 train set을 가지고 테스트를 한다.


Linear Classifier

테스트 할 때 train set의 전체 데이터는 필요없고 train의 결과인 w을 가지고 테스트를 하므로 KNN보다 효율적이다.

댓글남기기