Image Classification
이미지 input → 사전에 정해둔 label(category) 중 input 이미지에 적합한 label 도출
문제 : Semantic Gap
사람이 보고 판단하는 개념과 컴퓨터가 보고 판단하는 개념이 다름
(컴퓨터는 행렬 형태 0~255의 값으로 인식)
Challenges
Viewpoint variation : 카메라가 움직일 때 픽셀값이 바뀜
Illumination : 조명 문제
Deformation : 다양한 포즈(변형된 이미지)
Occlusion : 객체가 숨거나 가려진 경우
Background Clutter : 바탕과 유사한 색상일 경우
Intraclass variation : 같은 class여도 그 안에서 다양한 형태로 존재함
→ edge, corner간의 조합과 규칙을 베이스로 한 hard coding으로 객체를 인식하려고 했지만 한계가 있었음
Data-Driven Approach
데이터(이미지, 라벨)을 대규모로 수집하여 이를 classifier 학습에 사용한 후 새로운 이미지에 대해 evaluate하는 것
Classifier 예시 : Nearest Neighbor
train : 모든 데이터와 라벨을 기억
predict(test) : 유사한 train 이미지의 라벨을 예측
Distance Metric : L1 (I1-I2)으로 유사도 측정
import numpy as np
class NearestNeighbor :
def __init__(self):
pass
def train(self, X,y):
#X : N x D , y : N x 1
self.Xtr = X
self.ytr = y
def predict(self, X):
num_test = X.shape[0]
Ypred = np.zeros(num_test, dtype = self.ytr.dtype)
for i in xrange(num_test):
distances = np.sum(np.abs(self.Xtr - X[i,:], axis=1)
min_index = np.argmin(distances)
Ypred[i] = self.ytr[min_index]
return Ypred
문제점: train에는 O(1), predict는 O(N)의 복잡도
K-Nearest Neighbors
Distance Metric을 이용해 K개의 가까운 이웃을 찾고, 이웃끼리 투표를 통해 label을 정하는 것
이미지 분류에서의 정확도는 다소 떨어짐
Distance Metric : train - predict 이미지 간 유사도 측정
L1이 적합한 경우 : 입력값 요소들의 개별 의미가 있고 이를 알고 있는 경우 (좌표축에 영향을 많이 받는편)
L2가 적합한 경우 : 요소들 간의 실질적인 의미를 모르는 경우 (좌표축에 영향을 덜받음?)
Hyperparameter
K-nn에서의 K, distance 종류 등 알고리즘 선택 시 미리 세팅해야 하는 값들을 의미함
방법1. Split data (train, val,test)
train : 모델 학습, val : 모델 중 가장 높은 성능을 보이는 것을 확인하고 이 파라미터를 기억함, test : val의 가중치로 테스트
방법2. Cross-validation
train-val dataset을 n개의 fold로 나눈 후 val set을 여러개로 지정해서 파라미터를 선택하는 것
다만 이 방법은 작은 데이터셋에 적합함(학습량이 많음)
Linear Classification
Neural Network를 구성하는 블럭으로 사용될 수 있음
Parametric Approach : Linear Classifier
Parametric model 중 단순한 Linear Classifier로 이미지 분류 접근하기
이미지와 이미지에 대한 가중치를 통해 각 클래스 별 score를 도출
Interpreting a Linear Classifier
각 클래스에 대해 하나의 템플릿만을 학습한다는 문제가 있어 모델이 학습한 템플릿 이미지에 맞추어 linear classifier가 선으로 이를 구분하는 방법을 시도할 수 있음
하지만 선을 그어서 해결할 수 없는 분류 문제가 있음 (XOD, multimodal...etc)
이에 W의 적합성을 score function으로 접근
'👩💻LEARN : ML&Data > Lecture' 카테고리의 다른 글
[CS231n] Lecture4. Backpropagation and Neural Networks (0) | 2023.05.11 |
---|---|
[CS231n] Lecture3. Loss Functions and Optimization (1) | 2023.05.10 |
[알고리즘 구현으로 배우는 선형대수] #11. 직교 행렬 (0) | 2023.04.13 |
[Reinforcement learning]#2. State-action value function & #3. Continuous state spaces (0) | 2023.03.30 |
[Reinforcement learning]#1. Introduction (0) | 2023.03.30 |