이 글은...
Andrew Ng 교수의 Deep Learning 강좌 C1W3L11까지의 내용을 정리한 것이다. 강의는 앞에서 배운 신경망 네트워크의 경사 하강법의 미분 관련 내용을 자세히 설명하였다. 그리고 각 층의 가중치 초깃값을 설정하는 방법에 대해서도 설명하였다.
내용 요약
역전파에대한 이해
쉽게 이해하기 어려웠다. 완전히 이해하지 못해도 알고리즘 구현에 큰 문제는 없다고 하니 일단 넘어가기로 했다. 필요하다면 다음에 충분한 시간을 가지고 이해해보기로 한다.
랜덤 초기화
신경망에서 가중치 $w$의 초깃값을 0으로 하면 안 된다. $b$ 값은 상관이 없다. 하지만 $w$값을 0으로 설정하고 시작하게 되면 어떤 입력 특성을 주어도 같은 결과가 나오기 때문이다. 그러면 여러 은닉층을 가지고있어도 하나의 은닉층을 가진 것처럼 동작하게 된다.
적당한 초기 $w$값을 설정하는 방법은 이런 식이다.
np.random.randn(2, 2) * 0.01
정규분포를 따르는 난수로 (2, 2) 크기 행렬을 만들고 0.01을 곱하였다. 마지막에 0.01을 곱하는 이유는 초깃값이 너무 크지 않도록 하기 위한 것이다. 활성화 함수로 tanh나 sigmoid를 사용하는 경우 입력값이 너무 크면 학습이 더뎌지는 문제가 있기 때문이다. 다른 값을 곱할 수도 있지만 얕은 신경망의 경우 0.01이 적당하다고 한다.
'연구 노트 > 머신러닝' 카테고리의 다른 글
[TIL] 210419 - Deep LearniNg (~C1W4L02) (0) | 2021.04.19 |
---|---|
[TIL] 210415 - Deep LearniNg (~C1W5L01) (0) | 2021.04.15 |
[TIL] 210413 - Deep LearniNg (~C1W3L09) (0) | 2021.04.13 |
[TIL] 210410 - Deep LearniNg (~C1W3L07) (0) | 2021.04.12 |
[TIL] 210406 - Deep LearniNg (~C1W3L05) (0) | 2021.04.06 |