Image Classification
Lecture 2의 강의목차는 다음과 같다.
1) K-Nearest Neighbor(KNN)
2) Linear classifiers : SVM, Softmax
3) Two-layer neural network
4) Image features
CS231n의 강의내용은 주로 Image Classification 에 관한 문제를 다룬다.
컴퓨터에게 이미지란 단지 거대한 숫자 집합에 불과하다. 이 거대한 숫자집합에서 "고양이"를 인식하는 것은 상당히 어려운데, 이것을 바로 "의미론적 차이(Semantic gap)" 라고 한다. 카메라를 아주 조금만 옮겨도 모든 픽셀 값들이 모조리 달라지지만 이 달라진 픽셀 값도 여전히 고양이라는 사실은 변하지 않는다.
우리가 만든 알고리즘은 이런 것들에 강인해야 한다. 이 세상에 존재하는 다양한 객체들에게 유연하게 적용 가능한 확장성 있는 알고리즘을 만들어야 하는데, 이런 일들을 가능하게 한 하나의 Insight가 바로 데이터 중심 접근방법이다.
Data-Driven Approach
단순히 한 사진만을 가지고 결정을 하는 것이 아니라 무수히 많은 사진들과 그 사진에 대한 정보를 이용하여 이미지 분류기를 만들고, 새로운 사진에 대해 분류하는 접근방식이다.
- 필요한 것
- 데이터 셋 (Dataset)
- 데이터 학습 (Train)
- 데이터 판단 (predict)
Nearest Neighbor : NN
입력받은 데이터를 저장한 다음 새로운 입력 데이터가 들어오면, 기존 데이터에서 비교하여 가장 유사한 데이터를 찾아내는 방식이다.
강의에서는 CIFAR-10 데이터를 사용했다.
그렇다면 기계가 어떻게 이미지를 비교하고 입력과 비슷한 이미지를 찾아낼까? Distance Metric 공식을 통사용하였다.
Distance Matrix
L1은 각 성분의 차이를 모두 더하며, L2는 유클리드 거리를 사용한다.
- L1의 특징
- 사각형 위의 점들이 모두 원점으로부터 동일한 거리만큼 떨어져 있다.
- 기존의 좌표계를 회전하면 거리가 바뀐다.
- 각 성분이 개별적인 의미를 가지고 있을 때 L1을 사용한다.
- 예시) 키, 몸무게
- L2의 특징
- 좌표계와 아무 연관이 없다.
- 회전을 해도 거리가 변하지 않는다.
- 일반적인 벡터이며, 요소들간의 실직적인 의미가 없는 경우 사용한다.
- L1과 L2의 결정
- 사실적으로 데이터의 성분 관계를 정확하게 알지 못하는 경우가 대부분
- 이를 정하는 것은 깊게 생각하지 말고,, 둘다 사용해보고 성능이 더 좋은 것을 사용하자!
Distance Metric 방법은 이미지를 Pixel-wise 로 비교하는데, (test 이미지의 픽셀값) - (train 이미지의 픽셀값) 을 구하고 절댓값을 취한다. 하지만 이 방법은 모든 사진의 픽셀값을 계산하기 때문에 예측 과정에서 소요되는 시간이 상당하다. 이러한 비효율적인 문제를 해결하기 위해 고안된 방법이 바로 K-Nearest Neighbor 이다. KNN 을 사용하려면 학습 전 사전에 K와 거리척도인 "하이퍼 파라미터"를 선택해야 한다.
* K-NN VS K-Means
K-NN
distance metric을 이용해 가까운 이웃을 K개만큼 찾고, 이웃끼리 투표를 하는 방식
→ K값의 증가함에 따라서 부드러워 지지만, 흰색 영역이 증가한다.
(이 흰색 영역 은 어느 쪽에도 분류 할지 알 수 없는 영역이다.)
→ 따라서 K값이 증가한다고 항상 좋은 것이 아니라, 데이터나 상황에 따라서 알맞은 K값을 찾아야한다.
문제점 : 데이터 학습은 빠르지만, 새로운 데이터를 판단하는데 있어서 걸리는 시간이 많이 필요하다.
하이퍼 파라미터 (K와 거리척도)
하이퍼 파라미터는 학습 전, 사전에 반드시 선택해야 한다.
- 일반적으로는 하이퍼파라미터 선택은 어떤 문제와 데이터인지에 의존적임
- 기계학습의 궁극적인 목적 : 한번도 보지 못한 데이터에서 잘 동작해야 한다.
일반적으로 데이터를 Train, Validation, test로 3개로 나누어 학습하고 예측하는 방법과 Cross Vaildation(교차검증)이 있다. 교차검증은 작은 데이터셋일 경우 많이 사용하고 딥러닝에서는 많이 사용하진 않는다.
Cross-Validation 교차검증
위와같이 데이터셋을 Fold 단위로 자르고, 이 Fold 중 하나를 Validation 으로 선택, 나머지를 Train 데이터로 사용한다.
→ 기존에 방식보다 많은 학습시간 을 요구하며 이 방법은 거의 사용되지 않고 데이터가 적은 상황에서 유용한 장점을 가짐
Linear Classification
NN과 CNN의 기반 알고리즘
이미지를 인식하기 위해서 CNN을 사용하고, 언어를 인식하기 위해서 RNN을 사용한다.
Parametric model 값을 단순하게 "Wx + b" 와 같이 선형적으로 사용하는 것을 바로 Linear Classification 이라고 한다.
위 고양이 사진(32x32x3)을 예시로 입력(X)을 받으면 , 가중치 파라미터(W)와 곱하여 카테고리 score 값(f(x,w))인 10을 만든다. score값이 높을수록 고양이일 확률이 높다.
선형분류의 문제점 : 각 클래스에 대해 단 하나의 템플릿만을 학습한다.
Hard cases for a linear classification
각각은 Partity Problem(Xor), 도넛 형태, Multimodal Problem이다.
Linear Classification은 단순히 행렬과 벡터의 곱 의 형태이다. 각 클래스를 구분해주는 선형 겨예 역할을 하지만, 일차 함수 직선으로 분류되지 않은, 즉 데이터의 분포에 따른 선형으로 분류할 수 없는 데이터가 대부분(Multimodal problem) 이다.
이러한 단점을 보완하기 위해 W 가중치 설정이 중요해지게 된다.
'전공과목 스터디 > 인공지능' 카테고리의 다른 글
[CS231n] Lecture 4 (0) | 2024.01.27 |
---|---|
[CS231n] Lecture 3 (0) | 2024.01.27 |
[CS231n] Lecture 1 (0) | 2024.01.24 |
[총정리] CS231n (0) | 2024.01.24 |