Image Classification이란?
Image Classification: 컴퓨터 비전 분야에서 대중적인 task
- Architecture: Backbone (CNN) + Classification head (FC Layer)
- backbone에서는 이미지에 대한 특징 추출
- fc에서 이미지가 속할 가능성이 있는 클래스에 대한 예측 수행
- 활성화함수 이용하여 각 클래스에 속할 확률 출력 (이미지 분류에선 softmax 많이 사용)
가중치 업데이트는 당연히 backpropagation 이용
: activation function -> fully connected layer -> backbone
- Forward Propagation:
입력이미지가 각 층의 뉴런을 통과하면서 가중치와 편향에 의해 변환
- Loss Calculation:
출력에서 예측결과와 실제 label 차이를 계산하기 위해 loss function 사용
- Backpropagation:
loss 최소화를 위한 과정 네트워크의 가중치 조정(손실함수에 대한 gradient 계산) 이를 통해 각 가중치의 기여도를 역으로 추정
- Weight Update :
learning rate 조절하여 가중치 업데이트
- 반복
Image Classification Dataset
Logits & Softmax
- Logits: 각 클래스에 대한 예측을 수치(실수값)로 나타내는 중간 단계
fully connected layer에서 이뤄진 class score == logit
- Softmax 함수는 실수 전체의 범위를 가지는 logits을
지수 함수를 사용하여 클래스 간의 상대적 확률 (0 ~ 1 사이의 값) 계산
Dataset: (image, class) pair로 구성
Training Process
Preprocessing
Model
Loss
- Loss function: 실제 class와 예측한 class의 차이를 줄이기 위해 사용
- Cross-entropy loss를 이용해 loss function을 정의
Test Process
test도 train과 동일한 과정 거침. prediction만 다름 loss 측정도 X, prediction에 대한 evaluation metric: accuracy, precision, f1 score만 측정
Metric
- 모델이 잘 학습되었는지 판별하기 위해, 정량적인 평가로 Accuracy와 Precision Metric을 이용한다.