
v1 ReLU 의 "dead neuron" 문제: 음수 입력이 계속되면 gradient = 0 → 뉴런이 영원히 활성화 안 됨. ELU (Clevert et al. 2015) 는 음수 영역을 부드러운 지수 곡선 으로 바꿔 gradient 가 살아 있게 함:
(보통 1.0) 은 음수 포화 값 .
음수 영역 미분은 forward 값을 재활용 해서 ELU(z) + α 로도 계산 가능 (forward 출력 저장 시 효율적).
| 특성 | ReLU | ELU |
|---|---|---|
| 출력 | 0 | ∈ |
| 미분 | 0 (dead) | — gradient 생존 |
| 0 근처 매끄러움 | (꺾임) | (연속 미분) |
함수 elu_with_grad(z, alpha=1.0) 를 완성하세요.
z: 스칼라/배열.(out, grad) 두 numpy 배열, out.shape == grad.shape == z.shape.out[i] = ELU(z[i]), grad[i] = ELU'(z[i]).np.where(z > 0, z, alpha * (np.exp(z) - 1)).| # | 이름 | 검증 |
|---|---|---|
| 1 | 반환 2-tuple (out, grad) | |
| 2 | 양수 영역: out=z, grad=1 | |
| 3 | z=0 → out=0, grad=α | |
| 4 | 음수 극한 → out → -α, grad → 0 | |
| 5 | alpha 영향: alpha 2배 → 음수 영역 값/미분도 2배 | |
| 6 | 수치 미분과 일치 | 0 제외 어디서든 |
| 7 | shape 유지 (2D) |
코드를 작성하고 Run 을 눌러보세요.