신경망·연습 문제

Sinusoidal Positional Encoding

문제 설명PROBLEM

preview

Sinusoidal Positional Encoding

Bag of Embeddings(89) 에서 보았듯 attention 은 순서 정보 자체가 없음 → Transformer 는 임베딩에 "위치 신호" 를 더해 해결.

Vaswani et al., 2017 의 고정식(fixed) 인코딩:

PE(pos,2i)=sin ⁣(pos100002i/d),PE(pos,2i+1)=cos ⁣(pos100002i/d)\text{PE}(pos, 2i) = \sin\!\left(\frac{pos}{10000^{2i/d}}\right),\quad \text{PE}(pos, 2i+1) = \cos\!\left(\frac{pos}{10000^{2i/d}}\right)

여기서 d 는 embedding 차원. 짝수 index 는 sin, 홀수 index 는 cos, 주파수는 차원에 따라 기하급수적으로 감소.

과제

함수 positional_encoding(L, d) 를 완성하세요.

  • L: 시퀀스 길이.
  • d: 임베딩 차원 (짝수).
  • 반환: shape (L, d), 각 원소 [-1, 1].
  • 힌트:
    • i = np.arange(d // 2)
    • freq = 1.0 / 10000 ** (2 * i / d)
    • angles = pos[:, None] * freq[None, :] → shape (L, d/2)
    • 짝수 열: sin(angles), 홀수 열: cos(angles)

테스트 케이스

#이름검증
1shape (L, d)
2값 범위 [-1, 1]abs <= 1
3짝수 열 = sinpos=0 → 0
4홀수 열 = cospos=0 → 1
5공식 일치Vaswani 공식 ref 비교
개념 노트와 실수 포인트

신경망

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