Tech & TIL

03 - Optimization 본문

Boostcamp - AI tech/DL Basic

03 - Optimization

Jadon Yang 2021. 8. 10. 13:50

딥러닝에서 사용되는 Optimization(최적화)은 왜 사용할까. 이번 강의를 듣기 전에는 Loss와 Optimization의 개념 조차 제대로 알지 못했다는 것을 알게 되었다. 기존에는 backpropagation을 하면서 어찌어찌 weight와 bias가 갱신되는구나! 정도로 알고 있었다. 지금부터 차근차근 최적화에 대해 알아보자.

Optimization의 중요한 컨셉

  • Generalization
  • Under Fitting / Over Fitting
  • Cross-validation
  • Bias-Variance tradeoff
  • Bootstrapping
  • Bagging and Boosting

기본적인 용어 설명을 먼저 하고 해결 방안을 제시하려고 한다.

Generalization

일반적으로 학습을 시키게 되면, training error는 줄어든다. 하지만 training error가 0이 되었다고 해서 좋은 모델은 아니다. Test error 성능이 떨어질 수 있기 때문이다. 그 간격을 좁히는 것이 바로 generalization이다.

Cross-validation

Cross-validation is a model validation technique for assessing how the model will generalize to an independent (test) data set.

 

Cross-validation이 왜 필요할까? 

만약 데이터셋을 training data와 test data 두 개로 나눈다면, 모델을 학습하고 이 모델의 성능이 어떤지 측정하기 위해서는 training data의 일부를 사용하는 방법과 test data를 사용하는 방법이 있다. 전자의 경우 이미 모델이 training data를 학습했기 때문에 당연히 cheating이 되기 때문에 적절한 성능 측정 지표가 될 수 없다. 후자의 경우 모델 훈련과정에서 완전히 독립적으로 존재해야 하는 test data를 건드리는 것이기 때문에 test data로 성능 측정을 한다면 parameter가 test data의 영향을 조금이라도 받게 된다. 훈련을 시키지 않는데 왜 영향을 받을까라고 생각할 수도 있지만, test data를 사용해서 도출된 정확도를 기준으로 hyperparameter를 조절하기 때문에 간접적으로 영향을 준다고 할 수 있다.

Types

Exhuastive cross-validation

데이터셋을 training 및 test set로 나누는 모든 가능한 방법을 학습하고 테스트하는 교차 검증 방법.

아래 그림은 Leave-p-out cross-validation 기법 중 p = 1 일 경우이다.

source: wikipedia

 

Non-exhaustive cross-validation

이 방법은 원래 샘플을 분할하는 모든 방법을 계산하지 않는다. Non-exhaustive 방법들은 leave-p-out cross-validation 방법들의 근사치이다.

source: wikipedia

 

reference: Wikipedia

Comments