영벡터가 아닌 모든 벡터 x에 대해 다음 부등식이 성립하면 행렬 A가 양의 정부호(Positive Definite)라고 한다.
$$ x^TAx >0 $$
만약 ≥를 만족하는 행렬이라면 양의 준정부호라고 한다. 모든 행렬에 대해 양의 정부호와 준정부호를 정의할 수 있지만 보통 대칭행렬에 대해서만 정의한다.
모든 벡터 x에 대해 부등호가 성립해야 하므로 보통은 제곱의 합 꼴로 식이 나타나게 된다.
Norm
행렬 A에 대해 다음 식으로 정의되는 숫자다. 보통 $||A||_p$로 표현한다. 행렬의 놈에도 여러 정의가 존재하는데 여기에서는 요소별 행렬 놈(Entrywise Matrix Norm)의 정의를 따른다.
$$ ||A||p = (\Sigma{i=1}^{N}\Sigma_{j=1}^{M}|a_{ij}|^p)^{1/p} $$
p는 1,2 또는 무한대가 사용되는데 이 중 p=2인 경우가 가장 많이 사용되므로 p값 표시가 없는 경우는 p=2인 Norm이라고 생각하면 된다.
놈은 모든 크기의 행렬에 대해서 정의할 수 있으므로 벡터에 대해서도 정의가 가능하다. 벡터의 놈에서 중요한 성질은 벡터의 놈의 제곱이 벡터의 제곱합과 같다는 것이다.
역행렬에 대한 정리
셔먼-모리슨-우드버리 공식(Sherman-Morrison-Woodbury formula)
셔먼-모리슨(Sherman Morrison) 공식
정방행렬 A와 벡터 u,v에 대해 다음 공식이 성립한다.
우드버리 공식(Woodbury Formula)
셔먼-모리슨 공식은 주어진 행렬 A를 계수가 1인 행렬로 갱신했을 경우를 다루었지만, 더 나아가 우드버리 공식은 주어진 행렬 A를 게수가 1≤k≤n인 행렬로 갱신했을 경우를 다룬다.
np.linalg 라는 Numpy의 선형대수 서브 패키지도 존재한다.
lstsq() 명령은 행렬 A와 B를 모두 인수로 받고 최소자승문제(least square problem)의 답 x, 잔차제곱합(residual sum of squares, resid), 랭크(rank), 특잇값(singularity value, s)를 반환한다 미지수와 방정식 개수가 같고 행렬 A의 역행렬이 존재하면 최소자승문제의 답과 선형 연립방정식 답이 동일하다.
방정식의 개수가 미지수 수보다 많은 경우
>> 모든 조건을 만족하는 해가 하나도 존재하지 않을 수 있다. 하지만 우리가 푸는 선형 예측 모형의 경우는 대부분 미지수보다 더 많은 방정식의 개수를 갖는다. 따라서 우리는 선형방정식의 답이 존재하지 않는다고 결론을 내리기 보단 오차를 최소화하는 방향으로 진행하는 것이 옳다.
$$ x_1 + x_2 = 2\\ x_2 + x_3 = 2\\ x_1 + x_2 + x_3 = 3\\ x_1 + x_2 + 2x_3 = 4.1 $$
$e =Ax-b$: 잔차는 벡터이므로 최소자승문제에서 벡터의 크기 중 벡터의 놈을 최소화하는 문제를 푸는 방식으로 도입할 수 있다. 앞 절에서 놈을 최소화하는 것은 놈의 제곱을 최소화하는 것과 같다고 했다. 여기에서 잔차제곱합이 놈의 제곱이 된다.
$e^Te = ||e||^2 = (Ax-b)^T(Ax-b)$
고급 선형대수
벡터의 기하학적 의미
- 벡터 a의 값으로 표시되는 점(pont)또는
- 원점과 벡터 a의 값으로 표시되는 점을 연결한 화살표(arrow)
$a =\left[\begin{matrix} a_{1}\\ a_{2}\\ \end{matrix}\right]$
는 2차원 공간에서 x좌표가 $a_1$, y좌표가 $a_2$인 점으로 생각할 수 있고 또는 원점에서 이 점을 가리키는 화살표로 생각할 수 있다. 벡터를 화살표로 생각하는 경우에는 길이와 방향을 고정시킨 채 평행이동도 가능하다
word2vec
단어를 공간에서 점 또는 벡터로 표현할 수 있다. word2vec으로 만들어진 벡터는 단어의 의미에 따라 다음처럼 평행사변형 관계를 가질 수 있다.
일본 = 도쿄 + (한국 - 서울)
<한국 - 서울>은 서울에서 한국으로 향하는 벡터다. 의미론적으로 수도 이름을 나라 이름으로 치환하는 행위(action)이다. 따라서 이 벡터를 <도쿄>에 적용하면 <일본>이라는 키워드를 도출할 수 있다.
코사인 유사도
두 벡터의 방향이 비슷할수록 벡터가 비슷하다고 간주하여 두 벡터 사이의 각의 코사인값을 코사인 유사도라고 한다. 코사인값은 각도가 0일 때 가장 커지므로 두 벡터가 같은 방향을 가리키고 있으면 코사인 유사도가 최댓값 1을 가진다.
$$ cosine\ Similarity = cos \theta = \frac{x^Ty}{||x||\ ||y||} $$
투영성분과 직교성분
벡터 a를 다른 벡터 b에 직교하는 성분과 벡터 b에 평행한 성분으로 분해할 수 있는데 평행한 성분을 벡터 b에 대한 투영성분(Projection), 벡터 b에 직교인 성분을 벡터 b에 대한 직교성분(rejection)이라고 하며 각각 다음과 같이 표기한다.
$a^{||b}\, \ a^{\perp b}$
벡터 b 자체가 이미 단위벡터라면 단위 벡터에 대한 투영길이는 내적이 된다.
$∥a^{∥b}∥=∥a∥cosθ=\frac{∥a∥∥b∥cosθ}{∥b∥}=\frac{a^Tb}{∥b∥}=\frac{b^Ta}{∥b∥}=\frac{a^Tb}{∥b∥}$
>> 기저벡터 방향으로 투영된 벡터
$a^{⊥b}=a−a^{∥b}$
>> 직교성분 벡터는 원래의 벡터에서 투영성분 성분 벡터를 뺀 나머지다.
직선의 방정식
- 원점에서 출발한 벡터 w가 가리키는 점을 지나면서
- 벡터 w에 직교인
직선의 방정식
$w^T(x-w) = 0\\w^Tx-||w||^2 = 0$
||w|| 는 직선과 원점 사이의 거리
점과 직선 사이의 거리
$$ |||x^{'||w||}-||w|||= |\frac{|w^Tx'-||w||^2|}{||w||}| $$
선형독립과 선형 연립방정식
선형독립 관계를 행렬과 벡터의 곱으로 나타내는 것이 가능하다. 다음 식에서 c_i는 x_i에 대한 가중치계수이고 c는 c_i를 원소로 갖는 가중치 벡터다. X는 열벡터 $x_1,x_2, x_3,...,x_N$ 을 열로 가지는 행렬이다.
$c_1x_1 + c_2x_2+c_3x_3 +... + c_Nx_N = [x_1\ x_2\ x_3\ ... \ x_N]\begin{bmatrix} c_1\\ c_2\\ c_3\\ ...\\ c_N \end{bmatrix} = X_c$
어떤 벡터들이 선형독립인지 아닌지를 알아내는 문제는 선형 연립방정식을 푸는 문제와 같다.
Xc = 0 이 방정식의 해가 영벡터 뿐이라면 선형독립이지만, 다른 해가 존재한다면 선형 종속이다.
랭크 : 행렬의 열벡터 중 서로 독립인 열벡터의 최대 개수를 열랭크라고 하고 행벡터 중 서로 독립인 행벡터의 최대 개수를 행랭크라고 한다.
$rankA ≤ min(M,N) M: 행의 개수, N: 열의 개수$
만약 $rankA = min(M,N)$이라면 풀랭크라고 한다. 선형 독립인 벡터들을 행 또는 열로 갖는 행렬로 만들어주면 정의에 의해 항상 풀랭크다.
로우랭크 행렬
N차원 벡터 x 하나를 이용하여 만들어지는 다음과 같은 행렬을 랭크-1 행렬이라고 한다.
$xx^T \in R^{N\times N}$
이 행렬의 열벡터들은 x라는 하나의 벡터를 $x_1$배, $x_2$배...한 벡터이므로 독립적인 열벡터는 1개다. 따라서 랭크-1 행렬의 랭크는 1이다.
비슷한 방법으로 M개의 n차원 벡터 $x_1,x_2,...,x_M$을 이용하면 랭크-M 행렬이 된다.
$\begin{bmatrix} x_1& x_2 & ... & x_M \end{bmatrix}\begin{bmatrix} x_1^T \\ x_2^T \\ ... \\ x_M^T \end{bmatrix} = x_1x_1^T+x_2x_2^T+...+x_Mx_M^T = \sum^M_{i=1}x_ix_i^T$
이는 특잇값분해와 PCA에서 사용된다.
벡터 공간과 기저벡터
여러 벡터를 선형조합하면 다른 벡터를 만들 수 있다. 벡터 N개가 서로 선형독립이면 이 벡터들을 선형조합하여 만들어지는 모든 벡터의 집합을 벡터공간이라고 하고 이 벡터 공간의 차원을 N이라고 한다. 그리고 그 **벡터들을 벡터공간의 기저벡터(Basis Vector)**라고 한다.
이미지 변환
scipy.ndimage 패키지의 affine_transform() 명령을 사용한다. 이 명령은 이미지를 이루는 픽셀을 새로운 좌표로 이동시킨다. 인수로는 이미지 데이터와 변환행렬의 역행렬을 받는다. 단 파이썬 이미지에서는 다음과 같은 표준기저벡터(x1이 아래를 향하는 세로축, x2가 오른쪽으로 향하는 가로축)를 사용하고 원점이 왼쪽 상단의 점이라는 점에 유의한다.
고윳값과 고유벡터
행렬 A의 고유벡터는 행렬 A를 곱해서 변환을 해도 방향이 바뀌지 않는 벡터다. 고윳값은 변환된 고유벡터와 원래 고유벡터의 크기 비율을 일컫는다.
특성방정식
$det(A-\lambda I)=0$ 행렬은 역행렬이 존재하지 않는다는 뜻이다. 만약 역행렬이 존재한다면, 고윳값을 만족하는 벡터가 항상 영벡터가 되기 때문이다.
어떤 행렬의 고윳값이 $\lambda _1 , \lambda _2, ..., \lambda _N$ 이라고 하면 모든 고윳값의 곱은 행렬식의 값과 동일하고 모든 고윳값의 합은 대각합의 값과 같다
$det(A) = \prod {i=1}^N\lambda_i\\$
$*tr(A) = \sum{i=1}^N\lambda_i*$
대각화
N차원 정방행렬 A가 복소수 고윳값 N개와 이에 대응하는 고유벡터를 갖는다는 성질을 이용해 다음처럼 행렬을 분해할 수 있다.
고유벡터행렬 V는 고유벡터를 열벡터로 옆으로 쌓아서 만든 행렬이다.
$V = [v_1 ... v_N]$
$V\in R^{N\times N}$
$Λ = \begin{bmatrix} \lambda_1 & 0& ... &0 \\ 0& \lambda_2 & ... & 0\\ ...& ... & ... &... \\ 0&0 & ... & \lambda_N \end{bmatrix}$
$ΛV = VΛ$
고유벡터V의 역행렬이 존재한다면 행렬을 다음처럼 고유벡터행렬과 고윳값행렬의 곱으로 표현할 수 있다. 이를 행렬의 대각화라고 표현한다.
$A = VΛV^T$
대칭행렬의 고유분해
행렬 A가 실수인 대칭행렬이면 고윳값이 실수이고 고유벡터는 서로 직교한다.
고유벡터들이 크기가 1이 되도록 정규화된 상태라면 고유벡터 행렬 V는 정규직교 행렬이므로 전치행렬이 역행렬이다.
$V^T V = VV^T =I$
따라서 대각화가 가능하고 다음처럼 쓸 수 있다.
$A = VΛV^T$
만약 0인 고윳값이 없다면 역행렬도 다음처럼 N개의 랭크-1 행렬 $A_i = v_iv_i^T$의 합으로 표시할 수 있다.
$A = \sum_{1}^{N}\lambda_iv_iv^T_i$
만약 대칭행렬이 양의 정부호라면 어떤 벡터 x를 행렬 A의 앞뒤에 곱해 이차형식을 만들어도 0보다 크므로 j번째 고유벡터 $x = v_j$를 선택해 곱해도 마찬가지다.
대칭행렬은 고유벡터들이 서로 직교한다.
$v_i^Tv_j = 0(if\ i≠j)$
$v_i^Tv_i = 1$
이므로 양수인 고윳값만을 갖는다.
반대로 대칭행렬의 고윳값이 모두 양수라면, 그 행렬은 양의 정부호가 됨을 증명하자.
양의 준정부호임은 증명이 가능하다.
이 식을 통해 $x$가 $v_i$와 직교하는 경우에만 0이 된다는 사실을 확인할 수 있다. 고윳값 $\lambda_i$가 모두 양수이므로 따라서 행렬 $\lambda_iA_i$를 모두 더한 행렬도 양의 준정부호다.
실제로는 이 값이 0이 될 수 없다. 이 값이 0이 되려면 모든 $x^Tv_i$가 0, 다시 말해 $x$와 모든 $v_i$가 직교해야 하는데 대칭행렬의 고유벡터의 집합은 N차원에서 기저벡터를 이뤄 동시에 모든 기저벡터와 직교인 벡터는 존재하지 않기 때문이다. 따라서 양의 정부호다.
분산행렬
임의의 실수 행렬 X에 대해 $X^TX$의 정방행렬을 분산행렬이라고 한다.
정리: 분산행렬은 양의 준정부호이고 고윳값은 0보다 크거나 같다.
임의의 벡터 x에 대해 분산행렬에 대한 이차형식을 구하면,
$x^T(X^TX)x = (Xx)^T(Xx) = u^Tu ≥0$로 u의 제곱합이 된다. 이값은 적어도 0보다 크거나 같고 분산행렬은 양의 준정부호다. 그리고 대칭행렬이므로 양의 준정부호면 고유값이 모두 0 이상이다.
분산행렬의 역행렬
행렬 X가 풀랭크이면 이 행렬의 분산행렬 $X^TX$의 역행렬이 존재한다.
X가 풀랭크이면 X의 열벡터가 기저벡터를 이루기 때문에 영벡터가 아닌 모든 벡터 v에 대해서 $Xv = u$는 영벡터가 될 수 없다. 만약 영벡터 u를 만드는 v가 있다는 것은 서로 독립이 아니라는 것을 의미한다. 따라서 $X^TX$의 이차형식은 항상 양수가 된다.
고유분해의 성질 요약
N차원 정방행렬 A에 대해 다음과 같은 사항이 성립한다.
- 행렬 A는 N개의 고윳값-고유벡터를 갖는다.(복소수인 경우와 중복 포함)
- 행렬의 대각합은 모든 고윳값의 합과 같다.
- 행렬의 행렬식은 모든 고윳값의 곱과 같다.
- 행렬 A가 대칭행렬이면 실수 고윳값 N개를 가지며 고유벡터들이 서로 직교이다.
- 행렬 A가 대칭행렬이고 고윳값이 모두 양수이면 양의 정부호이고 역행렬이 존재한다. 역도 성립한다.
- 행렬 A가 어떤 행렬 X의 분산행렬 $X^TX$이면 0또는 양의 고윳값을 갖는다.
- 행렬 X가 풀랭크이면 분산행렬 $X^TX$은 역행렬이 존재한다.
자료 출처
https://datascienceschool.net/intro.html
데이터 사이언스 스쿨 — 데이터 사이언스 스쿨
데이터 사이언스 스쿨은 데이터 사이언스에 대한 모든 지식을 공유하는 장입니다. 알림 데이터 사이언스 스쿨 홈페이지를 깃헙 페이지와 주피터 북 기반으로 리모델링하였습니다.
datascienceschool.net
'Computer Science' 카테고리의 다른 글
[데이터 사이언스 스쿨] 엔트로피 (0) | 2022.05.15 |
---|---|
[데이터 사이언스] 집합 (0) | 2022.05.01 |
Gaussian Process-2 (0) | 2022.02.13 |
Gaussian Process-1 (0) | 2022.02.06 |
차원 축소 (0) | 2021.10.10 |