cs231n Lecture 2 | Image Classification

Untitled

Image Classification)

Problem

→ 결론, 이미지 인식은 매우 어렵다(알고리즘이 강력해야 함)

Untitled

이미지를 입력받으면 어떤 처리를 통해 class_label를 반환해야 함

시도할만한 방법)

  1. 고양이는 귀, 눈 입, 코를 가짐 → 이미지의 가장자리를 계산한 다음 모든 모서리와 경계를 분류, 고양이를 명시하기 위한 규칙을 설정

    → 잘 작동하지 않을 뿐만 아니라 다른 라벨로 확장하기 어려움. (확장성 x)

Untitled

  1. 데이터 기반 접근 방식

    각 물체에 대한 규칙을 설정하는게 아닌, 많은 데이터를 통해 다양한 카테고리에 대한 사례를 수집. + 이미 사용할 수 있는 고품질 데이터 세트가 존재. (CIFAR 10)

    train) 이미지와 레이블을 입력한 다음 모델을 출력

    predict) 모델을 입력하고 이미지에 대한 예측을 수행

    1. Nearest Neightbor

      훈련 단계에서는 아무것도 하지 않고 모든 데이터와 라벨을 기억하기만 함(단순)

      → 새로운 이미지를 가져와 학습 데이터에서 가장 유사한 이미지의 라벨로 예측.

      그렇다면 어떻게 한 쌍의 이미지를 비교?

      L1 distance: 개별 픽셀값을 비교

      N개의 example) train: O(1), prediction: O(n) → bad, 학습은 오래, 예측은 빠르길 원함

      Untitled

    2. K-Nearest Neighbors

      기존 Nearest Neighbor의 단점을 보완

      Untitled

      서로 다른 점을 어떻게 비교?

      L2 distance

      Untitled

      • 좌표계가 무엇이든 동일.

      이러한 k, 거리 측정법과 같은 선택 사항 → 하이퍼 파라미터

      Untitled

      실제로 어떻게 설정? 문제 의존적, 다양한 값을 시도하고 찾아내야 함.

      하이퍼파라미터 설정법)

      Untitled

      Untitled

      cross-validation) 소규모 데이터셋에 활용, 딥러닝에는 사용 x

      • L2거리, k-NN 실제 이미지 분류에 사용하지 않음 why?

      Untitled

      3개의 이미지가 모두 L2 distance 같음 → bad (실제 인식과는 다름)

      Untitled

      공간을 조밀하게 처리하는 데 필요한 훈련 예제의 수가 기하급수적으로 증가

    3. Linear Classification

      Untitled

      훈련 데이터에 대한 지식을 요약하고 모든 지식을 매개변수 W에 집어 넣음.

      → test시 W만 넘겨주면 됨 (효율적)

      x = 32x32x3 = 3072x1

      f(x,W) → 10x1로 만들고 싶음 (10개의 label에 대한 점수)

      → W: 10x3072

      • 훈련 데이터와 상호 작용하지 않는 10개 요소의 상수 벡터인 bias항 b를 추가

      Linear Classification 예시

      Linear Classification 예시

      Untitled

      단일 선형 분류로 분류하기 어려운 경우