# GELU 함수 (GELU Function)

GELU(Gaussian Error Linear Unit) 함수는 인공신경망에서 활성화 함수로 사용되는 비선형 함수 중 하나다. 2016년 Hendrycks와 Gimpel이 제안한 이 함수는 ReLU(Rectified Linear Unit)와 같은 전통적인 활성화 함수의 단점을 보완하기 위해 고안되었다. GELU 함수는 주로 깊은 신경망에서 학습 성능을 향상시키기 위해 사용된다.

GELU 함수의 수학적 정의는 다음과 같다.

$$
\text{GELU}(x) = x \cdot \Phi(x)
$$

여기서 $ \Phi(x) $는 표준 정규 분포의 누적 분포 함수(CDF)를 의미한다. 표준 정규 분포에서 CDF는 다음과 같이 정의된다.

$$
\Phi(x) = \frac{1}{2} \left\[1 + \text{erf} \left(\frac{x}{\sqrt{2}}\right)\right]
$$

erf는 오차 함수로 불리며, 이는 수치 해석에서 자주 사용되는 함수다.

GELU 함수의 핵심 아이디어는 입력 값이 정규 분포에 따라 확률적으로 활성화되는 것이다. 이는 입력 값의 부호와 크기에 따라 입력을 유연하게 조정하는 효과를 가져온다.

### GELU 함수의 수학적 표현

GELU 함수의 정확한 수식은 다음과 같다:

$$
\text{GELU}(x) = x \cdot \frac{1}{2} \left\[1 + \text{erf} \left(\frac{x}{\sqrt{2}}\right)\right]
$$

이를 간략화하여 사용할 수 있는 근사식도 존재한다:

$$
\text{GELU}(x) \approx 0.5x \left(1 + \tanh\left\[\sqrt{\frac{2}{\pi}} \left(x + 0.044715x^3\right)\right]\right)
$$

이 근사식은 실제 계산에서 GELU 함수의 복잡도를 줄여 효율성을 높이기 위해 사용된다. 근사식을 사용하더라도 원래의 GELU 함수와 매우 유사한 결과를 얻을 수 있다.

### GELU 함수의 특징

GELU 함수는 다른 활성화 함수에 비해 몇 가지 중요한 특징을 갖는다.

첫째, GELU 함수는 입력 값의 크기와 부호에 따라 활성화 여부를 유연하게 조정한다. 이는 신경망이 학습 과정에서 비선형성을 보다 효과적으로 반영하게 해준다.

둘째, ReLU와는 달리, GELU 함수는 음수 값도 일정 확률로 활성화한다. 이는 입력 값이 매우 작을 때도 정보 손실을 최소화할 수 있음을 의미한다.

셋째, GELU 함수는 수학적으로 연속적이며 미분 가능한다. 이는 역전파 과정에서 매끄러운 그레디언트를 제공하여 안정적인 학습을 가능하게 한다.

### GELU 함수의 장점과 단점

GELU 함수는 다음과 같은 장점이 있다.

* 신경망의 학습 성능을 향상시킬 수 있다.
* 입력 값에 따른 비선형성을 보다 유연하게 반영할 수 있다.
* 음수 값을 포함한 입력을 보다 효과적으로 처리할 수 있다.

그러나 GELU 함수는 ReLU나 다른 활성화 함수에 비해 계산이 복잡하다는 단점도 있다. 특히 표준 정규 분포의 누적 분포 함수를 사용하기 때문에 계산 비용이 상대적으로 높다. 따라서 대규모 신경망에서의 적용 시, 근사식을 사용하는 것이 일반적이다.

***

관련 자료:

* Hendrycks, D., & Gimpel, K. (2016). Gaussian Error Linear Units (GELUs). arXiv preprint arXiv:1606.08415.
* BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. (2019).
