← 문제 목록/Sigmoid Backward (VJP chain rule) [medium]
문제 해설

Sigmoid Backward (VJP chain rule) [medium]

역전파 · medium

preview

Sigmoid Backward (VJP) [medium]

v1 시그모이드 미분σ(z)=s(1s)\sigma'(z) = s(1 - s). 역전파에서 실제 필요한 건 chain rule 연결:

Lz=Lss(1s)\frac{\partial L}{\partial z} = \frac{\partial L}{\partial s} \cdot s (1 - s)

여기서 s=σ(z)s = \sigma(z) 는 forward 에서 저장된 출력. 이 함수가 Vector-Jacobian Product (VJP) 의 한 단위 블록.

왜 s 를 저장?

  • s(1s)s(1-s)zz 로 재계산하지 않고 forward 에서 이미 계산된 결과 를 재활용.
  • 메모리 ↔ 계산 트레이드오프: activation 을 저장해 backward 속도 향상.

입출력

  • Input: dout (shape 임의), s 같은 shape.
  • Output: dz 같은 shape, elementwise dout * s * (1 - s).

과제

함수 sigmoid_backward(dout, s) 를 완성하세요.

  • dout: 상위 gradient.
  • s: forward 에서 계산된 sigmoid 값.
  • 반환: dout * s * (1 - s).

테스트 케이스

#이름검증
1shape 유지
2s=0.5 → dout * 0.25최대 기울기
3s=0 또는 1 → 0포화
4dout=0 → 전부 0
5선형성: sigmoid_backward(ad, s) = asigmoid_backward(d, s)
62D input 처리
7수치 미분과 일치 (스칼라)
코드 작성
Loading...
실행 결과

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