[CS231n] lecture 03. Loss Functions and Optimization - 1
ML & DL/CV

[CS231n] lecture 03. Loss Functions and Optimization - 1

Stanford University의 CS231n (spring 2017) 을 들으며 정리했습니다.

0. 지난 강의(lecture 02) 복습

linear classification : neural network 의 기본

templates of linear classifier : 클래스를 결정하는데 중요한 역할을 하는 픽셀

1. linear classifier and W

lecture 3-8 slides

  • 이전 강의에서는 W값을 임의로 지정했다. → [3-8] score를 보면 성능이 좋지 않아 보임
    (고양이 사진에 대해 개라는 정답을 8.02로 예측했다.)
  • 이처럼 임의로 지정하는 W는 항상 좋지만은 않다.
  • best 행렬 W를 구해야 한다. 
  • W를 입력으로 받아서 스코어를 확인하고, 그 성능을 정량적으로 말해주는 것 ⇒ loss function

2. loss function

  • 행렬 W가 될 수 있는 모든 수 중에 덜 나쁜 것을 고르는 것 ⇒ optimization
  • 행렬 W가 얼마나 좋지 않은지를 평가해주는 것 ⇒ loss function
  • image X(입력 데이터)와 W를 이용해서 정답 Y를 예측한다.
  • 예측 함수 f와 정답 y를 통해 최적화를 한다.
  • loss function L_i : 예측 함수 f를 통해 나온 y에 대한 예측 점수(predicted scores)가 정답과 얼마나 멀리 떨어져 있는지를 보여준다.
  • loss를 최소화(minimize) 하기 위한 W를 찾는다.

3. Multi-class SVM loss

Hinge loss

  • 다중 클래스(multi-class)를 위해 사용한다.

multi-class SVM loss 계산법

  • 틀린 카테고리의 예측 점수를 모두 합친다.(=S_j) 정답 카테고리의 예측 점수(=S_y_i)와 비교한다.
    notation : S = 예측 점수 (predicted scores), S_j = 오답 카테고리의 예측 점수, S_y_i = 정답 카테고리의 예측 점수
  • 정답 예측 점수가 오답 예측 점수보다 1(safety margin) 이상 크다면, loss는 0이다.
  • 그렇지 않다면 loss = 오답 예측 점수 - 정답 예측 점수 + 1(safety margin)
  • 최종 loss는 전체 트레이닝 데이터 셋의 loss들의 평균으로 취한다.

Hinge loss : max(0, value) 의 형태를 가진 손실 함수

SVM loss 계산 예시, 식을 따라 계산하면서 이해하는 것을 추천합니다.

  • - loss는 0이거나, 그렇지 않은 경우 2가지이기 때문에 max(0, loss)를 사용해서 연산할 수 있다.

safety margine에 대해 

  • 이 슬라이드에서는 1이라는 임의의 수를 지정했다.
  • 정답 스코어와 다른 스코어의 상대적인 크기를 비교하고자 하는 것이다.
  • 행렬 W를 스케일링하기 때문에 1이라는 safety margine은 W의 스케일에 의해 상쇄된다. 

 

  • Q1. car score가 변하면 Loss에 무슨 일이 일어날까요?
    • A1. loss는 변하지 않는다. 이미 높기 때문에 ⇒ hinge loss의 특징 : data에 민감하지 않다.
  • Q2. what is min and max of SVM loss function?
    • A2. min : 0 , max : infinite
  • Q3. At initialization W is small so all S ≈ 0. What is the loss Li, assuming N examples and C classes?
    • A3. 클래스 개수 - 1
      ⇒ 모든 예측 점수가 0에 가까우면 오답 예측 점수와 정답 예측 점수가 거의 같을 것이다.
      이때 loss는 오답 예측 점수 - 정답 예측 점수 + 1(safety margin)이기 때문에 1이 됩니다.
      C-1개의 카테고리에 대해 계산한 후 C로 나누기 때문에, ((1 * (C-1) ) * C )/ C = C-1이 됩니다.
  • Q4. What if the sum was over all classes(including j = y_i)?
    정답 클래스까지 포함하면 어떻게 되나요?
    • A4. loss가 평균 1 증가한다. 최종적으로 loss를 0으로 만들기 위해 계산하기 때문에 정답 클래스를 제외한다.
  • Q5. What if we used mean instead of sum?
    • A5. 스케일이 변할 뿐 영향을 미치지 않는다. 
반응형