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의 장단점
- 장점
- 이해 및 구현 쉬움
- 학습 시 Training Set을 저장만 하면 되기 때문에 학습 시간 소요 없음
- 단점
- 테스트 시 모든 학습 데이터 예시들과 비교해야함
→ 우리는 보통 테스트 시 얼마나 효율적인가에 관심 있음
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들을 기록