1장. 준비 수학과 Transformer 개요
정리
- 벡터는 숫자 한 줄(
(6,)), 행렬은 숫자 표((3, 4))입니다. 모델 안에서 낱말 하나는 벡터, 문장 하나는(낱말 수, d_model)행렬입니다. - 행렬곱은
(m, n) · (n, p) = (m, p)입니다. 안쪽 숫자가 같아야 곱해지고, 결과는 바깥 숫자를 따릅니다. 노트북의 A @ B 는[[4, 5], [10, 11]]이고, A @ A 는 오류입니다. - 내적은 같은 자리끼리 곱해 더한 값입니다. 1×4 + 2×5 + 3×6 = 32 로 같은 쪽이면 양수,
u·(-u) = -14로 반대 쪽이면 음수입니다. - Softmax 는 e^z 로 바꾼 뒤 합으로 나눕니다. 점수 [2.0, 1.0, 0.1] 은 확률 [0.66, 0.24, 0.10] 이 되고 합은 1입니다.
- 신경망의 층은 행렬곱으로 shape 를 바꿉니다. (4, 3) → (4, 5) → (4, 3) 에서 샘플 수 4는 그대로입니다.
- RNN 은 한 칸씩 기억을 덮어쓰며 읽고, Seq2Seq 는 문장을 고정 길이 context vector 하나로 넘기며, Attention 은 낱말을 쓸 때마다 입력의 필요한 곳을 다시 봅니다. 그래도 RNN 이 남아 순차 계산, 장거리 의존성, 기울기 소실의 한계가 있었습니다.
- Transformer(2017)는 RNN 없이 모든 낱말 쌍을 행렬곱 한 번으로 계산합니다. 구조는 입력 표현(2장), Encoder(3장), Decoder 와 출력 확률(4장)로 나뉩니다.