내적(Dot product)
두 벡터(vector)가 얼마나 같은 방향을 향하는지 재는 수. 한 벡터의 (부호 있는) 그림자 길이 × 다른 벡터의 길이이며, |u||v|cos θ와 같다.
두 벡터
계산식은 성분의 곱
내적은 "비슷함"의 척도로 수학 전체에 퍼져 있습니다.
- 학생 n명의 키와 몸무게처럼 짝지어진 데이터 두 열이 있다고 합시다. 각 열에서 평균(mean)을 빼고 두 열을 n차원 벡터로 보아 내적한 뒤 n으로 나누면 공분산(covariance), 곧 두 양이 함께 커지고 작아지는 정도가 됩니다. 두 벡터 사이 각의 코사인(cosine)은 상관계수(correlation coefficient)입니다. 같은 방향이면 1, 수직이면 0, 반대 방향이면 −1입니다(분산(variance), 주성분 분석(principal component analysis)).
- 함수(function)도 벡터처럼 내적할 수 있습니다. 성분끼리 곱해 더하는 대신 두 함수의 값을 곱해 적분(integral)합니다(
). 예를 들어 0에서 2π까지 이라서 두 사인파(sinusoid)는 이 뜻에서 '수직'입니다. 이렇게 서로 수직인 사인파들을 좌표축으로 삼아 함수를 나타내는 것이 푸리에 급수(Fourier series)입니다. - 직선이나 평면 위에서 가장 가까운 점을 찾는 정사영과, 데이터에 가장 잘 맞는 직선을 찾는 최소제곱법(method of least squares)도 내적으로 계산합니다.
입력
내적을 두 벡터의 길이로 나누면 사이 각의 코사인만 남습니다. 길이와 상관없이 방향만 비교하는 셈이라, 문서를 단어별 등장 횟수의 벡터로 보고 두 문서가 얼마나 비슷한지 잴 때 쓰입니다. 긴 문서와 짧은 문서도 공평하게 비교할 수 있기 때문입니다(코사인 유사도, cosine similarity). 문서와 질문을 벡터로 바꾸고 코사인 유사도가 큰 문서를 찾아 언어 모델(language model)의 문맥에 넣는 방법이 검색 증강 생성(retrieval-augmented generation)입니다.
언어 모델의 어텐션(attention)도 쿼리(query) 벡터와 여러 키 벡터의 내적으로 비슷한 정도를 잰 뒤, 그 점수를 소프트맥스(softmax)로 합이 1인 가중치로 바꿉니다. 이때 쿼리와 키를 각자의 위치에 비례하는 각도만큼 돌린 뒤 내적하면, 점수가 위치에 대해서는 두 위치의 차에만 기대게 됩니다. 두 벡터를 함께 돌려도 내적은 그대로이고, 회전(rotation)을 이으면 각도가 더해지기 때문입니다(회전 위치 인코딩(positional encoding) RoPE, 위치 인코딩 참고).
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 벡터
… 일(회전)이 일어납니다. 벡터의 길이는 피타고라스 정리로 재고, 두 벡터가 얼마나 같은 방향인지는내적으로 잽니다. 통계에서도 같은 그림이 쓰입니다. 측정값 n개(예: 학생 n명의 키)를 한 줄로 늘어놓으면 …
- 행렬
… 행렬과 벡터의 곱을 성분 하나씩 보면, 결과의 첫째 성분은 첫째 행 (a, b) 와 (x, y) 의내적ax + by 이고, 둘째 성분은 둘째 행과의 내적입니다. 거꾸로 결과 b를 알고 Av = b가 되는 v를 …
- 정사영
… 발, Q가 직각삼각형을 이루고, P에서 Q까지는 그 빗변이라 수선보다 깁니다(피타고라스). 계산은내적하나면 됩니다. 그림처럼 직선이 원점을 지날 때, 직선 방향의 길이 1인 벡터를 \hat u , 원점에서 …
- 피타고라스 정리
… 차원이 늘어도 성분의 제곱을 모두 더해 제곱근을 씌우면 됩니다. 복소수의 크기 |a + bi| 도,내적으로 잰 벡터의 길이 \|\vec v\|^2 = \vec v\cdot\vec v 도 같은 식입니다. …
- 코사인 법칙
… = \|\vec a\|^2 + \|\vec b\|^2 - 2\,\vec a\cdot\vec b 이고,내적\vec a\cdot\vec b = ab\cos C 이 바로 보정항입니다. 코사인 법칙은 내적의 기하학적 …
- 푸리에 급수
… 다른 진동수의 사인파들이 "직교"한다는 사실입니다. 두 함수를 곱해 한 주기 동안 적분하는 것을 함수의내적으로 보면, \sin jx 와 \sin kx 의 내적은 j \ne k 일 때 0입니다. 그래서 f 와 …
- 분산과 표준편차
… 공분산 \operatorname{Cov}(X,Y) = E[(X-\mu_X)(Y-\mu_Y)] 을 두 변수의내적으로 삼으면, 확률변수를 화살표처럼 다룰 수 있습니다. 분산은 자기 자신과의 내적, 곧 길이의 제곱이 …
- 최소제곱 회귀
… 정사영한 점이 회귀 직선의 예측값입니다. 정사영에서는 남은 오차 벡터가 평면과 수직입니다. 이 조건을내적으로 쓰면(오차가 \vec x 와도 \vec 1 과도 내적이 0) 계수 \vec\beta = (m, b) …
- 주성분 분석
… 평균 위아래로 움직이는 정도)을 적은 것입니다. 점의 좌표를 X라 하면 방향 \vec u 로 투영한 값은내적\vec u \cdot X 이고, 그 분산은 \vec u^\top \Sigma \vec u 로 계산됩니다. …
- 열공간
… 이고, 오차 \vec b - A\hat x 는 평면과 수직입니다(정사영). 수직이라는 조건을 두 열과의내적이 0이라는 식으로 쓰면 정규방정식 A^{\top}A\hat x = A^{\top}\vec b 가 …
- 상관관계
… x_i-\bar x 들을 모아 n차원 벡터 하나를, y의 편차로 또 하나를 만들면 공분산은 두 벡터의내적에 비례하고, r은 두 벡터 사이 각 θ의 코사인입니다. 코사인이니 r의 크기는 결코 1을 넘지 않고, r …
- 평균으로의 회귀
… 벡터로 보면, 회귀 기울기 ρ는 한 벡터를 다른 벡터에 정사영했을 때 줄어드는 배율이고, 두 벡터의내적을 학생 수로 나눈 값입니다. 여기서는 두 점수가 '실력'이라는 공통 요인을 나눠 가져서 상관이 생겼는데, …
- 구면기하
… 중심에서 뻗은 길이 1인 벡터로 두면 그 각은 \arccos(\vec A\cdot\vec B) 입니다(내적). 세 변을 잇는 식은 구면 코사인 법칙 \cos c = \cos a\cos b + \sin …
- 측지선
… \vec A, \vec B 로 두면 대원 거리는 R\arccos(\vec A\cdot\vec B) 이고(내적), 이것을 위도와 경도로 풀어 쓴 것이 위의 공식입니다. 위선은 반지름이 R\cos\varphi 인 …
- 코사인 유사도
… 사이각 θ가 알려 줍니다. 각을 직접 재기보다 그 코사인을 쓰는 까닭은 계산이 쉽기 때문입니다.내적을 두 길이로 나누기만 하면 됩니다. 노랑 a와 파랑 b의 끝을 끌어 보세요. 지금 θ = °, 코사인 …
- 자카드 지수
… 재려고 쓴 '공동체 계수'가 바로 이 값입니다. 집합을 0과 1의 벡터로 보면 교집합의 크기는내적이 되고, 같은 내적을 다른 방식으로 나누면 코사인 유사도가 됩니다. 컴퓨터 비전에서는 예측한 상자와 …
- 거리 함수
… 회귀⟧)과 k-평균 군집은 일부러 이 제곱 거리를 줄입니다. 제곱은 매끄러워서 미분하기 쉽고,내적과 정사영으로 답이 깔끔하게 나오기 때문입니다. 비슷함을 재는 값을 거리로 바꿀 때도 조심해야 합니다. …
- 유클리드 거리
… 수 있습니다. 점 P, Q의 좌표를 벡터 \mathbf x , \mathbf y 로 쓰면 유클리드 거리는내적(두 벡터의 같은 칸끼리 곱해 모두 더한 값)으로 쓸 수 있습니다. d(\mathbf x, \mathbf …
- Lp 노름
… \le \|\mathbf x\|_2 \le \|\mathbf x\|_1 입니다. p = 2만내적에서 나옵니다( \|\mathbf x\|_2^2 = \mathbf x\cdot\mathbf x ). 그래서 …
- 보로노이 다이어그램
… 항이 지워지고 일차식 2\,x\cdot(b - a) = |b|^2 - |a|^2 만 남기 때문입니다(내적). 그러니 a의 영역은 'b보다 a에 가까운 쪽'이라는 반평면들을 모든 b에 대해 겹친 부분입니다. …
- 단어 임베딩
… 벡터가 길어지기 때문입니다. 길이를 무시하고 방향만 비교하면 빈도의 차이가 걸러집니다. 코사인은 두 벡터의내적을 길이로 나눈 것이라, 수십만 낱말 가운데 가까운 이웃을 찾는 일도 결국 큰 행렬 곱셈과 최근접 이웃 …
- 퍼셉트론
… 더하고 편향 b를 더한 값이 0보다 크면 1(노랑), 아니면 0(파랑)을 냅니다. 곱해서 더하는 부분은내적\vec w\cdot\vec x 이므로, 답이 바뀌는 경계 \vec w\cdot\vec x + b = 0 …
- 신경망
… 가중치로 알아봅니다. 2017년에 나온 트랜스포머는 문장의 낱말 벡터들을 각각 변환한 벡터들 사이의내적으로 각 낱말이 다른 낱말에 얼마나 주목할지를 정하는(어텐션) 신경망이고, 오늘날 대형 언어 모델의 …
- 이산 코사인 변환
… 1, …, N − 1)은 N칸 동안 반 바퀴를 k번, 곧 k/2바퀴 돕니다. 이 N개의 코사인 벡터는 서로내적이 0입니다. 서로 수직이고 0이 아닌 벡터 N개는 N차원 공간의 기저가 되므로, N개 값으로 된 어떤 …
- 일반 상대성 이론
… 어떤 기하인가"라는 물리의 물음으로 바뀐 것이 일반 상대성 이론입니다. 점마다 거리 재는 법을 주는 계량은내적을 점마다 다르게 정한 것이고 대칭 행렬로 적습니다. 측지선은 길이를 정류하게 하는 곡선이라 …
- 사원수
… \vec v) = (-\vec u\cdot\vec v,\ \vec u\times\vec v) 입니다. 곧내적에 음의 부호를 붙인 것과 벡터곱이 한꺼번에 나옵니다. 맥스웰은 1873년 『전기와 자기에 관한 …
- 선형 계획법
… 이익의 값을 바꾸면 이 직선이 화살표 c 방향으로 나란히 옮겨 갑니다. c는 이 직선들에 수직입니다(내적c \cdot x 가 같은 점들이니까요). 가장 큰 이익을 찾는 일은 이 직선을 c 쪽으로 밀어 가다가 …
- 서포트 벡터 머신과 커널
… b|/\lVert\vec w\rVert 입니다. 점을 \vec w 방향으로 정사영한 길이를 재는 셈이라내적이 들어갑니다. w와 b에 같은 수를 곱해도 직선은 그대로이므로, 가장 가까운 점에서 |\vec …
- 특잇값 분해
… = (3, 9)/\sqrt2 와 A\vec v_2 = (-3, 1)/\sqrt2 도 서로 수직입니다(내적이 (-9 + 9)/2 = 0 ). 변환 앞에서도 뒤에서도 수직인 두 방향이 있다는 것, 이것이 특잇값 …
- 기울기 벡터와 야코비 행렬
… 가장 크고, 반대 방향에서 -|\nabla f| 로 가장 작으며, 그 사이의 수직인 두 방향에서 0입니다.내적으로 쓰면 D_{\vec u} f = |\nabla f|\cos\varphi (φ는 ∇f와 u 사이의 …
- 오토인코더와 잠재 공간
… 봅시다. 아래 점 40개는 평균이 원점에 오도록 옮겨 둔 2차원 자료입니다. 인코더는 단위 벡터 w와의내적z = w·x로 점을 수 하나로 줄이고, 디코더는 x̂ = z w로 그 수를 다시 점으로 펼칩니다. 그러니 …
- 어텐션
… 이 찾기를 부드럽게 만든 것입니다. 찾는 것(쿼리 q)을 모든 열쇠(키 k_1, \dots, k_n )와내적으로 비교해 점수를 매기고, 소프트맥스로 점수를 합이 1인 양수 가중치로 바꾼 다음, 각 열쇠에 붙은 …
- 트랜스포머
… 이므로, k칸 뒤의 위치 벡터는 p와 상관없는 회전 행렬을 곱해 얻어집니다. 그래서 두 위치 벡터의내적은 PE(p)\cdot PE(q) = \sum_i \cos\omega_i(p - q) 로, 두 위치의 거리 …
- 위치 인코딩의 변천
… k만큼 떨어진 곳을 보는 일을 선형 사상 하나로 배울 수 있으리라는 것입니다. 같은 이유로 두 위치 벡터의내적은 거리에만 달려 있습니다. PE(m)\cdot PE(n) = \sum_{i} …
- 전문가 혼합
… 모여 있습니다. 전문가 네 명의 라우터 벡터 w_i 가 화살표이고, 토큰 x에 대한 전문가 i의 점수는내적s_i = w_i\cdot x 입니다. 점의 색은 1순위 전문가, 바깥 고리의 색은 2순위 전문가(k = …
- 검색 증강 생성
… 믿을 수는 없고, 인용된 출처를 실제로 확인해야 합니다. 이어지는 곳. 가까움을 재는 코사인 유사도는내적을 길이로 나눈 것이고, 길이 1인 벡터에서는 유클리드 거리와 같은 순위를 줍니다. 가장 가까운 것을 …