1. Hyperparameter Tuning
: 최적의 하이퍼파라미터 세팅을 찾는 방법
(1) Tuning process
우리는 learning rate $\alpha$, $\beta$ (momentum), $\beta_{1}$, $\beta_{2}$, $\epsilon$ (Adam), # layers, # hidden units, learning rate decay, mini-batch size 등등 선택해야할 하이퍼파라미터가 매우 많다.
Ng 교수님은 빨->주->파 순서로 중요하다고 생각하신다고 한다.
- Grid search
Grid search는 왼쪽에 있는 그림처럼 hyperparameter를 찾는다. ML 초기에는 이런 방법을 많이 사용했다. 여러 개의 point 중에서 가장 잘 작동하는 point를 고르는 방식이다. 찾아야하는 Hyperparameter1이 $\alpha$이고, 2가 epsilon일 때, 상대적으로 $\alpha$가 더 많은 영향을 미치기때문에 grid search는 매우 비효율적이다. - Random search
말 그대로 랜덤하게 point들을 골라서 잘 나온 성능을 뽑는다. 이때 상대적으로 덜 중요한 hyperparameter2의 구간을 줄이고, 1의 구간을 좀 더 넓힌다면, 1보다는 좀 더 효율적으로 찾을 수 있다.

- Coarse to fine search
먼저 coarse하게 points를 찾고, 성능이 잘 나오는 영역만을 대상으로 fine하게 points를 찾는다.

(2) Hyperparametert 선택을 위한 적절한 scale 사용하기
- Picking hyperparameters at random
: # hidden units이나 # layer와 같이 정수 형태로 hyperparameter를 고르는 것은 randomly search해도 된다.
예를 들어 # hidden units ($n^{[l]}$)을 50에서 100 사이에서 가장 적절한 것을 찾고싶다하면, 50~100 사이에서 랜덤하게 uniform sampling을 하면 된다. - Appropriate scale for hyperparameters
: 하지만, learning rate를 0.0001에서 1사이에서 찾는다고 하면 (uniform하게 sampling하면), 0.0001~0.1 사이의 값들은 10%, 0.1~1.0 사이의 값들은 90%를 차지할 것이다. 따라서 적절하지 않다. 그래서 우리는 log scale을 활용해서 sampling을 한다.
r = -4 * np.random.rand() --> r은 [-4, 0] 에서 uniform하게 random sampling되고, 우리는 10^r 을 learning rate로써 활용한다.
'ML || DL > 이론' 카테고리의 다른 글
| [Coursera] DLS_C2W3: Multi-class Classification (0) | 2023.09.18 |
|---|---|
| [Coursera] DLS_C2W3: Batch Normalization (0) | 2023.09.18 |
| [Coursera] DLS_C2W2: Optimization Algorithms (0) | 2023.09.15 |
| [Coursera] DLS_C2W1: Practical Aspects of Deep Learning (0) | 2023.09.09 |
| [Coursera] Neural Networks and Deep Learning 수료증 (0) | 2023.09.08 |