
85번 MLP with Tanh 에서 활성함수를 GELU (Gaussian Error Linear Unit) 로 교체:
이게 BERT, GPT-2/3, ViT 등 대부분의 Transformer 의 FFN 층 활성.
| 활성 | x<0 영역 | 미분 | 사용처 |
|---|---|---|---|
| ReLU | 0 | kink at 0 | CNN 기본 |
| Tanh | 부호 반대, 포화 | smooth | RNN (구) |
| GELU | 음의 작은 값 | smooth | Transformer 기본 |
함수 mlp_forward_gelu-v1(X, W1, b1, W2, b2) 를 완성하세요.
0.5 * x * (1 + np.tanh(np.sqrt(2/np.pi) * (x + 0.044715 * x**3))).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (N, D_out) | |
| 2 | GELU(0) = 0 → W1=0, b1=0 → y=b2 | |
| 3 | GELU(x) ≠ ReLU(x) at x=-1 | 부호 있는 음수 |
| 4 | 대칭 실험: GELU(-1) < 0, GELU(1) > 0 | |
| 5 | 큰 양수 → GELU(x) ≈ x |
A(m×n) @ B(n×p) — 안쪽 차원이 같아야 함.코드를 작성하고 실행하면 5개의 테스트가 각각 표시됩니다.