본문 바로가기
Machine Learning

DL #7 : 딥러닝 기울기소실 문제 해결 방법 (Vanishing Gradient)

by 무적물리 2020. 5. 24.

Vanishing Gradient Problem


깊고 넓은 딥러닝 모델을 학습시키기는 과정에서 출력값과 멀어질수록 학습이 되지 않는 현상을 기울기소실이라고 합니다. 이러한 심층신경망에서 가중치를 Back Propagation으로 학습시키는 과정에서 가중치가 발산하거나 곡선의 기울기가 0이되는 기울기 소실(Vanishing Gradient Problem) 문제가 발생합니다. 해당 문제는 20년 동안 해결되지 못했는데 원인은 시그모이드 합수 입니다.


시그모이드 함수는 0~1을 표현합니다. 하지만 시그모이드의 미분 값은 0~0.25 사이의 값만 표현가능합니다. 역전파로 결과값에 대한 가중치 계산 시 전갈되는 값이 1/4 감소되는 현상이 발생합니다. 세번 이상 미분계산 반복 시 0에 가까운 값이 되어 학습되지 않습니다. 따라서, 출력 값과 멀어질수록 학습이 되지 않는 현상이 발생합니다.


시그모이드

함수 결과 범위 : 0~1

도함수 결과 범위 : 0~0.25



하이퍼볼릭 탄젠트 활성화 함수

이를 해결하기 위해 하이퍼볼릭 탄젠트 활성화 함수가 도입되었습니다. 해당 함수의 결과는 -1~1 범위이며 시그모이드와 유사한 S자를 그리고 있습니다. 또한 하이퍼볼릭 탄젠트 활성화 함수의 도함수는 0~1 사이의 값을 표현할 수 있습니다. 따라서 하이퍼볼릭 탄젠트 활성화 함수를 사용하면 기울기 소실을 막을 수 있습니다.


하이퍼볼릭 탄젠트

함수 결과 범위 : -1~1

도함수 결과 범위 : 0~1



ReLU

ReLU 함수는 계산식이 간단하며 학습이 빠르다는 장점을 가집니다. 미분 값이 0 or 1이기 때문에 컴퓨팅 자원 소모가 적어 활성화 함수에 가장 많이 사용되는 함수입니다.


ReLU 

함수 결과 범위 : 0~x

도함수 결과 범위 : 0 or 1



댓글