
BERT, GPT, ViT 등 대부분 Transformer 가 FFN 내부에서 쓰는 활성화. ReLU 는 음수를 딱 잘라버리지만 GELU 는 확률적으로 잘라냄 — 큰 음수는 거의 0, 작은 음수는 부드럽게 감쇠.
정확한 정의:
여기서 는 표준정규 CDF. numpy.math.erf 대신 scipy.special.erf / np.vectorize(math.erf) 대신 직접 공식 을 써도 되고, 다음 tanh 근사도 실무에서 흔히 쓰임:
이 문제에서는 정확식 (erf) 을 구현하세요. math.erf 를 원소별로 적용.
함수 gelu-v1(x) 를 완성하세요.
| # | 이름 | 검증 |
|---|---|---|
| 1 | shape 보존 | |
| 2 | gelu-v1(0) = 0 | |
| 3 | 큰 양수 → ≈ x | gelu-v1(10) ≈ 10 |
| 4 | 큰 음수 → ≈ 0 | gelu-v1(-10) ≈ 0 |
| 5 | 공식 일치 | scipy/math.erf 기반 ref 비교 |
코드를 작성하고 Run 을 눌러보세요.