← 문제 목록/ELU: Exponential Linear Unit + 미분 [medium]
문제 해설

ELU: Exponential Linear Unit + 미분 [medium]

활성화 함수 · medium

preview

ELU (Exponential Linear Unit) [medium]

v1 ReLU 의 "dead neuron" 문제: 음수 입력이 계속되면 gradient = 0 → 뉴런이 영원히 활성화 안 됨. ELU (Clevert et al. 2015) 는 음수 영역을 부드러운 지수 곡선 으로 바꿔 gradient 가 살아 있게 함:

ELUα(z)={zz>0α(ez1)z0\text{ELU}_\alpha(z) = \begin{cases} z & z > 0 \\ \alpha (e^z - 1) & z \le 0 \end{cases}

α>0\alpha > 0 (보통 1.0) 은 음수 포화 값 =α= -\alpha.

미분 (analytic gradient)

ELUα(z)={1z>0αezz0\text{ELU}'_\alpha(z) = \begin{cases} 1 & z > 0 \\ \alpha e^z & z \le 0 \end{cases}

음수 영역 미분은 forward 값을 재활용 해서 ELU(z) + α 로도 계산 가능 (forward 출력 저장 시 효율적).

ReLU 와의 차이

특성ReLUELU
z<0z < 0 출력0α(1ez)-\alpha (1 - e^z)(α,0](-\alpha, 0]
z<0z < 0 미분0 (dead)αez(0,α]\alpha e^z \in (0, \alpha] — gradient 생존
0 근처 매끄러움C0C^0 (꺾임)C1C^1 (연속 미분)

과제

함수 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
3z=0 → out=0, grad=α
4음수 극한 zz \to -\infty → out → -α, grad → 0
5alpha 영향: alpha 2배 → 음수 영역 값/미분도 2배
6수치 미분과 일치0 제외 어디서든
7shape 유지 (2D)
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.