[머신러닝을 위한 기초수학] - 정사영행렬

Yerin Kim·2023년 4월 19일
0
post-thumbnail

Projection onto an Axis(축에 대한 사영)

공간 상의 어떤 점이나 객체를 한 축(axis)에 대해 수직으로 내려서 투영시키는 것
이 때, 투영되는 결과물은 해당 축에 대해 수직인 선분이 된다.

위 식은 벡터 v를 벡터 u에 대해 정사영시키는 공식이다.
이를 해석하면 "벡터 v를 벡터 u와 평행한 방향으로 투영시켰을 때의 크기"를 구하는 것이다.

구체적으로, compvu는 다음과 같이 계산된다.

compvu = (uT ⋅ v) / ∥u∥

여기서 uT는 벡터 u의 전치(transpose)이며, ∥v∥는 벡터 v의 크기(norm)를 나타낸다.

예를 들어, 벡터 v가 (3, 4)이고, 벡터 u가 (1, 1)일 때, compvu는 다음과 같다.

uT = [1 1]
v = [3][4]

u의 크기는 ∥u∥ = √(1^2 + 1^2) = √2 이므로,

compvu = (uT ⋅ v) / ∥u∥ = ([1 1] ⋅ [3 4]) / √2 = (3 + 4) / √2 = 7 / √2

따라서, 벡터 v를 벡터 u에 대해 정사영시켰을 때의 크기는 7 / √2가 된다.

projvu는 벡터 v의 단위벡터와 벡터 u에 대해 정사영시켰을 때의 크기를 곱한 벡터가 된다.

projvu = (uT ⋅ v / ∥v∥) ⋅ (v/∥v∥)

벡터 v의 단위벡터 : v̂ = v / ∥v∥ = (3/5, 4/5)

즉, projvu = compvu ⋅ v̂ = (7/√2) × (3/5, 4/5) = (21/5√2, 28/5√2)

결과적으로,
따라서, 벡터 v를 벡터 u에 대해 정사영시켰을 때의 벡터는 (21/5√2, 28/5√2)
이 벡터는 벡터 u와 평행하며, 벡터 v를 벡터 u와 평행한 방향으로 투영시켰을 때의 벡터이다.

즉, 결론!
벡터 v를 정사영시킨 행렬 P = v ⋅ vT / (∥v∥)^2

여기서, vT는 벡터 v의 전치행렬을 의미하며, ∥v∥는 벡터 v의 크기(길이)를 의미

이 식의 의미는, v를 단위벡터 u로 만들어서 u 방향으로만 투영하는 행렬을 구하는 것
행렬 P는 v 방향과 수직인 벡터에 대해서는 0으로 투영되며, v 방향에 대해서는 v 방향으로 투영된다.
따라서, P를 벡터 v에 곱하면 벡터 v를 v 방향으로 정사영시킨 벡터를 얻을 수 있다.

profile
내일의 나는, 오늘의 도전으로 만들어진다!

0개의 댓글

관련 채용 정보