ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • cs231n 3강 정리
    cs231n 강의 2022. 4. 16. 18:24

    ▶ 초심공룡을 아는가, 그 모임엔 막내가 정말 치명적이다.

    3강의 주제는 Loss function, Optimization 이다.

     

    2강에서 다뤘던 Score function과 Linear Classifier 에 대해 어느 정도 알아야 이해하기 쉽다

     

    1. Loss function

    - Score에 대한 불만족하는 수치를 정량화하여 보여주는 함수이다

    - 가중치 W가 얼마나 나쁜지를 보여주는 함수이다

    - 그 수치가 Loss 값이다

    - Loss 값이 작을 때 그 Classifier는 이미지를 잘 분류한거다

    - 종류가 2가지 이당

    • SVM을 이용한 Hinge loss
    • Softmax을 이용한 Cross entropy loss

     

    1) SVM

    - 이건 글로 설명이 어렵다

    - 예시를 보면서 어떻게 작동하는지 이해하는게 더 쉽다

    - 아래의 식 SVM의 식이다

    SVM 식

    S_j 는 잘못된 레이블 스코어

    S_y_i 는 바른 레이블 스코어1 은 Safety Margin

     

    - Max 괄호 안에 0S_j - S_y_i + 1 중에 더 큰값이 Loss 값이 된다- 이 식을 어떻게 사용하는지 보자

    SVM 예시

    - 위의 이미지에서 파란 글씨를 따라 보자

    - cat 이미지를 기준으로 SVM을 사용하여 Hinge Loss 를 구하면

    - S_j = 5.1 또는 -1.7 / S_y_i = 3.2 가 된다

    - 이유는 cat 이미지에 옳은 레이블 (S_y_i) 은 cat 레이블이고

    - car, frog 레이블은 잘못된 것 (S_j) 이기 때문이다

    - 식을 이용해 값을 구하면 Loss(또는 Hinge Loss)는 2.9 이다

    - 이런식으로 SVM을 활용한다

     

    Q. 그렇다면 Loss = 0 이 되면 그 Score function에 쓰인 W(가중치)는 특별한가?

    A. 응. 아니야~

     

     

    1-1} Regularization

    - 예측 모델(W)이 training data에 완전히 fit하지(overfitting) 못하게 모델 복잡도에 패널티를 부여하는 것이다

    - loss function에 Regularization이 들어가면 training error는 더 커지지만 우리의 목적인 test data의 결과는 좋아진다

    - data loss는 training data에 맞는 를 찾고

    - Regularization은 test data를 잘 설명할 수 있는 일반화된 를 찾으려고 한다.

    - data loss와 Regularization은 서로 경쟁을 하면서 data loss와 Regularization에 최적화된 를 찾는다

    빨간박스 가 Regularization

    - 빨간 박스가 Regularization 을 나타낸다

    - 일반적으로  L2 regularization을 많이 사용한다

     

     

     

    2) Softmax

    - 이것도 글로 설명이 어렵다

    - 예시를 통해 이해하는게 낫다

    - 아래의 식이 Softmax의 식이다

    정확히 얘기 하면  괄호안 식Softmax function이고

    거기에 -Log를 씌운것이 Cross entropy loss 값이다

     

     

     

    - 이것도 어떻게 사용하는지 보면

    Softmax Classifier 예시

    - 파란글씨와 파란박스 는 Softmax function 를 사용하기 전 Score 값들이다

    빨간글씨와 빨간박스 는 Score를 지수화 한 값들이고

    초록글씨와 초록박스 는 지수화 한 값들을 또 정규화한 값들이다

    보라글씨 는 정규화한 값에 -log 를 씌워 구한 Loss (또는 Cross entropy loss) 값이다

     

     

    3) 정리

    - 아래 사진을 보라

    결국엔..

    - 결국 Loss function은 Score function이 잘 기능하는데 필요한 최적의 W(가중치) 값을 구하기 위해 존재한다

    - 위의 이미지를 글로 정리하면

    - 로부터 스코어 를 얻기 위해 Linear Classifier를 사용한다

    - Loss function을 이용해 모델의 예측값(Score)이 정답값(Label)에 비해 "얼마나 다른지" 를 측정한다

    - 모델의 "복잡함"과 "단순함"을 통제하기 위해 Loss function 에 Regularization Term을 추가한다

     

     

     

    2. Optimization

    - loss값을 최소화 시킬 수 있는 Weight를 찾는 방법이다

    - 2가지 전략이 있다

    • Random search
    • Follow the slope

    - Random search는 매우 나쁜 방법으로 사용 안한다

    - Follow the slope 방법은 Gradient Descent를 활용한다

    - Gradient Descent는 Gradient(기울기)를 따라 내려가면서 Weight를 찾는 것이다

    - 그럴려면 Gradient 를 알아야 한다

     

     

    1) Gradient

    - 미분을 사용한다

    - 2가지가 있다

    • Numerical gradient
    • Analytic gradient

    -

    Numerical gradient :

    근사치이고 느리다, 코드로 작성하기 쉽다

    - Analytic gradient : 정확하고 빠르다, 코드로 작성하면 에러가 날 가능성이 크다

    - Gradient check : Analytic gradient 로 Gradient를 구하고 계산이 정확한지 Numerical gradient 로 확인하는 것이다

     

     

    2) Gradient Descent

    - 반복적으로 Gradient를 평가하고 parameter update를 수행하는 것이다

    - 즉, 기울기 하강을 통하여 가장 적절한 W값을 찾아내는 것이다

    - 아래그림을 보자

    Gradient Descent 예시

     

    - 그림과 같이 Original W 에서 시작하여 흰색 실점(기울기)을 따라 적절한 W값을 찾는다
    - 이런식으로 W값을 찾아갈때 도움을 주는 Hyperparameter 가 있다

    - 그걸 Step_size 라고 한다.

    - Step_sizeLoss function에서 Regulation과 같은 역할을 한다.

    - 대표적인 모델로는 Stochastic Gradient Descent (SGD) 가 있다

    Stochastic Gradient Descent (SGD)

     

     

    3. Image Classification 의 기존 방식 & 새로운 방식

    - CNN이 나오기전 Image classification 파이프 라인이 어떻게 되었는지 보면

    1. 이미지에 특징들을 추출
    2. 추출한 특징들을 하나로 이어 줌(Concatenation)
    3. 거기에 Linear Classifier를 적용
    4. 결과값 얻음
    5. 분류 끝

    - 기존의 일반적인 방법이었다

    - 그 방법들에는 아래와 같이 있다

    • Color (Hue) Histogram
    • Hog/Sift features
    • Bag of Words

    - 우리가 접근하는 딥러닝에서는 이미지를 주면 함수가 알아서 결과값 만든다

    - 이게 새로운 방식, CNN 이다

    - 아래 이미지를 봐라

    Image Classification의 기존방식 & 새로운 방식

     

    3강 정리 끝.

    댓글

Designed by Tistory.