[AIAS] 7. Hyperparameter Tuning

c_10.log·2023년 5월 28일

Machine Learning 💻

목록 보기
7/9
post-thumbnail

본 내용은 인하대학교 정보통신공학과 홍성은 교수님의 인공지능응용 강의내용을 기반으로 작성한 내용입니다.

Hyperparameters

  • Network 구조(layer 개수, weights,,)
  • epoch 수
  • Learning rate
  • Regularization
  • Batch Size
  • ...
  • 최적의 Hyperparameter를 찾는 방법
  • Grid Search : 가능한 경우의 수를 다 해보고 최적의 parameter를 선정하는 방식
  • Random Search : 무작위로 parameter를 선정하고 조건을 좁혀나가면서 최적의 parameter를 선정하는 방식

Steps to choose Hyperparameters

Step 1. 초기 loss 확인

  • weight decay (=Regularization Loss)
  • Regularization Loss 없이 단순히 Data Loss만을 구해본다.
  • Why? 일단 초점은 Data Loss를 줄여야 한다. 이후 다른 Loss는 더 좋은 학습을 위한 것이지, 기본적으로는 Data Loss가 적은 것이 중요하다.

Step 2. Train Data의 일부 적은 Sample에 Overfitting

  • 일단 Loss Function 통해 나온 Loss가 최대한 적게 해야한다.(과적합) 이후 문제가 되는 점을 해결하는 방식으로 해야한다.
  • overfitting 과정에서 Loss가 감소되는 경향 X -> Learning Rate가 너무 낮음 -> Learning Rate 수정
  • overfitting 과정에서 Loss가 발산한다 -> Learning Rate가 너무 높음 -> Learning Rate 수정

Step 3. Loss를 낮추는 Learning Rate 찾기

  • 실험을 통해 찾았다면, 과적합까지는 성공 시켰다는 뜻이다.

Step 4. 서서히 Regularization Loss 도입

  • Weight Decay(=Regularization Loss) ON
  • overfitting 안 되게

Step 5. Train Data 전체에 대해 학습

  • train data 크기를 키우기
  • overfitting 안 되게

Learning Curves

  • 학습이 잘 되었는지 확인할 수 있는 두가지 그래프
  • Training Loss : 점차 떨어지는 경향을 보여야 좋은 학습
  • Train/Valid Accuracy : Valid Accuracy가 점점 올라가야 좋다.

Train/Valid Accuracy

  • 좋은 경향을 보임을 알 수 있다. Epoch수를 더 늘려 Valid Accuracy를 높일 수 있다.
  • Overfitting : Train Accuracy는 학습이 반복될수록 오를수밖에 없는데, 두 그래프가 벌어지게 되면 모델이 과적합 되고 있다고 볼 수 있다.
  • 이를 해결하기 위해서 Regularizaiton Loss를 높여줘야 한다.(람다:Regularizaiton Strength)
  • Underfitting : Train Accuracy는 학습이 반복될수록 잘 맞출 수 밖에 없다. 그럼에도 Valid Accuracy와 같다는 것은 Train 조차 잘 못하고 있다는 뜻이다.
  • 이는 model의 구조가 너무 가벼워서 Train이 제대로 이루어지지 않아 생기는 문제이다.

0개의 댓글