신경망·연습 문제

Mish Activation [medium]

문제 설명PROBLEM

preview

Mish Activation [medium]

v1 SiLUxσ(x)x \cdot \sigma(x) 라면, Mish (Misra 2019) 는 tanh ∘ softplus 를 곱:

Mish(x)=xtanh(softplus(x))=xtanh(ln(1+ex))\text{Mish}(x) = x \cdot \tanh(\text{softplus}(x)) = x \cdot \tanh(\ln(1 + e^x))

왜 또 다른 활성화

  • Smooth + non-monotonic: SiLU 와 비슷하지만 약간 더 부드러운 곡선.
  • YOLOv4 가 SiLU 대신 Mish 로 교체해 정확도 향상.
  • SiLU/GELU/Mish 가 CNN/Transformer 에서 거의 교환 가능 (벤치별로 약간 차이).

수치 안정성

exp(x) 가 큰 양수에서 오버플로 → stable softplus: softplus(x)=max(x,0)+ln(1+ex)\text{softplus}(x) = \max(x, 0) + \ln(1 + e^{-|x|})

과제

함수 mish(x) 를 완성하세요.

  • 입력: shape 임의.
  • 반환: 동일 shape.
  • x=1000 같은 큰 값도 inf/nan 없이 처리.

테스트 케이스

#이름검증
1shape 보존
2mish(0) = 0
3큰 양수 → ≈ xmish(20) ≈ 20
4큰 음수 → 0 근처finite, 작음
5알려진 값 mish(1) ≈ 0.8651
6SiLU 와 구별 (같지 않지만 근사)
7수치 안정성 (x=±1000)inf/nan 없음
개념 노트와 실수 포인트

신경망

  • 순전파 → 손실 → 역전파(연쇄법칙) → 갱신.
  • ⚠️ 행렬곱 차원: A(m×n) @ B(n×p) — 안쪽 차원이 같아야 함.
  • 비선형 활성화가 없으면 층을 쌓아도 선형. 가중치 초기화 중요.