티스토리 뷰
Coursera - Hyperparameter Tuning
이제까지 신경망을 학습시킬 때 사용하는 여러 하이퍼파라미터들(레이어, 히든유닛, 학습률 알파, 베타, 미니배치사이즈, 모멘텀파라미터 등등)이 있다.
그럼 이 많은 하이퍼파라미터들 중에 좋은 하이퍼파라미터를 어떻게 찾을 수 있을까?
체계적으로 하이퍼 파라미터를 튜닝할 수 있는 법을 알아보자.
대충 앤드류 응이 생각하는 하이퍼 파라미터 중요도 순위
- α (학습률)
- 모멘텀 β (0.9)
- 미니배치 사이즈
- 히든유닛
- 레이어
- 학습률 감쇠
머신러닝에서 하이퍼파라미터들을 정하는 법들.
수많은 하이퍼파라미터중에 어떤 하이퍼파라미터가 문제해결에 더 중요한지를 모르기 때문에 무작위로 정해야한다. 은닉유닛수를 정한다고 치면 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 |