내적과 직교
내적이나 이를 정규화한 값으로 임베딩의 관련도와 어텐션 점수를 계산해요.
단어는 벡터로, 관련도는 내적으로. 행렬을 곱하면 벡터의 표현이 달라져요. 하지만 행렬곱만 계속 이어 붙이면 결국 하나의 선형변환과 같아요. 복잡한 패턴을 만들려면 점수를 가중치로 바꾸는 소프트맥스(softmax)나 음수를 0으로 바꾸는 ReLU 같은 비선형 단계가 필요해요.
개념 비교를 위해 2차원 예시 좌표를 사용하지만,
실제 임베딩은 차원이 훨씬 높고, 단어 사이의 관계가 언제나 평행이동으로 나타나는 것은 아니에요.
세 단어를 골라 a−b+c의 위치를 확인해 보세요.
실제 임베딩의 축에는 대개 이름이 없어요. 좌표는 많은 글에서 함께 나온 문맥을 압축한 결과라서 자료의 편견도 남을 수 있어요. 벡터 산술은 관계를 살펴보는 도구이지, 단어의 뜻을 완전히 정의하는 식은 아니에요.
토큰마다 질의 q, 키 kᵢ, 값 vᵢ를 두고 맞춤 점수 sᵢ=(q·kᵢ)/√2를 구하면,
소프트맥스가 이를 합이 1인 양수 가중치로 바꿔요.
최종 출력은 값 벡터들을 가중평균한 z=Σαᵢvᵢ예요.
√d로 나누면 차원이 커질수록 내적이 지나치게 커지는 현상을 줄일 수 있고,
표의 지수값은 계산 중 수가 지나치게 커지는 일을 막으려고 모든 점수에서 최댓값을 뺀 뒤 구했어요. 이렇게 해도 정규화 결과는 같아요.
실제 AI 모형은 WQ, WK, WV로 질의·키·값을 만드는 규칙을 학습해요.
저랭크 적응(LoRA)은 큰 가중치 행렬 W를 그대로 두고, 랭크가 낮은 변화량 ΔW만 학습해요.
가장 단순한 랭크 1 식은 ΔW=abᵀ예요. ΔWx=a(bᵀx)이므로 출력이 변한다면
변화 벡터는 a와 평행해요. bᵀx=0이면 변화도 0이에요.
2×2 행렬에서는 랭크 1 인수 두 개가 줄이는 매개변수 수가 잘 드러나지 않지만,
m×n 행렬의 랭크 r 변화량은 mn개 대신 대략 r(m+n)개를 학습해요.
여기서는 매개변수 수보다 랭크 1 변환의 기하에 초점을 맞춰요.
편향이 없는 두 선형층을 이으면 W₂(W₁x)=(W₂W₁)x라서 다시 하나의 선형층이 돼요. 편향까지 있다면 하나의 아핀변환으로 합칠 수 있어요.
비선형 단계가 없으면 층을 늘려도 하나의 선형층이나 아핀층과 같아요. 중간에 ReLU를 넣어 꺾임을 만들면 더 복잡한 경계를 표현할 수 있어요.
행렬은 표현의 성분을 섞고 바꿔요. ReLU·소프트맥스 같은 비선형 연산은 꺾임이나 서로 다른 가중치를 만들어요. 신경망은 보통 두 종류의 연산을 함께 사용해요.
내적에서 행렬, 저랭크 변화량으로 이어지는 계산 구조를 한눈에 정리해 봐요.
내적이나 이를 정규화한 값으로 임베딩의 관련도와 어텐션 점수를 계산해요.
입력을 질의·키·값으로 바꾸는 계산과 신경망의 선형층을 행렬로 나타내요.
특잇값 분해(SVD)와 주성분분석(PCA)으로 저랭크 근사와 주요 변화 축을 찾아요.
AI 계산에 선형대수가 널리 쓰인다고 해서 AI 전체가 선형대수만으로 설명되는 것은 아니에요. 선형대수는 계산의 뼈대를 제공하고, 실제 동작에는 확률·최적화·비선형 함수·자료가 함께 필요해요.
결과 하나를 고르고 수치와 식을 기록하자. 그 결과가 성립하지 않는 조건도 함께 찾아보자.
새 단어 세 개의 결과를 기록하고 2차원 좌표의 한계를 찾아보자.
두 토큰의 가중치를 같게 만들고 두 내적이 만족할 조건을 식으로 써 보자.
x⊥b일 때 변화가 사라지는 까닭을 ΔWx=a(bᵀx)로 설명해 보자.
ReLU의 꺾임 좌표를 계산하고 활성화를 끈 그래프와 비교해 보자.