Computer Science

[AI] CS231n [1] Image Classification

jaeseokk963 2024. 4. 25. 21:02

https://cs231n.github.io/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

https://aikorea.org/cs231n/classification/

 

CS231n Convolutional Neural Networks for Visual Recognition

본 강의노트는 컴퓨터비전 외의 분야를 공부하던 사람들에게 Image Classification(이미지 분류) 문제와, data-driven approach(데이터 기반 방법론)을 소개한다. 목차는 다음과 같다. Image Classification(이미지

aikorea.org

Image Classification

  • Computer Vision에서 해결해야할 문제
    • Viewpoint variation
    • Scale variation
    • Occlusion
    • Deformation
    • Illumination condition
    • Background clutter
    • Intra-class variation
  • 완전한 Imane classification pipeline
    • Input + Learning + Evaluation

Nearest Neighbor Classifier

  • L1 Distance

  • L2 Distance

  • L2거리는 L1거리에 비해 두 벡터간의 차이가 커지는 것에 민감

→ 하나의 큰 차이 보다 여러 개의 적당한 차이를 선호

k-Nearest Neighbor Classifier

  • 학습 데이터에서 가장 가까운 k개의 이미지를 찾아 테스트 이미지의 라벨에 투표
  • k=1인 경우 원래의 Nearest Neighbor Classifier
  • k가 커질수록 Outlier에 강인하고 분류 경계가 부드러워짐

Hyperparameter Tuning을 위한 Validation Set

  • Hyperparameter를 조정하기 위해 Test Set을 사용하면 절대 안됨
  • Overfit: Test Set에서는 잘 동작하도록 Hyperparameter가 Tuning 되어있지만 실전에서 Model을 Deploy할 때 성능이 낮아짐
  • Test Set을 마지막에 사용해야 분류기의 Generalization된 성능을 잘 평가할 수 있는 척도로 활용
  • Validation Set: Training Set을 두 개로 쪼갬, 가짜 Test Set
  • Cross-validation: Validation set을 여러개 만들고 iteration하며 성능 평가
  • Training Set의 50 ~ 90%를 학습용, 나머지는 검증용
  • Validation Set의 크기는 Hyperparameter의 개수에 영향 받음

Nearest Neighbor Classifier의 장단점

  • 장점
    1. 이해 및 구현 쉬움
    2. 학습 시 Training Set을 저장만 하면 되기 때문에 학습 시간 소요 없음
  • 단점
    1. 테스트 시 모든 학습 데이터 예시들과 비교해야함

→ 우리는 보통 테스트 시 얼마나 효율적인가에 관심 있음

Summary

  • Image Classification. 각 이미지 별로 한 개의 카테고리로 라벨링 되어있는 이미지들이 주어지고, 새로운 테스트 이미지들이 들어왔을 때 이 카테고리 중 하나로 분류하도록 하고 예측 값들의 정확도를 측정
  • Nearest Neighbor Classifier. 여러 Hyperparameter들, k 값, 데이터 비교시 사용하는 거리 종류 L1/L2 등
  • Hyperparameter를 정하기 위해 Training Set을 Training Set과 Validation Set으로 나누어 Validation Set에서 여러가지 Hyperparameter를 시험
  • Training Set이 적은 경우 Cross-Validation 방식 사용
  • 가장 좋은 Hyperparameter를 찾은 뒤 그것으로 실제 Test Set에 단 한 번 평가
  • NN Classifier는 구현이 간단하지만 Training Set 전체를 저장해야하고 새로운 테스트 이미지 분류 및 평가 시 계산량 매우 많음

Summary: Applying kNN

  • 평균 0, 표준편차 1이 되도록 데이터 전처리, 정규화
  • 데이터가 고차원 데이터라면 PCA, Random Projection과 같은 차원 축소 기법 고려
  • Training Set을 Train/Validation으로 분리
  • 여러가지 k값에 대해, 다른 종류의 거리 함수에 대해 학습 및 평가

가장 좋은 결과를 주는 Hyperparameter들을 기록