Research Notes

[DL] Neural Network - ReLU and Weight Initialization 본문

Study/Deep Learning

[DL] Neural Network - ReLU and Weight Initialization

jiachoi 2023. 7. 3. 11:31

▶ ReLU의 출현

- 신경망의 층이 깊을때, Backpropagation을 사용하였을 경우 학습이 잘 안됨 : Vanishing Gradient(경사 감소 소멸)

- sigmoid의 잘못된 사용

입력값을 1보다 작은 값만을 곱하기 때문에 최종적인 값이 매우 작아질 수 밖에 없음

ReLU : Rectified Linear Unit

- ReLU 함수 : x가 0보다 크면 y=x, x가 0보다 작으면 0

- 깊은 신경망을 학습시킬때도 유용하게 사용할 수 있는 활성화함수.

▶ 다양한 Activation Functions

- sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU 등 여러 가지의 활성화함수가 존재

 

Weight 초기값 정하기

- Vanishing Gradient를 해결할 수 있는 방법

    1) ReLU 함수의 사용

    2) Weight의 초기값을 잘 정하기

- 초기값을 줄 때 주의점

   · 값에 0을 주면 안됨

   · RBM(Restricted Boatman Machine)을 사용하여 가중치 초기화를 시키는 네트워크를 사용할수도 있다.

▶ RBM(Restricted Boatman Machine)

- 2개의 레이어만 사용하여 encoder, decoder를 반복하여 pre-training을 함.

1. 처음의 두 레이어를 입력값과 유사하게 학습을 시킨다.

2. 그 다음의 두 레이어 학습

3. 그 다음의 두 레이어 학습

4. 실제 학습 데이터를 사용하여 마지막 학습 ; Fine Tuning

- RBM은 처음에는 획기적이었으나 복잡하였음.

 

▶Xavier Initialization

- 입력값(fan_in)과 출력값(fan_out)에 따라서 W을 랜덤하게 줌. (아래와 같은 방식)

# Tensorflow
W = np.random.randn(fan_in, fan_out)/np.squrt(fan_in)
# 2015 오류 개선
W = np.random.randn(fan_int, fan_out)/np.sqrt(fan_in/2)

- 이러한 형태로 주면 RBM과 유사한 성능을 낼 수 있다고 밝혀짐.