"두 벡터의 내적은 벡터간의 크기와 방향이 얼마나 유사한가를 알려준다."
vector, scalar = 백터, 스칼라
cosine, sine = 코사인, 사인
1. 벡터는..
크기와 방향을 가지고 있다
2. 스칼라는..
단순히 크기만 가지고 있다.
3. 내적은..
- 두 벡터의 서로 대응되는 성분들을 곱한 뒤 모두 더하는 연산을함. 이 연산의 결과값은 스칼라값임. 이 스칼라 값은 두 백터의 크기와 방향이 얼마나 유사한가? 를 나타냄.
- 내적의 연산은 두 벡터 크기와 두 벡터가 이루는 각도 θ의 코사인 값을 곱함.
내적의 수식 : A⋅B=∣A∣∗∣B∣∗cosθ
내적의 최소/최대값 : −∣A∣∗∣B∣≤A⋅B≤∣A∣∗∣B∣
3-1. 수식에서 두 벡터의 크기를 곱하는건 이해가 가는데 왜 코사인θ을 곱할까?
- 먼저 θ는 두 벡터가 이루는 각도의 차(difference)임.
- 두 벡터의 내적은 두 벡터가 이루는 각 θ에 대해 벡터 하나를 다른 벡터에 투영(projection)하는 길이를 의미함.
- 다른 벡터에 투영할 때 고려해야하는것은 바로 방향과 크기임. 다시 말하지만 방향과 크기임.
- 따라서 이 '투영 길이'라는 것은 벡터 간의 방향 차이를 반드시 포함해야함. 그러기 위해선 사인이나 탄젠트가 아닌 코사인을 사용할수밖에 없는데 코사인만이 백터의 방향을 나타낼 수 있기 때문임. (사인은 삼각형의 높이이므로 방향과 상관이 없고 탄젠트는 각도에 대한 비율이므로 아예 기하학적 의미와 상관이 없음)
- 투영길이는 두 백터가 이루는 각도차이인 θ의 코사인 값과 벡터 크기의 곱으로 계산됨. 예를들어 벡터 A를 벡터 B에 투영할 때, 투영된 벡터 길이는∣A∣∗cosθ 임. 그래서 내적의 공식을 다시 쉽게 풀어쓰자면 ∣A∣∗cosθ 하여 A백터를 B백터로 투영하고 ∗∣B∣ 하여 두 백터의 방향과 크기를 모두 고려한 유사도 값이 스칼라 형식의 결과로 나오는 것.
4. 번외..
단순히 두 벡터가 얼마나 같은 방향으로 향하고 있는지만 궁금하다면 내적이 아닌 코사인 유사도 공식을 이용해 벡터간의 방향유사도를 구할 수 있다.
CosineSimilarity=cosθ=A⋅B∣A∣×∣B∣