신경망·연습 문제

2-Layer MLP (tanh 활성)

문제 설명PROBLEM

preview

MLP with Tanh

2-Layer MLP(84) 는 ReLU 를 썼죠. 이번엔 tanh 로 교체:

h=tanh(XW1+b1)\mathbf{h} = \tanh(X W_1 + \mathbf{b}_1) y=hW2+b2\mathbf{y} = \mathbf{h} W_2 + \mathbf{b}_2

Tanh vs ReLU

활성출력 범위0 근처 gradient포화
ReLU[0, ∞)1 (양수 영역)음수 영역 0
tanh(-1, 1)크다양끝 포화 (vanishing grad)
  • tanh는 출력이 0 중심 → 다음 층에 친화적 (LayerNorm 없이도 괜찮음)
  • 하지만 깊은 망에서는 포화로 gradient 사라짐 → ReLU가 주류

과제

함수 mlp_forward_tanh(X, W1, b1, W2, b2) 를 완성하세요.

  • 은닉층 활성에 np.tanh 사용.

테스트 케이스

#이름검증
1shape (N, D_out)
2W1=0, b1=0 → h=tanh(0)=0 → y=b2
3음수 은닉값도 통과 (ReLU와 차이)기대 수식 일치
4은닉값 범위 (-1, 1)
5알려진 toy 값
개념 노트와 실수 포인트

신경망

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