좌표계에서의 벡터
벡터 v =(v1,v2,…,vn)
벡터의 길이 : ∣∣v∣∣=v12+v22+⋯+vn2
벡터의 방향 : 벡터를 벡터의 길이로 나눈 것
∣∣v∣∣1v
내적
두 벡터 u와 v에 대한 내적(inner product 혹은 dot product)는 다음과 같이 정의된다.
- 좌표계 없이 표현할 경우
두 n 벡터의 길이와 두 벡터 간의 사이각 θ를 통해 다음과 같이 정의된다.
u⋅v=∣∣u∣∣∣∣v∣∣cosθ
- 좌표계에서 표현할 경우
u=(u1,u2,…,un),v=(v1,v2,…,vn)의 좌표값을 통해 다음과 같이 정의된다.u⋅v=u1v1+u2v2+⋯+unvn
직교
두 벡터 u, v간 내적이 0이면 두 벡터는 직교(orthogonal)이다.
u⋅v=0⟺u⊥v
- 직교 한다는 것의 물리적 의미는 u⊥v일 때, u 방향으로의 전진은 v 방향에서 전혀 측정되지 않는다는 것이다. 반대도 마찬가지 (각 방향으로서의 전진에 서로 관계가 없다고 이해하면 될듯)
투영
두 벡터 u, a가 있을 때 벡터 u를 a 위에 투영한 벡터를 projau라고 하고, 다음과 같이 계산한다.
- projau = 길이 * 방향일 때, 길이와 방향을 각각 구한다.
- projau(빨간색 화살표)의 길이는 ∣∣u∣∣cosθ이다.
- 이 때, 앞서 u⋅a=∣∣u∣∣∣∣a∣∣cosθ이기 때문에, ∣∣u∣∣cosθ=∣∣a∣∣u⋅a 이다.
- 또한 projau의 방향은 a의 방향과 같다.
- 따라서 투영된 벡터 projau는 다음과 같다.
projau=(∣∣a∣∣u⋅a)(∣∣a∣∣1∣∣a∣∣)=(∣∣a∣∣2u⋅a)a
- 이를 다르게 말하면 u의 기저 벡터 a에 대한 좌표값이라고 할 수 있다.
보완
이 때, 벡터 u를 a 위에 투영하고 남은 보완 벡터(complement vector)는 u−projau이다.(파란색 화살표)
그리고 투영된 벡터와 보완 벡터는 서로 직교한다.
projau=⊥(u−projau)u=projau+(u−projau)
- 두 벡터 u, a가 있을 때, 투영과 보완의 개념을 이용해 직교분할 할 수 있다.
직교 행렬과 선형 시스템
- 행렬을 좌표계로 볼때, 행렬은 각 열벡터가 기저를 이루는 좌표계이다.
- 직교 : 내적의 합이 0 일때
- 직교 행렬 : 주어진 행렬의 모든 열 벡터가 서로 직교하는 것
- 정규직교행렬 : 주어진 행렬이 직교행렬이고 모든 열벡터의 크기가 1인것
선형 시스템 Ax = b에서 행렬 A가 직교행렬이면, 해 x는 역행렬 A−1의 계산 없이 다음과 같이 구할 수 있다.
- x의 i번째 요소는 투영으로 계산할 수 있다. 즉 벡터 b를 행렬 A의 각 열벡터 ai에 투영한 연산 proj aib로부터 xi=∣∣ai∣∣2b⋅ai 임을 계산할 수 있다.
- x 의 i번째 요소와 j번째 요소의 계산은 독립적이다. 즉 x의 계산은 병렬 처리 가능하다.
선형 시스템 Ax = b에서 행렬 A가 직교행렬이면, 해 x는 역행렬 A−1의 계산 없이 다음과 같이 구할 수 있다.
- x의 i번째 요소는 내적으로 계산할 수 있다. 즉 벡터 b를 행렬 A의 각 열벡터 ai에 투영한 연산 proj aib로부터 xi=b⋅ai 임을 계산할 수 있다.
- x 의 i번째 요소와 j번째 요소의 계산은 독립적이다. 즉 x의 계산은 병렬 처리 가능하다.
QR 분해
행렬 Q를 다음 두 행렬의 곱으로 나누는 행렬분해
- Q : orthogonal matrix(정규직교행렬)
- R : upper triangular matrix(상삼각행렬)
Ax = b 문제를 QR 분해시키면
Ax=b=(QR)x=Q(Rx)=Qy=b
QR 분해는 그람-슈미트 과정(Gram-Schmidt process)을 행렬로 코드화한 것인데 의미적으로
- Q : 행렬 A에서 정규직교성을 추출한 행렬
- R : 행렬 A에서 정규직교성을 추출한 후 남은(residual) 상삼각행렬
을 의미한다.
QR 분해의 장점
-
빠른 계산 : 선형 시스템 Ax=b의 해를 구할 때, Q를 이용한 부분의 병렬 처리가 가능하기 때문에 계산 속도의 이점(R은 불가능)
-
b가 자주 업데이트 된다고 해도, 분해를 해둔 상태에서는 실시간으로 해를 구할 수 있음
-
선형 시스템을 QR 분해를 통해 다음 두 단계로 해결할 수 있게 된다.
- Qy=b의 형태에서 내적을 통해 y(Rx)를 구한다.
- Rx=y에서 후방대치법을 통해 x를 구한다.
QR 분해 vs LU 분해
- LU 분해 : 선형시스템을 풀 때 병렬처리 불가능, L, U가 각각 반씩 빈 구조를 가지고 있어 메모리 사용량이 적음
- QR 분해 : Q에 대한 병렬처리가 가능해서 속도의 이점, Q가 꽉 찬 구조를 가지고 있어 메모리 사용량이 많음
특이값 분해(Singular Value Decomposition, SVD)
QR, LU 분해는 정방 행렬(nxn) 분해이고,
특이값 분해는 n x m 행렬 분해이다.
특이값 분해는 세 행렬의 곱으로 분해한다.
U : m차원 회전행렬 (정규직교행렬)
D : n차원 확대축소 (확대축소 크기에 따른 정렬 형태)
V : n차원 회전행렬 (정규직교행렬)
UDV의 각 열벡터는 순서대로 행렬 A의 열벡터가 어떤 방향으로 강한 응집성을 보이는지 분석한 것이다.
UDV의 열벡터를 순서대로 p개 취한다면 강한 응집성을 가진 p개의 방향으로 수선의 발을 내린 A의 근사치 A'를 구성할 수 있다.
주성분 분석(Principal Component Analysis, PCA)
데이터의 공분산행렬에 대한 직교분해를 하는 것
n개의 데이터가 있을 때, 각 데이터의 외적으로 행렬을 구성하고 이를 합한 것의 평균이 공분산 행렬이다.
수식으로 표현하면 다음과 같다.
데이터에서 응집성이 강한 축으로 차원축소를 진행해서 표현하고 분석하는데 이용된다.