티스토리 뷰

ML

8. 하이퍼파라미터 튜닝 (Hyperparameter Tuning)

마로그래머 2023. 7. 26. 23:57
반응형

Coursera - Hyperparameter Tuning

이제까지 신경망을 학습시킬 때 사용하는 여러 하이퍼파라미터들(레이어, 히든유닛, 학습률 알파, 베타, 미니배치사이즈, 모멘텀파라미터 등등)이 있다.

그럼 이 많은 하이퍼파라미터들 중에 좋은 하이퍼파라미터를 어떻게 찾을 수 있을까?
체계적으로 하이퍼 파라미터를 튜닝할 수 있는 법을 알아보자.

대충 앤드류 응이 생각하는 하이퍼 파라미터 중요도 순위

    1. α (학습률)
    1. 모멘텀 β (0.9)
    1. 미니배치 사이즈
    1. 히든유닛
    1. 레이어
    1. 학습률 감쇠

머신러닝에서 하이퍼파라미터들을 정하는 법들.

수많은 하이퍼파라미터중에 어떤 하이퍼파라미터가 문제해결에 더 중요한지를 모르기 때문에 무작위로 정해야한다. 은닉유닛수를 정한다고 치면 50부터 100까지의 값들을 수직선상에 세워두고 무작위하게 값을 고를 수 있을 것이다. 그런데 모든 파라미터가 이렇게 적용되지는 않는다. 그래서 적절한 척도를 두고 무작위로 골라야한다.

로그척도사용하기

  • e.g) 학습률 α를 정한다고 치자.
    • 범위를 0.0001부터 1까지 생각할 것이다.
    • 만약, 균일하게 정한다면 0.0001에서 1까지의 값들 중에서 하나를 고를 것이다.
    • 하지만 이럴 경우 자원이 낭비된다.
      • 0.0001과 0.1 사이의 값을 탐색해서 골랐다치면 나머지 0.1과 1사이를 탐색하는 것에 90%의 자원이 쓰이고 단 10%의 자원만이 0.0001과 0.1 사이의 값을 탐색하는 것에 쓰인 것이다. 비효율적이다.
    • 그래서 선형으로 숫자를 쭉 나열해서 고르지 않고 로그 척도를 사용한다.
      • 로그척도를 사용하게되면 0.0001, 0.001, 0.01, 0.1로 나뉜 로그 척도 위에서 탐색하기 때문에 앞에서와 같이 0.1과 1 사이에서 90%의 자원을 때려박지 않게되고, 한정된 곳에 더 많은 자원을 사용할 수 있게 된다.
# -4에서 0사이의 무작위 값을 골라보자
r = -4*np.random.rand()
a = 10^r
 - -4 에서 0까지의 숫자를 무작위로 고르고 10의 지수로 씌워주면 예를 들었던 로그척도 완성!
  • 지수가중평균을 계산할 때 사용되는 하이퍼파라미터 β 도 이런 식으로 정해진다.

두번째 방법 정밀화 접근

성능이 좋은 하이퍼파라미터들을 찾아서 그 안에서 더 조밀하게 하이퍼파라미터들을 조정할 수 있다.

하이퍼파라미터는 어떻게 탐색할 수 있을까?

여러 분야에 적용되고 있는 딥러닝은 한 분야에서 잘 먹혔던 하이퍼파라미터가 다른 분야에서는 안 먹힐 수가 있다.

그리고 하이퍼파라미터들은 만족할만한 결과를 낼 때까지 계속해서 평가되고 수정된다. 이 과정을 어떤 방식으로 할까? 컴퓨터 자원에 따라 다음의 두 가지의 방식을 쓴다.

Babysitting one model (모델 돌보기)

데이터는 방대하지만 CPU/GPU 같은 컴퓨터 성능이 좋지않아서 적은 숫자의 모델을 한번에 학습시킬 때 사용한다.
학습 과정에서 모델을 돌보는 다음과 같은 과정을 거친다.

  • 0일차에 무작위하게 하이퍼파라미터들을 설정하고 학습을 시작
  • 학습곡선에서 비용함수나 valid세트의 오차가 줄어들 것이다.
  • 1일차에 학습이 잘 됐는지 확인한다.
  • 학습속도를 조금씩 올려서 더 나아지는지 본다.
  • 2일차에도 학습이 잘 됐는지 확인한다.
  • 모멘텀을 약간 올리거나 학습 속도를 약간 낮춰본다.

이런식으로 몇주, 몇달 동안 모델을 돌보면서 학습을 시키는 것이다. 여러모델을 동시에 학습시킬 자원이 충분하지 않을 때 사용한다.

앤드류 응은 한 마리의 새끼를 엄청나게 돌보는 판다에 이를 비유했다. 커뮤니티를보면 온라인광고, 컴퓨터비전과같이 큰 모델들은 이 방식을 사용한다고하더라.

Training many models in parallel (여러 모델을 함께 학습시키기)

  • 동시에 각각의 모델에 다른 하이퍼파라미터를 적용하여 학습시킨다.
  • 각각의 모델의 결과를 본다.
  • 최고의 성능을 내는 하이퍼파라미터를 적용한다.
    앤드류 응은 한 철에 1억개의 알을 낳는 캐비어에 비유했다.




반응형

'ML' 카테고리의 다른 글

오차행렬 (Confusion Matrix)  (0) 2023.07.27
9. 배치 정규화 (Batch Normalization)  (0) 2023.07.26
7. 학습률 감쇠 (Learning Decay), Local Optima  (0) 2023.07.24
6. Adam  (0) 2023.07.24
5. RMSProp(Root Mean Square Prop)  (0) 2023.07.24
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함