본문 바로가기
IT/ML_용어

[ML][용어] GELU 함수

by Moons0827 2024. 10. 7.
반응형

GELU(Gaussian Error Linear Unit)함수는 입력 값을 정규 분포의 확률로 변환하여 활성화하는 방식입니다. 입력이 클수록 더 많이, 작을수록 덜 활성화되며, 이를 통해 부드럽고 확률적인 활성화가 이루어집니다. 최신 신경망 모델에서 자주 사용되며, 학습의 안정성과 성능 향상에 기여합니다.


GELU (Gaussian Error Linear Unit) 함수는 신경망에서 활성화 함수로 사용되는 함수 중 하나입니다.

ReLU (Rectified Linear Unit)와 유사하게 비선형성을 제공하지만, 보다 매끄럽고 자연스러운 방식으로 동작합니다. 

특히, Transformer와 같은 최신 신경망 구조에서 ReLU 대신 종종 사용되며, BERT 모델에서도 활성화 함수로 사용됩니다.

1. GELU 함수의 정의

GELU 함수는 입력 값이 특정 확률에 따라 활성화되는 방식입니다.

이를 위해 정규 분포와 오차 함수 (erf)를 활용하여 입력 값을 부드럽게 처리합니다.

수학적으로 정의하면 아래와 같습니다.

 

  • x는 입력값입니다.
  • 는 오차 함수 (Error Function)로, 표준 정규 분포에서 특정 값 이하의 확률을 계산하는 함수입니다.
  • P(X≤x)는 표준 정규 분포에서 Xx 이하일 확률을 나타냅니다.


2. 주요 특징

1) 정규 분포 기반

GELU는 입력 값 xx를 기준으로 정규 분포에 따라 값이 작으면 더 적게 활성화되고, 값이 크면 더 많이 활성화됩니다.

( 입력 값 가 크면 P(X≤x)가 1에 가까워지고, 출력 값도 x에 가까워짐.
입력 값 x가 음수이면 P(X≤x)가 0에 가까워지지만, 완전히 0으로는 변하지 않아 일부 활성화가 유지됨,)

이를 통해 입력이 음수일 경우에도 완전히 0으로 처리하지 않고 일부를 활성화할 수 있습니다.

2) 오차 함수 사용

오차 함수 erf(x)는 정규 분포의 누적 분포 함수로, 입력 값을 정규 분포에서의 확률로 변환합니다.

이는 신경망의 활성화 과정이 매끄럽고 연속적인 확률적 활성화로 이루어지게 합니다.


3. 결론

매끄럽고 확률적인 활성화 방식 덕분에 신경망에서 학습 성능을 향상시키고, 경사 하강법의 안정성을 높이는 데 기여할 수 있습니다.


4. GELU함수 코드 사용 예시

import torch
import torch.nn as nn

# PyTorch에서 GELU 함수 사용
gelu = nn.GELU()

# 입력 텐서
x = torch.tensor([[1.0, -0.5, 0.0, 2.0]])

# GELU 함수 적용
output = gelu(x)
print(output)

반응형

'IT > ML_용어' 카테고리의 다른 글

[ML][용어] ReLU 함수  (1) 2024.10.15
[ML][용어] Sigmoid 함수  (0) 2024.10.11
[ML][용어] softmax 함수  (1) 2024.09.30

댓글