티스토리 뷰

개인 공부

8. Weight Initialization

dasu 2022. 7. 16. 06:02

Background

  • Neural Network를 구성할 때, 큰 문제점 중 하나는 “어떻게 weight들의 초기값을 정할 것인가?”이다.
  • 만약 전부 00으로 정하게 되면, gradient 값이 전부 00이 되기 때문에 큰 의미가 없어진다.
  • 같은 값으로 정하게 되면, gradient 값이 한 layer마다 전부 같은 값으로 되기 때문에 weight들이 update 되는 것에 많은 제한 사항이 생긴다.
  • 따라서 같은 값이나 전부 00으로 초기화하는 것은 나는 업데이트할 생각이 없소라고 말하는 것과 비슷하다.

Method 1: Random Initialization

  • 가~장 간단한 방법으로는 모든 weight를 Random으로 정하는 것
  • 그 중에서도 Gaussian distribution을 사용했다고 하자.
  • 뭐 평균은 00이라고 하고, standard derivation을 11이라고 하자.
    • 즉, wN(0, 1)w\sim N(0,~1)
    • 이렇게 되면 w1\lvert w\rvert\geq1일 확률이 1P(1Z1)=12×P(0Z1)=0.31741-P(-1\leq Z\leq1)=1-2\times P(0\leq Z\leq1)=0.3174
    • 대략 31%31\%라는 건데, 이 정도면 진짜 굉장히 높은 확률임을 기억하자.
    • 그러면 Wx+b\lvert Wx+b\rvert의 값도 굉장히 커질 것이고, activation function으로 sigmoid-function을 활용하는 순간 gradient의 값이 거의 없다고 판단할 수 있는 Vanishing gradient problem에 직면하게 된다.
      • Wx+bWx+b의 값이 굉장히 커지는 이유는, WW는 모든 weight들을 모아놓은 값이기 때문이다.
      • layer들 사이의 weight parameter들은 굉장히 많은데, 이것들이 전부 11과 가까운 수면 Wx+bWx+b11이 수백, 수천개 더해져 있는 양상이 될 수 밖에 없다.
      • 시그모이드 특성 상 일정 값 이상부터는 기울기가 굉장히 작으므로, 숫자가 너무 커도 의미가 없음을 알 수 있다.
  • 표준편차가 너무 크면 안 좋으니 표준편차를 작게 줄여보자. 현재는 0.0050.005정도로 할 것이다.
    • 즉, wN(0, 0.005)w\sim N(0,~0.005)
    • 그러면 Wx+b\lvert Wx+b\rvert의 값이 00에 수렴할 것이고, sigmoid function의 값이 0.50.5, 즉 최대로 가게 된다.
    • 다만, 단점이 있다면 대부분의 node 값들이 00에 수렴하게 되어서 위의 same initialization 값과 동일하게 됨.
    • weight들이 가지는 의미는 non-linear function(activation function)을 거쳐가면서 feature을 잡는 것이 목표인데, 노드의 값들이 대부분 비슷해짐으로써 feature을 잡는 역할이 줄어져버림.

Method 2: Several Initialization.

  • 위의 문제들로 인해 다른 node들의 초기화 방법을 고려해야함.
  • 다만, 너무 복잡한 분포로 하면 골 때리기 때문에 gaussian에서 벗어나지는 않음
  • 추가로, 앞의 문제들을 해결하기 위해서 input layer의 개수에 따라 weight들을 다르게 설정할 필요가 있음! ⇒ Lecun, Xavier(sig-mid function), He(ReLU function)
  • 이것들이 모두 유익하다라는 것은 복잡한 수학적인 과정을 거치기 때문에 생략
  1. Lecun Normal / Uniform Initialization
    • Normal: WN(0, 1nin2)W\sim N\left(0,~\sqrt{\dfrac{1}{n_{\text{in}}}}^2\right)
    • Uniform: WU(1nin, 1nin)W\sim U\left(-\sqrt{\dfrac{1}{n_{\text{in}}}},~\sqrt{\dfrac{1}{n_{\text{in}}}}\right)
  1. Xavier Normal / Uniform Initialization
    • Normal: WN(0, 2nin+nout2)W\sim N\left(0,~\sqrt{\dfrac{2}{n_{\text{in}}+n_{\text{out}}}}^2\right)
    • Uniform: WU(6nin+nout2, 6nin+nout2)W\sim U\left(-\sqrt{\dfrac{6}{n_{\text{in}}+n_{\text{out}}}}^2,~\sqrt{\dfrac{6}{n_{\text{in}}+n_{\text{out}}}}^2\right)
  1. He Normal / Uniform Initialization
    • Normal: WN(0, 2nin2)W\sim N\left(0,~\sqrt{\dfrac{2}{n_{\text{in}}}}^2\right)
    • Uniform: WU(6nin, 6nin)W\sim U\left(-\sqrt{\dfrac{6}{n_{\text{in}}}},~\sqrt{\dfrac{6}{n_{\text{in}}}}\right)

Uploaded by N2T

'개인 공부' 카테고리의 다른 글

B. (Variational) Auto Encoder  (0) 2022.07.16
A. Attention  (0) 2022.07.16
7. Softmax & Loss (1)  (0) 2022.07.16
6. Universal Approximation Theorem  (0) 2022.07.16
5. Backpropagation  (0) 2022.07.16
댓글
최근에 올라온 글
공지사항
Total
Today
Yesterday
최근에 달린 댓글
링크
«   2024/05   »
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
글 보관함