Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

코딩세상

[딥러닝 기초] 2장 딥러닝 학습의 문제점 - 초기값 설정 문제와 방지 기법 본문

인공지능

[딥러닝 기초] 2장 딥러닝 학습의 문제점 - 초기값 설정 문제와 방지 기법

필륭 2023. 9. 7. 13:26

이전 포스팅에서 저희는 딥러닝 모델 학습의 문제점 중 기울기 소실 문제를 알아보고 이를 방지하기 위한 활성화 함수에 대해 알아보았습니다.

오늘은 딥러닝 모델 학습의 문제점 중 세번째 문제인 초기값 설정 문제와 방지 기법에 대해 알아보겠습니다.

 

 

- 잘못된 초기값 설정 - 초기화의 중요성

 

초기화의 중요성

 

위 그림과 같이 처음 학습을 진행할 때 가중치의 값이 w = 100으로 설정 되어있는 것처럼 초기값을 잘못 설정하게 되면 오른쪽의 그래프처럼 비 정상적인 값이 나오게 됩니다.

 

 

 

- 가중치 초기화(Weight Initialization)

 

가중치 초기화

 

그렇다면 가중치 초기화는 왜 해줘야될까요?

바로 활성화 함수의 입력값이 위 그림처럼 너무 커지거나 혹은 너무 작아지지 않게 만들어주려는 것이 가중치 초기화의 핵심입니다.

 

 

 

- 초기화 설정 문제 해결을 위한 Naive한 방법

 

정규분포를 이용한 초기화

 

위 그래프 중 왼쪽은 표준 정규분포를 이용해 초기화 한 방법이고, 오른쪽은 표준편차를 0.01로 하는 정규 분포로 초기화 한 것입니다.

표준정규분포는 정규분포를 평균이 0, 분산이 1인 분포로 변환하는 방법입니다.

 

두 그래프의 차이를 확인해보면 표준 정규분포의 경우 딥러닝의 깊이가 매우 깊고 노드가 많다면 값들이 0과 1로 수렴하는현상이 발생하게 되고, 이로 인해 제대로 학습이 이루어지지 않게 됩니다. 

이것을 바탕으로 표준편차의 값을 조절하면서 정규분포를 시도할 수 있고 표준편차를 0.01로 줄였을 때는 값들이 0과 1로 수렴하지는 않아 기울기 소실 문제가 발생할 가능성이 낮아지지만, 각 레이어들의 출력값이 0.5라는 한개의 값으로 수렴여 출력값이 거의 비슷하게 나올 수 있는 문제점이 발생할 수 있습니다.

 

 

- Xavier 초기화 방법 + sigmoid 함수

 

이렇게 정규분포 초기화 방법의 문제점을 감안하여 Xavier초기화 방법이 고안되게 되었습니다. Xaiver초기화 방법은 쉽게 말해 초기화 시키는 파라미터가 존재하는 Layer들의 입력/출력 노드 개수에 따라 동적으로 파라미터 값을 초기화 시키는 것을 말합니다.

 

 

Xavier 초기화 방법 + sigmoid 함수

 

위에서는 일반적으로 표준편차의 값을 조절하였다면 이후 표준 정규 분포를 입력 개수의 제곱근으로 나누어 진행하는 방법이 등장하였습니다. 

위 방법은 Sigmoid와 같이 S자 함수에 사용되었는데 왜냐하면 S자 모양을 띄고 있는 함수들에 대해 출력 값들이 정규 분포 형태를 가지고 있을 때 안정적으로 학습이 가능하였기 때문입니다.

 

 

 

- Xavier 초기화 방법 + ReLU 함수

 

Xavier 초기화 방법 + ReLU 함수

 

그렇다면 Sigmoid 함수에서 발전한 ReLU함수에 대해 Xavier 초기화 방법을 적용시키면 어떻게 될까요? 

위 그래프처럼 이전과는 다르게 레이어를 거쳐갈수록 값이 0에 수렴하는 것을 확인할 수 있습니다.

 

 

 

- He 초기화 방법

 

그렇다면 ReLU 함수에 적합하게 사용할 수 있는 파라미터 방법은 어떤것이 있을까요?

바로 He 초기화 방법입니다.

 

Xavier 초기화 방법 + ReLU 함수

 

He 초기화 방법은 표준 정규 분포를 입력 개수 절반의 제곱근으로 나누어 주는 방법이기 때문에 표준 정규 분포를 입력 개수의 제곱근으로 나누어 주는 기존의 Xavier 초기화 방법과는 약간 차이가 있습니다.

ReLU 함수와 He 초기화 방법을 사용했을 경우의 그래프는 위 그래프처럼 10층 레이어에서 0으로 수렴하는 문제가 발생하지 않게 됩니다.

 

 

 

- 적절한 가중치 초기화 방법

 

위에서 설명한 내용을 정리하면 아래와 같이 적을 수 있습니다.

 

   
   Sigmoid, Tanh의 경우 Xavier 초기화 방법이 효율적이다.

   ReLU계의 활성화 함수 사용 시 Xavier초기화 보다는 He 초기화 방법이 효율적이다.

   최근에는 ReLU계의 활성화 함수를 많이 사용하는 추세이기 때문에 He 초기화를 주로 선택합니다.

 

 

 

 

 

 

# 출처

 

엘리스 AI 트랙 7기 - [강의자료]  딥러닝 학습의 문제점

 

https://techblog-history-younghunjo1.tistory.com/236

 

[ML] 정규분포, Xaiver, He 파라미터 초기화 방법

이번 포스팅에서는 딥러닝 모델에서 파라미터를 초기화 하는 방법으로서 정규분포 방법, Xaiver, He 방법에 대해 알아보기로 하자. 파라미터 초기화하는 방법을 어떻게 하느냐에 따라 딥러닝 모델

techblog-history-younghunjo1.tistory.com

 

 

 

 

 

 

 

 

Comments