Sagemath

김소은·2025년 6월 10일

Sagemath 실습 환경: sagemath cell

백터와 스칼라
벡터의 내적
벡터의 정사영

벡터 = 스칼라 + 방향성

데이터 유사(similarity)도 판단법

1. distancea

vector.norm()

2. 𝜃(cosine)

코시-슈바르츠 부등식

(0 ≦) |𝑥·𝑦| ≦ ||𝑥|| ||𝑦||
(0 ≦) |𝑥·𝑦| / ||𝑥|| ||𝑦|| ≦ 1
∴ |𝑥·𝑦| / ||𝑥|| ||𝑦|| = 𝑐𝑜𝑠𝜃 이 등식을 만족하는 𝜃를 찾고
각 𝜃를 비교했을 때, 𝜃가 0과 가까울 수록 데이터 유사도가 높다고 판단한다.

vector.inner_product()


벡터의 정사영

x = vector([2, -1, 3])
y = vector([4, -1, 2])
xy = x.inner_product(y) # x, y 내적
xx = x.inner_product(x) # x, x 내적
p = xy/xx * x # y를 x에 내린 정사영
w = y - p
print('x: ', x)
print('y: ', y)
print('p(projection): ', p)
print('w = y-p: ', w)


p = vector([3, -1, 2])
n = vector([1, 3, -2])
d = -6
pn = p.inner_product(n)
n_length = n.norm()
D = abs(pn + d) / n_length
print('D: ', D)


🤷🏻‍♀️ 정사영, 점과 평면 사이 거리 공식을 배우는 이유

"점에서 평면까지의 거리" 또는 "벡터의 정사영" 개념은 인공지능과 데이터 분야에서 굉장히 폭넓게 사용됩니다. 특히 다음과 같은 주요 응용 분야가 있어요:


✅ 1. 차원 축소 (Dimensionality Reduction)

  • 대표 예: PCA (주성분 분석)

    • PCA에서는 고차원 데이터 포인트를 저차원 공간(평면, 선 등)에 정사영(projection) 시켜 데이터를 압축합니다.
    • 각 점에서 평면까지의 거리를 최소화하도록 평면(주성분 축)을 찾습니다.
    • 이때 벡터 정사영을 수학적으로 활용해 **오차(재구성 오류)**를 계산하죠.

✅ 2. 클러스터링 & 분류기에서의 거리 계산

  • 예를 들어, 어떤 점이 특정 **평면(혹은 결정 경계)**에 얼마나 가까운지를 계산해 분류에 활용할 수 있어요.
  • **SVM (서포트 벡터 머신)**에서는 결정 경계 평면에서 각 점까지의 거리를 최대화하려고 하는데, 이 거리 계산이 바로 정사영 기반이에요.

✅ 3. 추천 시스템에서의 유사도 계산

  • 사용자 벡터아이템 벡터 사이의 내적을 기반으로 유사도를 측정할 때, 벡터 간의 투영 개념이 본질적으로 들어갑니다.
  • 한 벡터가 다른 벡터에 얼마나 가까운 방향으로 있는지를 보려면 정사영 개념이 필요해요.

✅ 4. 오차 계산 및 최적화 문제

  • 예를 들어, 어떤 모델의 예측값이 실제값으로부터 벗어난 정도를 측정할 때, 벡터 간의 거리 또는 오차 벡터의 정사영이 사용됩니다.
  • 최소 제곱법(Least Squares)은 결국 한 점을 평면(모델)에 정사영시켜 거리(오차)를 최소화하는 방식이에요.

✅ 5. 컴퓨터 비전에서의 거리 계산

  • 예를 들어, 3D 포인트를 카메라 평면에 투영할 때 또는 포즈 추정 문제에서도 점과 평면 간의 거리(정사영 거리)가 중요한 계산 요소입니다.

🔁 요약

정사영과 점-평면 거리 개념은 “고차원 데이터를 어떻게 단순화하고, 의미 있는 정보만 뽑아낼까”, “오차를 어떻게 측정할까”, “유사도와 분류 기준을 어떻게 세울까” 같은 인공지능 전반의 핵심 과제에 직접적으로 연결됩니다.


profile
개발자

0개의 댓글