아래 내용은 cs231n 유튜브 강의를 기초로 하여 작성되었습니다.
해당 유튜브 강의를 들으시고 싶으시다면 여기를 클릭하세요
1. Image Classification
- 이미지 분류는 컴퓨터 비전에서 중요합니다.
- Input : Image, Output : 정해진 카테고리 속에서 하나의 라벨을 출력
- 사람과 컴퓨터가 인식하는 차이가 있는데 그것을 Semantic Gap(의미적 차이)이라고 합니다.
- 사람은 직관적으로 사물이 무엇인지 알아낼 수 있지만 컴퓨터는 직관이 없습니다.
- 컴퓨터는 픽셀의 색을 표현한 숫자로 된 그리드(격자)를 통해 인식합니다.
- 이미지를 분류하기 위해 다양한 문제들이 존재합니다.
- Viewpoint Variation (시점의 변화)
- Intraclass Variation
- Fine-Grained Categories (고양이 클래스 내의 종류에 대한 구분)
- Background Clutter (배경과 사물과의 구분)
- illumination Changes (조명변화)
- Deformation (다른 포즈로 사진 찍히는 경우)
- Occlusion (객체의 일부만 나온 경우)
- Image Classification은 Object Detection(객체 탐지), Image Captioning, Playing Go(바둑)로 응용이 가능합니다.
- 고양이의 특징을 잡아서 프로그래밍을 해주면 객체가 바뀌었을 때마다 새로운 특징을 잡아야 한다는 단점이 있어서 직접 프로그래밍을 활용하지 않습니다.
2. Machine Learning : Data-Driven Approach
- Image Classification 접근방법
- 이미지와 라벨들을 모으기
- 모여진 데이터셋을 활용해서 기계 학습
- 새로운 이미지를 학습된 분류기를 통해 예측
- Image Classification Datasets : MNIST
- 10 클래스 : 0 ~ 9
- 이미지 크기 : 28X28
- Train image : 50000개, Test image : 10000개
- Image Classification Datasets : CIFAR10
- 10 클래스
- 이미지 크기 : 32X32X3
- Train image : 50000개, Test image : 10000개
- Image Classification Datasets : CIFAR100
- 100 클래스
- 이미지 크기 : 32X32X3
- Train image : 50000개, Test image : 10000개
- Image Classification Datasets : ImageNet
- 1000 클래스
- Image 크기 : 다양하지만 256X256으로 resize
- Train image : 130만개, Validation image : 50000개, Test image : 10만개
- Image Classification Datasets : Omniglot
- 1623 클래스
3. First classifier : Nearest Neighbor
- 모든 이미지의 라벨을 기억하고 예측해야 하는 새로운 이미지와 가장 비슷한 이미지의 라벨을 출력
- image 유사도 비교를 위한 방법
- L1 distance(Manhattan distance)
- 이미지 두개의 픽셀의 차이를 더한 값
- Nearest Neighbor Classifier 사용하지 않는 이유?
- Train 속도보다 Test 속도가 느리다. 우리는 빠르게 예측하는 프로그램이 필요하기 때문입니다.
- K 값에 따른 K-Nearest Neighbors
- K는 Boundary에 들어있는 값의 개수. 예시) K=3이면 포인트 3개가 vote해서 영역을 표시합니다.
4. 최적의 하이퍼파라미터를 구하는 방법
- idea 1번은 K=1일 때, 예측값이 100%로 결과가 나오게 된다. 다른 test셋을 예측하면 정확도가 낮아질 수 있다.
- idea 2번은 test는 한 번만 사용해야 합니다.
- idea 3번처럼 train/validation/test 셋으로 나눠서 진행하는 것이 제일 좋은 방법입니다.
- 그 외에도 Cross-Validation 방법이 존재합니다. 주로, 테스트 셋이 적을 때 활용이 많이 되고 있습니다.
- K-NN 방법은 이미지에서 활용되지 않습니다.
- 아래에 보이는 사진 3개는 원본과 L2값이 동일하기에 활용하기 어렵습니다.
- 또한 차원이 증가하면 예측을 위해 비교하는 과정이 기하급수적으로 증가하게 됩니다.
- K-NN방법은 논문 유사도로 연결시켜주는 방법 등에 활용되고 있습니다.