AI/개념

[CS231n] 2강 정리

모딩 2021. 6. 8. 00:04
반응형

0. 목표

1) Image Classification 이란? 

2) Classification Algorithm 에 대해서 알아보자

3) Hyperparameters 의 의미

4) Linear Classification 의 간략한 개념설명 

 

1.   강의 정리 

Image Classification에 대해서 

먼저 Image Classification에 대해 배운다. 

 

Image Classification 이란 입력 이미지가 들어왔을 때,
이미 정해져 있는 Categories에서 이미지가 어떤 Category에 속할지 고르는 문제

 

그렇다면 Computer 입장에서 Image Classification이 어려운 이유는 무엇일까?

사람은 입력 이미지를 사진처럼 보지만, 컴퓨터는 픽셀을 의미하는 숫자 집합으로 보기 때문에 어렵다. 

따라서 조도나, 위치변화, 객체 변형이라는 다양한 변수에 반응하여 객체를 인식하고 분류하기 어려워진다. 

 

그렇다면 다양한 변수에도 분류를 할 수 있는 방법은 무엇일까? 


 

Classification Algorithm 은 크게 2가지로 볼 수 있다. 

  • 이미지의 특징으로 명시적인 규칙을 만드는 방법으로 접근
    • ex. 사람이 인위적으로 feature를 추출하여 규칙을 생성 (마치 기존 강아지 classification에서 모색을 추출하는 방식)
    • 다른 이미지에 적용이 어렵다는 문제점이 있다
  • 데이터를 보고 데이터 중심으로 접근
    • Machine Learning을 사용한다. ex. K-Nearest Neighbor Algorithm
    • 함수를 잘 만드는 것이 목표! 이미지를 넣으면 특징을 추출하여 분류할 대상에 대한 확률값을 계산하는 형식

다양한 Classification Algorithm 들이 정확한 분류값을 도출하기 위해 결과 값에 영향을 미치는 값을 HyperParameter라고 한다. 

 

그렇다면 HyperParameter를 어떻게 하면 잘 선택할 수 있을까?

다양한 방법들이 있지만, Dataset이 있을 때 train, val, test로 나누는 방법이 있다.

다음과 같이 교차 검증(Cross-Validation)을 하는 방법도 있다. 이는 더 확실하게 분류를 잘하는 Hyperparameter 값을 찾을 수 있지만, deep learning 분야에서는 잘 사용하지 않는다.

cross vaildation


Linear Classification에 대해서

Linear Classification은 Neural Network를 구성하는 가장 기본적인 요소이다.

다시 말해, Parametric model의 가장 단순한 예제가 바로 Linear Classification이다.

만약 입력 이미지가 (가로,세로,채널)이 (32,32,3)이고 10개의 카테고리 중 하나를 분류하는 문제가 있다고 하자.

위 그림에서 'W'에 train data의 요약된 정보가 들어있다. 따라서 test를 할 때 시간을 단축시킬 수 있게 된다.

 

 

딥러닝은 f(x,W)를 잘 설계하는 것을 말한다.

입력 데이터를 하나의 벡터로 길게 만들고, 10개의 클래스에 대해 얼만큼의 점수를 부여하는지 결과값을 확인해보자.

쉽게 말하면, W는 10*3072의 행렬이다.

B는 bias로 데이터와 무관하게 특정 클래스의 우선권을 부여한다.

주로 dataset이 unbalance할 때 사용한다.

추가적으로 설명하면 B의 값을 이용해서 내가 원하는 선형(linear classifier)에 좀 더 잘 근사할 수 있도록 하는 방법이다.

이렇게 나온 결과 값을 ‘템플릿 매칭’과 같은 과정을 하여 이 이미지가 어떤 클래스로 분류되었는지 알 수 있다.

어떻게 W를 잘 선정하는지는 다음 시간에 배울 수 있다. 


ps. Linear Classifier를 이용했을 때 쉽게 풀 수 없는 문제들이 있는데, 

 

다음과 같이 영역이 반전되어 있거나, 한 클래스가 다양한 공간에 분포하면 Linear Classifier로 분류하기 어렵다… (이 땐 어떤 분류기를 사용할까..?)

 

 

 

반응형

'AI > 개념' 카테고리의 다른 글

Batch Normalization, Drop out  (0) 2021.06.08
Overfitting과 Underfitting  (0) 2021.06.07
Torchvision 패키지  (0) 2021.03.03
Learning Rate, Training Epoch, Batch Size의 의미  (0) 2021.03.03