Hello Computer Vision

GELU에 대해 이해해보기 본문

딥러닝/파이토치

GELU에 대해 이해해보기

지웅쓰 2023. 2. 16. 16:27

최근 ViT라든가 CNN논문들을 살펴보면 ReLU 가 아닌 GELU를 사용하는 경우가 많은데 한번 살펴보려고 한다.

(논문에서 처음 보았을 때는 오타인줄 알았다..)

 

일단 파이토치 공식문서에 올라와있는 공식들을 한번 살펴보면 다음과 같다.

 

$GELU(x) = 0.5 * x * ( 1 + Tanh(\sqrt{(2/\pi)} * (x + 0.44715 * x^{3})))$

 

상당히 직관적이었던 ReLU와는 달리 조금 복잡한 것을 확인할 수 있다.

적용되는 기울기를 살펴보면 ReLU와 비슷하지만 x가 음수인 부분에서 약간의 기울기가 발생하며 값이 낮아질수록 0으로 수렴함을 알 수 있다.

 

GELU함수는 ReLU, dropout, zoneout 함수들의 특징들을 조합하여 유도되었다고 하는데 

ReLU함수가 x부호에 따라 0,1을 deterministic하게 곱하고 dropout은 0,1을 stochastic하게 곱한다는 것을 합쳐

x에 stochastic하게 곱하면서도 이 stochasitcity한 값을 부호가 아닌 x의 값에 따라 정하는 것이다. 그리고 이 값은

$m - Bernoulli(\Phi (x))$ 를 곱한다고 한다.

$\Phi (x) = P(X <= x) , X~ N(0,1)$ 를 뜻하는데 x는 배치정규화를 거치면 일반적으로 정규분포 양상을 띄기 때문에

정규분포를 사용햇다고 한다. 따라서 x가 줄어들수록 함수값이 줄어드므로 x가 dropped될 확률이 높아진다고 한다.

 

 

참조 블로그 : https://hongl.tistory.com/236