← 문제 목록/수치 안정 시그모이드
문제 해설

수치 안정 시그모이드

분류 기초 · easy

preview

수치 안정 시그모이드

6번 sigmoid-v1 의 실전 응용. 순진한 구현은 극단적 입력에서 NaN/overflow 경고를 냅니다:

1 / (1 + np.exp(-z))   # z = -1000 이면 exp(1000) 이 오버플로우

두 얼굴

σ\sigma 는 대수적으로 동치인 두 형태가 있어요:

σ(z)=11+ez=ez1+ez\sigma(z) = \frac{1}{1 + e^{-z}} = \frac{e^z}{1 + e^z}

  • z0z \geq 0 에선 왼쪽 식: exp(-z)1\leq 1 → 안전.
  • z<0z < 0 에선 오른쪽 식: exp(z)1\leq 1 → 안전.

부호에 따라 골라 쓰면 입력이 ±\pm\infty 여도 오버플로우 없이 0 또는 1 로 수렴합니다.

과제

함수 stable_sigmoid-v1(z) 를 완성하세요.

  • 스칼라 또는 NumPy 배열 입력.
  • 반환: 같은 shape, 유한 값.
  • np.where(z >= 0, ...) 로 분기.
  • 극단적 입력 (z = ±1000) 에서도 NaN/inf 없음.

테스트 케이스

#이름입력기대
1σ(0) = 0.500.5
2정상 영역[-1, 0, 1]naive 와 일치
3극단 음수 → 0-10000.0 (오버플로우 없이)
4극단 양수 → 110001.0
5배열 모두 유한[-2000, -1000, 1000, 2000]np.all(np.isfinite(...))
코드 작성
Loading...
실행 결과

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