[풀잎스쿨/cs231n] Lecture 2. Image Classification pipeline
이 포스팅은 cs231n 강의와 활용된 자료를 바탕으로 한 포스팅입니다.
처음 공부하였을 때 정리한 포스팅이라 내용이 많이 부족합니다.
Image Classification
- 컴퓨터가 보는 고양이 사진은 여러 픽셀값으로 구성되어 있다.
- 사진의 부분을 옮길 때마다 픽셀값은 변한다.
- 사진을 분류할 때 어려운 점?
- Illumination : 영상의 밝기
- Deformation : 다양한 자세
- Occlusion : 물체의 일부만 보임
- Background Clutter : 물체가 배경과 유사함
- Intra-class variation : 다양한 종이 있으며 종에 따라 특징이 다름
1. Data-Driven Approach
1.1 Nearest Neighbor
- 모든 데이터와 라벨들을 학습
- 가장 유사한 학습 이미지의 라벨을 예측
- 유사도 측정
- NN classifier의 단점
- 예측을 하는데 너무 오래걸림
- train은 길게, test는 짧게 되는 것이 가장 좋음!
1.2 K-Nearest Neighbor
- 해당 알고리즘을 사용할 때, 결정해야 하는 2가지 parameter
- K값
- Distance Metric(거리 척도)
1.2.1 K값
- 데이터를 분류할 때, 데이터와 가까이 있는 데이터를 고려하여 분류하는 방법
- K = 1 : 데이터와 가장 가까운 ‘1개’의 데이터와의 거리를 고려
- K = 3 : 데이터와 가장 가까운 ‘3개’의 데이터와의 거리를 고려
‼ 다수에 따라 판단함
- 흰 부분 : 분류되지 못한 데이터
- Points for which the K-Nearest Neighbor algorithm results in a tie are colored white.
http://vision.stanford.edu/teaching/cs231n-demos/knn/
vision.stanford.edu
1.2.2 Distance Metric(거리척도)
📌 L1 distance
📌 L1 distance & L2 distance의 기하학적 구조
[CS231n] 2강. L1 & L2 distance
2강 내용 중 Nearest Neighbor와 K-Nearest Neighbor 모델에서 L1, L2 distance 에 대한 내용이 나온다. 테스트데이터와 학습데이터 사이의 오차를 구하는 함수인데, 상황에 따라서 서로 다른 distance공식을 사용
bookandmed.tistory.com
💡 가장 이상적인 K의 값과 최적 거리를 어떻게 구할까?
▶ Hyperparameter(하이퍼파라미터) tuning
1.3 Setting Hyperparameters
▶ validation dataset → 학습이 잘 되고 있는지 확인하기 위함.
▶ 교차검증(cross validation)으로 train data를 K개의 그룹으로 나눠 하나의 그룹을 validation data로 선정하여 진행.
▶ 5-fold cross-validation으로 K값을 나타낸 것으로, K가 7일 때 최적의 하이퍼파라미터가 되는 것을 확인할 수 있음
‼ 작은 양의 데이터셋에서는 유용하나 딥러닝에서는 자주 사용하지 않음 ‼
→ iternation 횟수가 많기에 모델 훈련/평가 시간이 오래 걸림.
💡 교차 검증의 장점
① 평가에 사용되는 데이터 편중을 막을 수 있다.
② 평가 결과에 따라 좀 더 일반화된 모델을 만들 수 있다.
③ 정확도를 향상시킬 수 있다.
④ 데이터 부족으로 인한 underfitting을 방지할 수 있다.
교차 검증(cross validation)
이번 시간에는 머신러닝에서 평가에 필수적으로 사용되는 교차 검증(cross validation)에 대해서 알아보자....
blog.naver.com
1.4 K-NN을 이미지 분류 시 사용하지 않는 이유
① 픽셀 간 거리로 판단하기에 약간의 변형이 있어도 정확한 분류를 할 수 없음
② 기하급수적으로 차원이 증가
→ train data가 기하급수적으로 증가함.
2. Parametric Approach
2.1 Linear Classification
- Neural Network를 구성하는 가장 기본적인 요소
- 입력 이미지는 행렬의 형태로 W와 곱해지고 bias를 더해 각 점수가 나옴
- Dog score이 가장 높지만 정답이 아님! 이럴 때 W(가중치)를 변경하며 정답에 가까이 가도록 해야 함.
- 트레이닝 데이터 정보를 요약해 파라미터 W에 모아줌.
→ Test Time에는 파라미터 W만 있으면 됨!
→ Test Time에서 더 이상 트레이닝 데이터가 필요하지 않음
▶ linear classification의 단점은 한 클래스 내에 다양한 특징들이 존재하지만 모든 것들을 평균화시킨다는 것!
▶ 이미지를 고차원 공간의 한 점이라고 생각했을 때, Linear classifier는 각 클래스를 구분시켜주는 역할
▶ [한계] 위와 같은 것들은 linear classification으로 풀기 어렵다.
참고 사이트
CS231n | Lecture2. Image Classification
[CS231n] Image Classification - Linear
🌞 공부후기(22.01.10)
cs231n 강의가 영어 강의라 더욱 어렵게 느껴졌다. 그리고 강의를 들었을 때 전반적인 흐름은 이해가 갔으니 세세한 부분은 이해하지 못했다. 그랬는데, 오늘 풀잎스쿨에서 은서님과 조원분들이 함께 설명을 해주셔서 이해하지 못했던 부분이 쏙쏙 이해가 갔다!
그 와중에 이해가 안되는 것들은 복습을 하면서 여러 정보들을 찾아보고 이해를 했다. 사실 완벽하게 이해한 것은 아니지만 나름 이미지 분류에 대해 알 수 있었다.
특히 재준님의 포스팅을 보고 더 잘 이해가 갔다...!!👍👍