일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- improving deep neural netwroks
- 생체인증
- improving deep neural networks
- Train / Dev / Test sets
- Bias / Variance
- DeepLearning
- deeplearning.ai
- 딥러닝
- coursera
- tuning process
- Basic Recipe for machine learning
- cou8rsera
- andrew ng
- hyperparameter tuning
- C
- deeplearnging
- Today
- Total
규링링링
3주차 1-2) Using an appropriate scale to pick hyperparameters 본문
3주차 1-2) Using an appropriate scale to pick hyperparameters
규링링 2019. 5. 20. 21:33지난번에 임의의 값을 통해서 하이퍼 파라미터를 찾는것을 했는데 임의로 샘플링 하는것은 균등한 랜덤 값에서 값을 가져오는 것은 아니다. ( 글을 쭉 읽다보면 그림2에서 나오는데 learning rate를 0.0001~1로 할 때 0.1에서 1 사이에 좋은 값이 몰려있다.)
hidden unit의 갯수를 l층에서 정한다고 해보자. 50~100이 좋은 범위라고 가정할때 이 사이의 값을 고르는게 좋은 방법이라고 할 수 있고, 또는 layers의 총 갯수가 2~4 라고 할때 2,3,4 값을 정하는게 가장 좋을 수 있다.
하지만, hidden unit 또는 layers 갯수처럼 쉽게 적용하기 힘든 하이퍼 파라미터도 있다. 알파 값이 0.0001~1 사이라고 할 때 거의 좋은 값들은 0.1~1 사이에 90%가 있을 것이고 그 외에는 10% 밖에 없을 것이다. (맨 위에서 말한 균등한 랜덤 값이 아니다)
그래서 2번째 줄에서 나오는 것처럼 하이퍼 파라미터를 log scale이라고 해서 어느 정도 크기로 나눈다고 할때 (균일화)
그러므로 파이썬에서는 다음과 같이 도입하는게 가장 좋다고 한다. r= -4 * np.random.rand() alpa = 10^r
r는 -4부터 0의 임의의 수이고 알파는 10^-4(가장 왼쪽) 부터 10^0(가장 오른쪽) 사이의 값일 것이다.
만약~ 10^a와 10^b 사이의 값이라고 해보자 그러면 가장 왼쪽은 10^a일 것이다. log를 취해서 a= log{10}{0.0001} 이라고 하면 a는 -4 이고 오른쪽의 경우 0이다. 그러면 a와 b의 사이 값은 -4~0사이의 값이라는 것이다. 이것을 log scale 샘플링 이라고 한다.
마지막으로 exponentially weighted averages에 대한 베타 값을 추정하는 것인데. 0.9 ~ 0.999사이라고 가정해보자 (정확히 뭔소린지는 모르겠지만..) 이미 exponentially weighted averages를해서 0.9 같은 경우 (요일) 10일의 평균 기온이라고 할 수 있고 0.999의 경우 1000일의 평균치를 구하는 것과 같다. 이것은 오른쪽 상단과 같이 나누기가 어렵다. 그래서 방법으로 1 - 베타를 해가지고 0.001~0.01 (그림에서 잘못 그림)해가지고 나눌 수 있다. 그래서 [-3 ~ -1]
(왜 오른쪽 상단처럼 안하고 1을 빼서 하는지는 무슨 소린지는 이해 못했다.) 아마 베타가 0.999처럼 1에 근접할 경우에는 1000개에서 2000개 정도의 엄청난 갯수의 셈플링이 나올 수 있으닌까 1에 근접하지 않도록 멀리 떨어뜨리는 것 같다.
'deeplearning.ai > Improving Deep Neural Networks' 카테고리의 다른 글
3주차 2-1) Normalizing activations in a network (0) | 2019.05.21 |
---|---|
3주차 1-3) Hyperparameters tuning in practice: Pandas vs. Caviar (0) | 2019.05.21 |
3주차 Hyperparameter tuning 1-1 (0) | 2019.05.20 |
1주차 2-1) Regularization (수정?) (0) | 2019.05.15 |
1주차 1-3) Basic Recipe for Machine Learning (0) | 2019.05.14 |