* 이 공부노트는 프로그래머스 인공지능 데브코스 강창성 교수님의 강의를 바탕으로 제작되었습니다.
* 이번엔 진짜 이해하기 힘들 것을 알아가면서 정리해보자(지친다ㅜㅜ).
치역(Range), 영공간(Nullspace)
벡터의 집합({x1,x2,…,xn})에 대한 생성(span)
span({x1,x2,…,xn})={v:v=n∑i=1αixi,αi∈R}
행렬의 치역 (range)
행렬 A∈Rm×n의 치역 R(A)는 A의 모든 열들에 대한 생성(span)이다.
R(A)={v∈Rm:v=Ax,x∈Rn}
이 부분을 해석하기 어려웠다. 그러나 나름 간단하다.
A라는 행렬이 있을 때, 행렬의 열 벡터가 치역(결과가 되는). 그 모든 결과값이 열공간이라 하고 치역이라 한다.
[1224][ac]=[a+2c2a+4c]
여기서 결과 벡터가 치역이 된다. 이는 a와 c에 어떤 값을 넣어도 y=2x값의 선형값으로 바뀌기에 치역이라고 하며, 열공간이라 한다.(rank가 1이라 하나의 선으로 나왔을 뿐, rank가 2이상이면 공간이 될 것이라 생각한다.)
영공간 (nullspace)
행렬 A∈Rm×n의 영공간(nullspace) N(A)는 A와 곱해졌을 때 0이 되는 모든 벡터들의 집합이다.
N(A)={x∈Rn:Ax=0}
중요한 성질: {w:w=u+v,u∈R(AT),v∈N(A)}=Rn and R(AT)∩N(A)={0}
R(AT)와 N(A)를 직교여공간(orthogonal complements)라고 부르고 R(AT)=N(A)⊥라고 표시한다.

A행렬의 열벡터의 공간과 행백터의 공간을 그려준다.
A의 열벡터 [2,4] [1,2]
행벡터 [2,1] [4,2]
위의 공식처럼 A→x=0 와 같은 공간을 만들면, 예로 [-1,2]와 [1,-2]는 각각 0이 된다. 이를 기준으로 그려주면 행공간과 영공간이 서로 직교함을 볼 수 있다.
위의 개념을 이해하는데 공돌이의 수학정리노트가 짱이였다.... 나중에 보기 위해 링크를 걸어놓는다.
https://angeloyeo.github.io/2020/09/09/row_vector_and_inner_product.html
행벡터의 의미와 벡터의 내적 - 공돌이의 수학정리노트
angeloyeo.github.io
행렬식 - LA.det(A)
정방행렬 A∈Rn×n의 행렬식(determinant) |A| (또는 detA)는 다음과 같이 계산할 수 있다.
|A|=A1,1×|A(1,1)|−A1,2×|A(1,2)|+A1,3×|A(1,3)|−A1,4×|A(1,4)|+⋯±A1,n×|A(1,n)|
where A(i,j) is the matrix A without row i and column j.
A=[123456780]
위 식을 사용하면 아래와 같이 전개된다.
|A|=1×|[5680]|−2×|[4670]|+3×|[4578]|
이제 위의 2×2 행렬들의 행렬식을 계산하면 된다.
|[5680]|=5×0−6×8=−48
|[4670]|=4×0−6×7=−42
|[4578]|=4×8−5×7=−3
최종결과는 다음과 같다.
|A|=1×(−48)−2×(−42)+3×(−3)=27
행렬식의 기하학적 해석
행렬의 행벡터가 이루는 행벡터의 공간(집합 S라 치면) = 행렬식의 절대값과 부피가 일치함을 보인다.
(단 계수는 0~1사이)
다시 말해 행렬식의 절대값이 이 S의 부피(volume)과 일치함.
예를 들어, 행렬
A=[1332]
의 행벡터들은
a1=[13]a2=[32]
이다. S에 속한 점들을 2차원평면에 나타내면 다음과 같다.

