NLP/AI/Statistics

[cs231n] Note 1: Image Classification (Introduction) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 1: Image Classification (Introduction)

Danbi Cho 2020. 11. 11. 19:06

CS231n의 note1에서는 image classification에 대하여 설명한다.

 

note 1에 대한 내용을 아래와 같이 나누어 정리할 예정이다.

 

1) introduction

2) nearest neighbor classifier

3) validation sets for hyperparameters tuning

 

 

우선, image classification이 어떤 task이고 어떠한 input 형태로부터 처리되어 지는지를 이해하기 위해 introduction을 설명한다.

 

Computer vision 에서는 object detection, segmentation 등의 task가 수행된다. 

 

그 중 Image classification은 computer vision 에서 가장 기본이 되는 task라고 할 수 있다.

 

Image classification을 위해서는 라벨링된 이미지 데이터가 필요하다.

 

각 라벨이 부여된 데이터들의 픽셀 값들을 학습함으로써 이미지들 간의 특징을 추출하고 라벨을 분류하게 된다.

 

그 예로, [고양이, 강아지]을 분류하는 task가 있다고 했을 때, 

 

고양이가 묘사된 이미지는 '고양이'라는 라벨로써 학습되어지고

 

강아지가 묘사된 이미지는 '강아지'라는 라벨로써 학습될 것이다. 

 

그렇게 각 이미지의 특징들을 학습하게 되면 학습된 모델은 새로운 이미지에 대하여 해당 이미지가 고양이인가, 강아지인가를 예측하여 분류하게 된다.

 

이러한 task를 image classification이라고 한다. 

 

위의 그림이 248의 너비와 400의 높이의 픽셀 값을 갖는다고 할 때,

 

하나의 이미지는 (248 x 400 x 3)의 특징 값으로 표현된다. 

 

이 때,  3은 channel을 의미하고 이는 RGB(Red, Green, Blue)의 색상을 의미한다. 

 

즉, 위의 그림은 (248 x 400 x 3 = 297,600)의 특징 값을 갖게 된다. 

 

이러한 특징 값을 갖는 이미지들을 학습하여

 

만약 새로운 이미지가 입력되었을 때, 해당 이미지가 고양이로 예측될 확률, 강아지로 예측될 확률을 출력하게 된다.

 

위의 그림에서는 해당 이미지가 고양이일 확률 85%, 강아지일 확률 15%, 모자일 확률 2%, 컵일 확률 1%을 나타낸다. 

 

 

앞에서 설명한 예시만 봤을 때는 '이게 어려운 task인가?'라는 생각이 들 수 있다.

 

하지만 만약 이불속에 숨어있는 고양이, 이상한 자세를 취하고 있는 고양이, 강아지처럼 생긴 고양이의 이미지라면 사람이 보더라도 이것이 '고양이이다!'라고 판별하기 어려운 경우가 있을 수 있다.

 

이러한 문제를 해결하기 위해서는 모델이 다양한 특징을 나타내는 데이터를 학습해야한다.

 

즉, image classification은 이미지 데이터에 의존적이기 때문에 데이터의 크기, 색감, 각도, 관점 등이 다를 경우 기존의 데이터와 새로운 데이터로 간주하게 된다.

 

예를 들어, 한 사람의 얼굴이더라도 오른쪽 얼굴의 사진과 왼쪽 얼굴의 사진은 서로 다른 이미지로 간주하게 된다. 

 

이러한 문제를 해결하기 위해 가장 좋은 해결 방법은 다양한 데이터 (여러 각도의 이미지, 명암에 따른 이미지, 크기에 따른 이미지)를 학습하여 모델이 더욱 데이터에 강건하도록 만드는 것이다.

 

이를 data-driven approach라고 하며,

 

data-driven approach를 간단히 설명하자면,
어떠한 데이터를 학습하냐에 따라 학습된 모델의 성능, 특징들이 다르게 평가되는 것을 의미한다.

 

참고) cs231n.github.io/classification/#image-classification

 

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