본문 바로가기
인공지능/모두를 위한 딥러닝 시즌 2

Weight Initialization

by SH_L 2023. 8. 20.
반응형

[Xavier Initialization (Glorot Initialization)]

 

 

loss 그래프에서 loss가 최저인 지점을 찾는 것이 network의 목표다. 하지만 실제 loss 그래프는 굉장히 복잡하기에 그래서 local minimum에 빠지거나 saddle point에 도달하게 되는 위험이 있다.

 

이때, 출발점을 잘 설정한다면 위험 없이 global minimum에 도착할 수 있다.

 

이전까지 사용했던 weight initialization은 평균이 0, 분산이 1이었다. Xavier Initialization은 평균이 0, 분산이 2/Channel_in + Channel_out이다. Channel_ininput으로 들어가는 Channel의 개수를 말하고, Channel_outoutput으로 들어가는 Channel의 개수를 말한다. He initializationRelu 함수에 특화된 초기화 방법으로 평균은 0, 분산은 4/Channel_in + Channel_out이다.

 

 

 

[code] Create Network

 

 

이전에 Relu 함수에서 사용한 code와 거의 일치한다. Relu 함수와 다른 점으로는 Xavier Initialization을 사용하기 위해서는 weight_intRandomNormal()이 아닌 glorot_uniform()을 사용한다.

 

 

추가적으로 weight_inthe_uniform()을 사용해서 He initialization 방법을 사용할 수 있다

 

 

 

[code] Experiments (Eager mode)

 

 

weight 초기화 방법을 바꾼 것만으로도 약 10%의 성능 향상을 볼 수 있다.

반응형

'인공지능 > 모두를 위한 딥러닝 시즌 2' 카테고리의 다른 글

Batch Normalization  (0) 2023.08.20
Dropout  (0) 2023.08.20
Relu  (0) 2023.08.13
XOR 문제 딥러닝으로 풀기  (0) 2023.08.13
딥러닝의 기본 개념  (0) 2023.08.13