32. Random Initialization

2023. 9. 9. 16:32Google 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으로 초기화해도 영향을 미치지 않음이 확인되었음.