Duplicate

Lecture 2 | Image Classification

포스팅 날짜
2021/05/27

Note Taking

CS231n 은 image classification 위주로 강의가 진행될 것
Data-Driven Approach ?
기존의 classification 은 edge detection + @ 의 방식을 사용
물체를 바꿀 때마다 알고리즘을 재작성해야 함 (lack of robustness, brittle)
Non-scalable approach
겁나 많은 데이터 + Machine Learning 을 사용한 classification approach
Nearest Neighbor ?
처음 등장한 classifier
train step 에 모든 training data 를 memorize
predict step 에 memorize 한 데이터와의 유사도로 classify
K-Nearest Neighbors
K=1 → 가장 가까운 이웃의 class 로 classify
K≥3 → 가장 가까운 K 개의 이웃 집합의 최대 빈도 class 로 classify
빈 공간(white region) ? 최대 빈도 class 가 1개가 아닐 경우
데이터와의 유사도를 나타나는 metric ?
L1 Distance
d1(I1,I2)=pI1pI2pd_1(I_1,I_2)=\sum_p{|I_1^p-I_2^p|}
L2 Distance
d2(I1,I2)=p(I1pI2p)2d_2(I_1,I_2)={\sqrt{\sum_p(I_1^p-I_2^p)^2}}
Hyperparameters ?
K-Nearest Neighbors 에서의 K 나 metric (L1, L2) 의 선택
해보고 가장 좋은 hyperparameters 를 선택하는 것이 일반적
Setting Hyperparameters ?
Training data 에서 가장 좋은 성능을 보인 Hyperparameter → X
Data 를 train/test 로 나눈 후 test data 에서 가장 좋은 성능을 보인 Hyperparameter → X
Data 를 train/validation/test 로 나눈 후 validation 에서 가장 좋은 성능을 보인 Hyperparameter 를 선택 후에 test 로 최종 성능 검증 → O
Cross-Validation ?
Test data 를 정해둔 후, 나머지 데이터를 몇 개의 fold 로 나눔
나눈 fold 중 validation set 으로 사용한 fold 를 바꾸어가면서 어떠한 fold 를 validation set 으로 사용해도 좋은 성능을 보이는 Hyperparameter 를 선택 (robust 한 hyperparameter 의 선택)
K-Nearest Neighbor on images never used !!
L1, L2 distance 가 실제로 이미지의 유사도를 나타내주지 않음
위 사진들 중 2, 3, 4번째 사진들은 실제로 original 과의 L2 distance 차이가 동일하나 이미적으로 굉장히 다름....
이미지에 적용하기엔 굉장히 느림 (이미지 픽셀을 다 돌아가면서 차이의 제곱을 하고 있어야 함...)
3-Dimension 이기에... (RGB 까지!)
Parametric Approach - Linear Regression
image → f(x,W)f(x,W) → class scores
f(x,W)=Wx+bf(x,W)=Wx+b - simplest function
dimension ? W:10×3072, f(x,W):10×1, x:3072×1, b:10×1W: 10\times3072,\ f(x,W): 10\times1,\ x:3072\times1,\ b: 10\times1
Linear Classifier
특정 물체인지 아닌지 구별 with Linear Regression
특정 물체인지 아닌지 구별하는 선형 초평면의 합 형태로 최종 다중 classifier 구별
Linear Classification 이 어려워 하는 문제들 ?