신경망·연습 문제

Padding Mask (가변 길이)

문제 설명PROBLEM

preview

Padding Mask

배치 내에서 문장 길이가 다를 때, 짧은 문장을 <pad> 로 채워 모양을 맞춤. 하지만 pad 위치는 attention / loss 에서 무시해야 함.

lengths (B,) 로부터 키 패딩 마스크 (B, L) 를 만듭니다:

Mb,j={Truej<lengths[b]Falsejlengths[b]  (pad)M_{b,j} = \begin{cases} \text{True} & j < \text{lengths}[b] \\ \text{False} & j \ge \text{lengths}[b] \;(\text{pad}) \end{cases}

예: lengths=[3,5,2], L=5

[[ T  T  T  F  F ],
 [ T  T  T  T  T ],
 [ T  T  F  F  F ]]

과제

함수 padding_mask(lengths, L) 를 완성하세요.

  • lengths: shape (B,), 각 시퀀스의 실제 길이.
  • L: 최대 길이 (int).
  • 반환: shape (B, L) bool.
  • 힌트: np.arange(L)[None, :] < lengths[:, None].

테스트 케이스

#이름검증
1shape (B, L), bool
2행마다 True 개수 = lengths
3pad 위치 Falsej ≥ lengths[b]
4전부 가득 찬 경우lengths=[L,L,L] → 모두 True
5길이 0 포함빈 행 전부 False
개념 노트와 실수 포인트

신경망

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