신경망·연습 문제

Bag of Embeddings (평균)

문제 설명PROBLEM

preview

Bag of Embeddings

여러 토큰의 임베딩(88)평균해 하나의 벡터로 뭉치는 간단한 문장/문서 표현. Word2Vec 이전 시대에 텍스트 분류에서 강력한 베이스라인으로 통했고, fastText 나 recommender 에서도 기본 블록.

수식:

sb=1Ll=1LEidxb,l\mathbf{s}_b = \frac{1}{L} \sum_{l=1}^{L} E_{\text{idx}_{b,l}}

shape: idx_batch (B, L) → output (B, D).

순서 정보는 버림

  • 장점: 빠름, 순서 불변(permutation invariance).
  • 단점: "고양이가 쥐를 잡았다" vs "쥐가 고양이를 잡았다" 구별 불가 — Transformer 가 해결.

과제

함수 bag_of_embeddings(E, idx_batch) 를 완성하세요.

  • E shape (V, D).
  • idx_batch shape (B, L) 정수.
  • 반환: shape (B, D).
  • E[idx_batch] → shape (B, L, D).mean(axis=1).

테스트 케이스

#이름검증
1shape (B, D)
2L=1 → embedding_lookup 와 동일
3같은 토큰 반복 → 그 벡터 그대로
4평균 수식 일치
5다양한 B, L3×4, 5×2 등
개념 노트와 실수 포인트

신경망

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