← 문제 목록/Bilinear Form x^T A y [medium]
문제 해설

Bilinear Form x^T A y [medium]

선형대수 · medium

preview

Bilinear Form xAyx^\top A y [medium]

v1 내적xy=ixiyix \cdot y = \sum_i x_i y_i. 더 일반적인 bilinear form 은 사이에 행렬 ARd×dA \in \mathbb R^{d \times d} 를 끼워 넣습니다:

x,yA=xAy=i,jxiAijyj\langle x, y \rangle_A = x^\top A y = \sum_{i,j} x_i A_{ij} y_j

어디에 쓰이나

  • Mahalanobis-like similarity: A=Σ1A = \Sigma^{-1} 로 두면 공분산 정규화된 유사도.
  • Attention score: query qq 와 key kk 사이 qWakq^\top W_a k 형태 (additive attention 변형).
  • Bilinear pooling (visual QA 등): 이미지 feature와 질문 feature 의 상호작용.
  • Metric learning: AA 가 학습 가능한 거리/유사도 행렬.

구현 트릭

  • x @ A @ y — 세 행렬 연쇄. 순서에 따라 비용이 다를 수 있지만 scalar 결과라 동일.
  • 배치: X (N, d), Y (N, d) 의 per-sample bilinear = (X @ A * Y).sum(axis=1) — element-wise 후 합. X@AX @ A 는 (N, d), * Y 도 (N, d), sum → (N,).
  • 루프 금지.

과제

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

  • X, Y shape (N, d), A shape (d, d).
  • 반환: shape (N,) — 각 샘플의 xiAyix_i^\top A y_i.
  • 힌트: (X @ A * Y).sum(axis=1).

테스트 케이스

#이름검증
1shape (N,)
2A=I → 일반 내적 (v1 확장)각 샘플 x·y
3A=0 → 0
4대칭 A: bilinear(x, A, y) == bilinear(y, A, x)
5손계산 2x2수동
6루프 금지
코드 작성
Loading...
실행 결과

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