32. Random Initialization
2023. 9. 9. 16:32ㆍGoogle ML Bootcamp/1. Neural Networks and Deep Learning
매개변수를 0으로 초기화하는 것이 아니라 랜덤으로 초기화하는 것이 중요하다.
- W[1] = [w1, w2, ... , wnx]
- 이때 w1,w2,wnx가 모두 0으로 초기화 된다면 같은 값을 띄고, 결국 update도 같게되며 여러번 반복하더라도 같은 내용의 함수를 계산하고 있음.
- 그럼 결국 unit이 많을 필요가 없음. 동일한걸 계산하는데.
- 따라서 랜덤으로 초기화하는 것이 중요함.
import numpy as np
W[1] = np.random.rand((2,2)) * 0.01 # 초기화를 하더라도 0에 근접하는 아주 작은 수로 랜덤 초기화할 것
- 왜? 활성화 함수는 0 근처에서 가장 크게 값이 변하므로 input이 너무 크거나 너무 작다면 unit간 차이가 없는거나 마찬가지.
- 따라서 0.01을 곱하는 방식을 취함.
- 그렇다면 0.01은 고정적인가? 결론적으론 아니다. 0.01일을 택할때와 다른 상수를 선택할 때는 다음 강의에서 구분하도록 하자.
b[1] = np.zeros((2,1)) # b는 상수이므로 0으로 초기화해도 영향을 미치지 않음이 확인되었음.
'Google ML Bootcamp > 1. Neural Networks and Deep Learning' 카테고리의 다른 글
34. Forward Propagation in a Deep Network (0) | 2023.09.09 |
---|---|
33. Deep L-layer Neural Network (0) | 2023.09.09 |
31. Backpropagation Intuition (Optional) (0) | 2023.09.09 |
30. Gradient Descent for Neural Networks (0) | 2023.09.09 |
29. Derivatives of Activation Functions (0) | 2023.09.09 |