Deep Learning/CS231n

CS231n 3강 summary

마크투비 2021. 6. 23. 16:38

1. Loss function(손실함수)

  • Loss function은 classifier가 얼마나 잘 수행해내는지 알려줌
  • weight 값을 판단하는 기준이 됨
  • loss will be high, if we’re doing a poor job of classifying the training data

1) Multiclass Support Vector Machine loss (Hinge loss)

  • (x_i, y_i)에서 x_i는 image, y_i는 (integer) label을 의미. 이때 scores vector: s=f(x_i, W)
  • SVM loss는 다음과 같이 구한다

 

  • s_j는 잘못된 label의 score, s_yi는 제대로 된 label의 score 의미. 1은 safety margin
  • s_j – s_yi + 1 = s_j – (s_yi – 1). (correct label score – 1)보다 큰 incorrect label score가 있다면 loss는 0보다 크게 됨
  • 가능한 loss의 min 값은 0, max 값은 무한대
  • 만약 j=y_i인 경우도 포함한다면 loss값이 모두 1씩 증가하여 loss의 평균 값도 1 증가
  • 전체 dataset에 대한 loss 값은 평균 낸 값

  • 일반적으로 weight 값은 작은 값으로 초기화 -> score 값이 0에 가까운 값으로 나타남 -> 이때의 SVM loss는 max(0, 0-0+1) = 1이므로 초기의 전체 SVM loss 값은 (class – 1) -> sanity check에 이용됨
  • squared hinge loss는 다음과 같다

  • 제곱을 해서 non linear하게 되고, 차이가 생김
  • 제곱을 하지 않은 hinge loss가 일반적이지만 경우에 따라 squared hinge loss를 사용하기도 함
  • Multiclass SVM loss example code

Regularization

  • unique한 weight 값을 지정해주기 위해 regularization 개념 등장

  • Data loss : training dataset에 최적화하려고 함
  • Regularization : test data에 최대한 일반화하려고 함
  • -> data에 fit하고 가장 최적화된 weight값을 추출
  • weight regularization을 더해주면 training data에 대한 정확도는 안 좋아지겠지만 test data에 대한 정확도는 좋아짐

L2 regularization

  • weight 값을 0에 가깝도록 유도
  • weight를 최대한 spread out 해서 모든 데이터 값의 input feature들을 고려함
  • “diffuse over everything” 동일한 score라면 weight가 최대한 spread out된 것을 선호함

λ 값

  • 높으면 모델이 단순해짐
    • underfitting 위험 존재
  • 낮으면 모델이 복잡해짐
    • overfitting 위험 존재

2) Softmax classifier

  • scores = unnormalized log probabilities of the classes
  • s = f(x_i;W)
  • Softmax loss(Cross entropy loss)는 다음과 같이 구한다

 

  • L_i의 가능한 min값은 0, max는 무한
  • weight값이 초기에 0에 가까운 값으로 초기화될 때 loss는 -log(1/class) -> sanity check에 이용

3) Softmax vs. SVM

  • datapoint의 score 값을 약간 변경했을 때,
  • softmax는 데이터에 민감해서 모든 data 값을 다 고려하기 때문에 loss 값이 변함
  • svm은 데이터에 둔감해서 data 값들이 변하게 되더라도 loss 값은 변하지 않음

2. Optimization

  • loss를 minimize하는 최적의 weight를 찾아가는 과정

Strategy 1: Random search

  • 절대로 사용해서는 안되는 전략 very bad idea

Strategy 2: Follow the slopenumerical gradient

numerical gradient

  • evaluate the gradient numerically
  • 1차원인 경우

  • 다차원인 경우
    • gradient는 vector로 나타남
  • approximate, slow, easy to write

analytic gradient

  • use calculus to compute gradient
  • exact, fast, error-prone3. Gradient Descent

  • step size는 learning rate이라고도 불림.
  • Learning rate와 regularization strength는 모두 hyperparameter이라 최적의 값을 찾는 게 매우 중요함

  • 임의의 위치에서 가운데 빨간색 지점으로 가는 것, 즉 기울기가 0에 가까운 지점으로 가는 것이 목표
  • full batch gradient descent: training set 전체를 이용
  • mini batch gradient descent: small portion of the training set 이용

Stochastic Gradient Descent (SGD)

  • mini batch gradient descent의 대표적인 예
  • approximate sum using a minibatch of examples 32/64/128 common

4. Image features - CNN 등장 이전의 방식들

  • CNN이 나오기 전 image classification 이 이루어진 방식
  • image feature를 추출한 다음에 concatenation 시켜서 하나의 giant column vector를 만들어 linear classifier 적용

example: color histogram

  • 모든 pixel들의 color를 추출

example: histogram of oriented gradients (HoG)

  • edge들의 orientation feature를 추출
  • 방향값을 히스토그램으로 표현

example: bag or words

  • 이미지의 random patch 잘라 냄 -> 이미지에서 각도, 색깔 등의 image feature 추출 -> 새로운 이미지가 들어오면 이미지를 잘라내어 cluster과 비교

이처럼 특징을 추출해서 linear classifier에 적용하는 방식이 아니라, model이 스스로 이미지 특징을 뽑아내도록 하는 것이 CNN

'Deep Learning > CS231n' 카테고리의 다른 글

CS231n 6강 summary  (0) 2021.06.23
CS231n 5강 summary  (0) 2021.06.23
CS231n 2강 summary  (0) 2021.06.23
CS231n 1강 summary  (0) 2021.06.23
cs231n 4주차 예습과제  (0) 2021.05.02