NumPy 기초·연습 문제

배치 외적

문제 설명PROBLEM

preview

배치 외적 (Batched Outer Product)

외적(60번)batch 차원 에 대해 동시에 계산. PyTorch/TensorFlow 의 "첫 번째 축은 배치" 관례를 미리 맛봅니다.

R[b,i,j]=X[b,i]Y[b,j]R[b, i, j] = X[b, i] \cdot Y[b, j]

Shape 규칙:

  • X: (B, M)
  • Y: (B, N)
  • 결과: (B, M, N)

브로드캐스팅 트릭

X[:, :, None]   # (B, M, 1)
Y[:, None, :]   # (B, 1, N)
# 곱 → (B, M, N)

어디에 쓰이나

  • 미니배치 그래디언트 계산: 각 샘플별 weight gradient는 δ ⊗ x
  • Attention scoring matrices: Query × Key^T
  • Covariance accumulation

과제

함수 batched_outer(X, Y) 를 완성하세요.

  • 루프 없이 브로드캐스팅.
  • 반환: (B, M, N).

테스트 케이스

#이름검증
1shape (B, M, N)
2배치별 값각 b 에 대해 result[b] == outer(X[b], Y[b])
3B=1 케이스60번 외적과 일치
4루프 없이for/while 금지
개념 노트와 실수 포인트

NumPy 기초

  • ⚠️ axis 헷갈림: axis=0 은 행을 가로질러 → 열별 결과, axis=1행별 결과.
  • 브로드캐스팅: shape 를 뒤에서부터 맞춤(1 또는 같은 크기).
  • 반복문 대신 벡터화 연산. @(행렬곱) 와 *(요소곱) 구분.