평행사변형 S의 넓이는 7인데 이 값은 A의 행렬식 |A|=−7의 절대값과 일치함을 알 수 있다.
이차형식(Quadratic Forms)
정방행렬 A∈Rn×n와 벡터 x∈Rn가 주어졌을 때, scalar값 xTAx를 이차형식(quadratic form)이라고 부른다. ((1×n)(n×n)(n×1)=scalar)
식으로 표현하면,
xTAx=n∑i=1xi(Ax)i=n∑i=1xi(n∑j=1Aijxj)=n∑i=1n∑j=1Aijxixj
다음이 성립됨을 확인할 수 있다.
xTAx=(xTAx)T=xTATx=xT(12A+12AT)x
xTAx+xTATx=2(xTAx)
12(xTAx+xTATx)=xTAx
xT(12A+12AT)x=xTAx
따라서 이차형식에 나타나는 행렬은 대칭행렬로 가정하는 경우가 만다.
( (12A+12AT\)=대칭행렬)
- 대칭행렬 A가 0이 아닌 모든 벡터 x에 대해서 xTAx>0을 만족할 때, 양의 정부호(positive definite)라고 부르고 A≻0(또는 단순히 A>0)로 표시한다. 모든 양의 정부호 행렬들의 집합을 Sn++으로 표시한다.
- 대칭행렬 A가 0이 아닌 모든 벡터 x에 대해서 xTAx≥0을 만족할 때, 양의 준정부호(positive sesmi-definite)라고 부르고 A⪰0(또는 단순히 A≥0)로 표시한다. 모든 양의 준정부호 행렬들의 집합을 Sn+으로 표시한다.
- 대칭행렬 A가 0이 아닌 모든 벡터 x에 대해서 xTAx<0을 만족할 때, 음의 정부호(negative definite)라고 부르고 A≺0(또는 단순히 A<0)로 표시한다.
- 대칭행렬 A이 0이 아닌 모든 벡터 x에 대해서 xTAx≤0을 만족할 때, 음의 준정부호(negative sesmi-definite)라고 부르고 A⪯0(또는 단순히 A≤0)로 표시한다.
- 대칭행렬 A가 양의 준정부호 또는 음의 준정부호도 아닌 경우, 부정부호(indefinite)라고 부른다. 이것은 xT1Ax1>0,xT2Ax2<0을 만족하는 x1,x2∈Rn이 존재한다는 것을 의미한다.
Positive definite 그리고 negative definite 행렬은 full rank이며 따라서 invertible이다.
Gram matrix - ML을 하게되면 자주나오는 특별한 행렬
임의의 행렬 A∈Rm×n이 주어졌을 때 행렬 G=ATA를 Gram matrix(transpose한 것과 곱해서 늘 대칭행렬)라고 부르고 항상 positive semi-definite이다. 만약 m≥n이고 A가 full rank이면, G는 positive definite이다.
고유값 (Eigenvalues), 고유벡터 (Eigenvectors) - eigenvalues, eigenvectors = LA.eig(A)
정방행렬 A∈Rn×n이 주어졌을 때, Ax=λx,x≠0
을 만족하는 λ∈C를 A의 고유값(eigenvalue) 그리고 x∈Cn을 연관된 고유벡터(eigenvector)라고 부른다.
C : 실수값이 아닌 complex num. 복소수(i2=−1)
A=np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 0]])
코드 : eigenvalues, eigenvectors = LA.eig(A)
eigenvalues, eigenvectors
결과 : (array([12.12289378, -0.38838384, -5.73450994]),
array([[-0.29982463, -0.74706733, -0.27625411],
[-0.70747178, 0.65820192, -0.38842554],
[-0.63999131, -0.09306254, 0.87909571]]))
코드 : np.matmul(A, eigenvectors[:, 0])
결과 : array([-3.63474211, -8.57660525, -7.75854663])
코드 : eigenvalues[0] * eigenvectors[:, 0]
결과 : array([-3.63474211, -8.57660525, -7.75854663])
행렬미분 (Matrix Calculus)
The Gradient
행렬 A∈Rm×n를 입력으로 받으면 미분한 행렬의 형태로 반환하는 함수이다.
∇Af(A)∈Rm×n=[∂f(A)∂A11∂f(A)∂A12⋯∂f(A)∂A1n∂f(A)∂A21∂f(A)∂A22⋯∂f(A)∂A2n⋮⋮⋱⋮∂f(A)∂Am1∂f(A)∂Am2⋯∂f(A)∂Amn]
다시 말해 이 gradient(∇Af(A))에 행렬A가 들어오면 결과로 행렬이 나온다.
(∇Af(A))ij=∂f(A)∂Aij
그럼 벡터로 들어오면 어떻게 될까??
∇xf(x)=[∂f(x)∂x1∂f(x)∂x2⋮∂f(x)∂xn]
이처럼 gradient(∇xf(x))에 벡터x가 들어오면 결과로 벡터가 나온다.
중요한 공식들
x,b∈Rn, A∈Sn일 때 다음이 성립한다.
A는 대칭행렬이라 가정한다.
(굉장히 자주 쓰일 공식들이라고 막 알고 있어야 된다고 하셨음...)
1. ∇xbTx=b : 대충 bx∂f(x)∂x=b 이런 느낌??
2. ∇xxTAx=2Ax : 이건 이건가? Ax2∂f(x)∂x=2Ax
3. ∇2xxTAx=2A : Ax2∂f(x)∂x2=2A
4. ∇Alog|A|=A−1 (A∈Sn++인 경우)
'ML > ML-수학, 확률과 통계' 카테고리의 다른 글
정규화(Normalization)와 표준화(Standardization)를 하는 이유 (0) | 2022.01.05 |
---|---|
평균, 분산, 표준편차의 이야기 (0) | 2022.01.04 |
확률분포(Probability Disstributions)- 이산확률분표(이항분포만) (0) | 2021.06.07 |
선형대수(Linear algebra)-행렬, 행렬의 곱, 성질(1) (0) | 2021.06.03 |
확률과 통계 - 베이즈 정리 (0) | 2021.06.02 |
댓글