개발자식

[딥러닝] 딥러닝 모델 최적화 이론_가중치 초기화 본문

AI/Deep Learning

[딥러닝] 딥러닝 모델 최적화 이론_가중치 초기화

밍츠 2022. 5. 1. 02:39

딥러닝 모델 최적화 이론 

모델의 성능을 높이기 위한 의도와 용도에 초점을 맞추어 공부해보자

 

1. Weight Initialization

- Gradeint descent를 적용하기 위한 첫 단계는 모든 파라미터 세타를 초기화하는 것

- 초기화 시점의 작은 차이가 학습의 결과를 뒤바꿀 수 있으므로(critical 하지는 않음) 보다 나은 초기화 방식을 모색하게 되었다.

파라미터 세타 초기값에 따라 달라지는 cost function 값

- 발전된 초기화 방법들을 활용해 Vanishing gradeint 혹은 Exploding gradient 문제를 줄일 수 있다.

 

 

2. Weight Initialization의 중요성

 

처음 weight 값들을 평균이 0이며 표준편차가 1인 표준 정규분포를 이용해 초기화했을 경우에 Sigmoid 함수의 출력 값이 0과 1에 치우치는 현상이 발생한다. 

-> gradient는 0에 가까운 값을 갖게 되고 Vanishing gradient현상의 원인이 된다.

 

 

이번에는 표준편차를 0.01로 하는 정규분포 형태로 초기화 했을 때  Sigmoid 함수의 출력값이 0.5 중심으로 모여 있다. 표준편차를 1로 했을 때보다 Vanishing gradient 현상을 완화할 수 있다.

 

3. 발전된 Weight Initialization

 

Xavier Initialization (자비에, 이그재비어, 세이비어)

- Vanishing gradient 현상을 완화하기 위해서 가중치를 초기화할 때 Sigmoid 함수와 같은 S자 함수의 경우 가장 중요한 것은 출력 값들이 표준 정규 분포 형태를 갖게 하는 것이다. 

->안정적으로 학습이 가능하기 때문이다.

- 표준편차가 (1/앞선 layer의 퍼셉트론 개수)에 루트를 씌운 값 (절대적이지 않음)인 정규분포를 따르도록 가중치 초기화 

- 활성화 함수로 Sigmoid 함수나 tanh 함수를 사용할 때 적용

 

Xavier Initialization 과 ReLU 함수를 결합했을 때 아래 그래프와 같이 출력 값이 0으로 수렴하고 평균과 표준 편차 모두 0으로 수렴한다. 

-> ReLU 함수를 사용할 경우에 Xavier Initialization 방법을 사용할 수 없다.

He Initialization

- 활성화 함수가 ReLU 함수일 때 적용

- 표준편차가 (2/앞선 layer의 퍼셉트론 개수)에 루트를 씌운 값인 정규분포를 따르도록 가중치 초기화 

 

ReLU 활성화 함수를 이용한 5층 신경망에서 MNIST 테스트

Comments