티스토리 뷰

CS231n

CS231n Lecture 3 | Loss Functions and Optimization

망고농장주인 2021. 10. 8. 21:24

Lecture 3 강의를 들으면

  • 가중치(W), Loss Function, Optimization 관계에 대해 이해할 수 있습니다.
  • Multiclass SVM Loss Function을 이해할 수 있습니다.
  • Regularization을 이해할 수 있습니다.
  • L1과 L2를 비교할 수 있습니다. 
  • Gradient Descent의 종류를 알고 이해할 수 있습니다. 

TimeStamp

시간 내용 부가 설명
00:00 공지사항 안내  
02:15 2강 복습  
04:42 2강에서 설명이 부족했던 Linear Classification 보충 설명  
05:55 어떻게 W를 정할지 (저번 강의에서는 임의의 W를 사용)  
07:25 W가 좋은지 나쁜지 판별할 수 있는 정량화 방법 필요 → Loss Function  
07:58 덜 구린 W 를 찾는 과정 → Optimization  
08:18 3개의 클래스를 예시로 image classification 과정 간략히 설명  
10:42 손실 함수의 구체적인 예시
: binary SVM 의 일반화 버전 → Multi-class SVM
 
11:23 Multi-class SVM 손실함수의 detail  
13:08 Hinge Loss(경첩 손실 그래프) s_yi = x 축
15:22 Multi-class SVM loss 계산 예시 이 예시를 보면 앞 설명들이 이해가 잘 간다.
17:40 '1을 더하는 것'은 어떻게 결정하는지?  
18:45 Q1. car score가 조금 변하면 어떤 일이 생길까? 정답 : no change
19:40 Q2. Multi-class SVM loss의 min/max? 정답 : 0/infinite
20:11 Q3. 학습 초반에 모든 스코어가 0에 가깝다면? 정답 : class-1
21:25 Q4. SVM Loss를 구할 때 correct class score도 더하면 어떻게 될까? 정답 : original loss + 1
22:06 Q5. Loss의 합이 아니고 평균을 구하게 되면 어떻게 될까? 정답 : 값은 달라지지만 비율은 비슷하다.
22:36 Q6. max(0, s_j - s_yj +1)^2 를 쓰면 어떻게 될까요? 정답 : 로스끼리의 차이가 극명해진다.
24:32 Numpy로 손실함수 코딩  
25:15 Q. Loss가 0인 W는 하나일까?  
27:30 test 성능을 고려하지 못한 예시 해결 방법
→ Regularization (단순한 W를 선택하도록 도와줌)
이때 '단순하다'의 의미는?
-> '오컴의 면도날' 참조
29:08 Regularization Penalty  
31:03 Regularization 종류 이런 R들은 딥러닝, 머신 러닝, optimization에서 모두 쓰인다.
32:45 'L2 Regularization'이 모델 복잡도를 어떻게 측정하는지?
L1을 고를지, L2를 고를지 ⇒ data&problem-dependent
L2 Regularization은 모든 x가 영향을 줬으면 하기 때문에 값이 고른(not coarse) 것을 더 선호한다. L1 Regularization은 정 반대이다. 다만 슬라이드에 나와있는 예제는 L1과 L2 값이 동일하다.
37:51 왜 Multi-class SVM Loss만 다루는지 설명  
38:20 MC SVM 외에 딥러닝에서 인기가 많은 손실함수
→ softmax MC SVM 와 softmax 비교
 
39:18 Multinomial Logistic regression 손실함수 수식 설명  
42:00 구체적인 예시  
43:00 Q. softmax의 min/max?  
45:10 multi-class SVM 처럼 softmax에서도 비슷한 방법으로 디버깅할 수 있다.
Q2. 스코어가 모두 0 근처에 모여있는 작은 수일때, Loss는?
정답 : log(class) = -log(1/class)
45:53 지금까지 배운 두 손실함수 비교  
48:23 Loss Function 전체적으로 정리하기 *supervised learning
49:33 Loss를 줄이는 W 찾는 방법 → OPTIMIZATION  
52:59 경사란 무엇일까?  
54:59 유한 차분 (numerical gradient) 수식 적용해보기  
57:00 미적(analytical gradient)  
58:10 numerical gradient를 디버깅 툴로 사용할 수 있다. analytical gradient가 잘 돌아가는 지
numerical gradient로 확인 (디버깅)
59:42 step size = Learning rate  
1:00:18 2차원 공간에서 본 손실함수와 그에 대한 gradient  
1:02:54 N이 커지면 gradient를 구하는데 시간이 많이 걸린다
→ 개선 방법: using SGD
→ 전체 데이터의 Loss를 구하는 것이 아니고 minibatch라는 작은 트레이닝 샘플 집합으로 나눠서 학습하면서 Loss의 전체 합과 실제 gradient의 추정치를 계산
 
1:05:09 Gradient Descent를 통해 Linear Classifier를 학습하는 실제 모습 http://vision.stanford.edu/teaching/cs231n-demos/linear-classify/
1:07:12 image features  
1:09:12 특징 변환의 예 : 컬러 히스토그램, HoG, Bag of Words(BOW)