선형대수학

Author

고경수

Published

January 21, 2024

선형대수학

통계학에서 필요한 선형대수학 개념들

- 행렬 A의 역행렬이 존재 ↔︎ A가 full-rank matrix

- semi positive definite matrix

- 고유값분해: 실대칭행렬은 고유벡터행렬이 직교행렬이다.

- SVD

- basis, 선형공간

선형 방정식만을 다룬다.

ax2+bx+c=0

행렬과 벡터에 대해서 공부하는 학문이다.

하고자 하는 것: 연립 1차 방정식을 푸는 것.

1x+2y=4

2x+5y=9

(1225)(x4)=(49)

 matrix vector vector

전치 (Transpose)

AAT

aijaji

A=(1234), AT=(1324)

  1. (AT)T=A

  2. (A+B)T=AT+BT

  3. (AB)T=BTAT

  4. (cA)T=cAT

  5. det(AT)=det(A)

  6. (AT)1=(A1)T

내적과 정사영 (dot product & projection)

내적: 두 벡터가 닮은 정도를 알아내는데 사용할 수 있다.

inner product dot product = scalar product

(13)(51)=5+3=8

aTb=abcosθ=acosθb=bcosθa

                a에서 b로의 정사영 / b에서 a로의 정사영

” 내적은 정사영이다. ”

aTa=aa=a2

a 벡터의 크기를 구할 때 aTa 이런식으로도 많이 구함

단위벡터(unit vector): 크기가 1인 벡터

aaTa=aa : Normalize

ab → 같은 방향일때 가장 크고 반대 방향일 때 가장 작으며 직각일때 0

벡터의 norm

2-norm

a=(123),||a||2=aTa=12+22+32 (l2-norm)

1-norm

b=(123), b1=1+2+3=6 (l1-norm)

p-norm

(| |p+| |p+| |p+...)1p, (p1)

+ l0-norm 은 0이아닌 성분의 “개수”

행렬의 곱셈과 네 가지 관점

1. 내적으로 바라보기

AB=(a1Ta2Ta3T)(b1b2b3)=(a1Tb1a1Tb2a1Tb3a2Tb1a2Tb2a2Tb3a3Tb1a3Tb2a3Tb3)

2. rank-1 matrix의 합

AB=(a1a2a3)(b1Tb2Tb3T)=a1b1T+a2b2T+a3b3T ← 각각은 rank1 matrix 이다.

3. column space로 바라보기

- column space?

AB=(a1a2a3)(x1x2x3)=a1x1+a2x2+a3x3

4. row space로 바라보기

AB=(x1x2x3)(a1Ta2Ta3T)=x1a1T+x2a2T+x3a3T

  • transformer 이해에 도움이 된다.

span과 column space(열공간)

  • Linear combination

a1v1+a2v2+a3v3

a1,a2,a3 : 스칼라

v1,v2,v3 : 벡터

  • 내가 가진 벡터들로 표현할 수 있는 영역은 뭘까? → span

    2차원 전체(서로 다른 두 벡터), 라인(단위 벡터가 같은 두 벡터), 점((00)인 두 벡터) 등 …

  • column space:

    • 선형 독립인 A의 column들로 이루어진 벡터 공간.

    • 행렬의 열이 span하는 영역

      column space 표기법

      • C(A)
      • range(A)

선형 독립과 기저 (linearly independent & basis)

  • 벡터의 활동범위가 다르면 선형 독립이다.

  • 직교하면 무조건 독립이다. 하지만 독립이라고 직교하는 건 아니다.

a1v1+a2v2+a3v3+...=0 이 식이 성립하기 위해 계수(a1,a2,a3,...)가 모두 0 이어야 한다면 이는 선형 독립이다.

ex) 2(11)+1(22)=0 이런경우는 linearly dependent 한 케이스.

basis

  • 어떤 공간을 이루는 필수적인 구성요소

  • 어떤 벡터공간 V의 벡터들이 선형독립이면서 벡터공간 V 전체를 생성할 수 있다면 이 벡터들의 집합을 말한다.

  • 벡터공간 Rm의 임의의 원소를 표현하기 위해 필요한 최소한의 벡터로 이루어진 집합

항등행렬, 역행렬, 직교행렬 (indentity matrix & inverse & orthogonal matrix)

Identity matrix (항등 행렬)

  • 항등원과 비슷
  • 어떤 행렬과 곱해도 그 행렬 그대로 나옴
  • 정사각 행렬에 대해서만 정의

A×I=A

I2=(1001) I3=(100010001)...

Inverse matrix (역행렬)

A×A1=I

  • 정사각 행렬에 대해서만 정의
  • A가 어떤 행렬이냐에 따라서 항등행렬이 나오도록하는 A1이 존재할 수도 있고, 존재하지 않을 수도 있다. 존재하면? A는 invertible하다 라고 표현
  • A의 앞에 곱하든, 뒤에 곱하든 항등행렬이 나온다. 일반적인 행렬에서는 안되던 교환법칙이 성립한다는 것

Diagonal matrix (대각 행렬)

(..00..) (..000..000..)

  • 대각선에만 값이 있어야 함. 나머지는 0
  • 대각선에도 0이 들어갈 수 있음.
  • 정사각 행렬이 아니어도 됨. 보통은 정사각형. 정사각행렬이 아닌경우 rectangular diagonal matrix 라고 말해주는 편

Orthogonal matrix (직교 행렬)

  • 모든 column들이 orthonormal set을 이루는 행렬. (orthogonal + normal)

    모든 column 벡터들이 서로 직교한다.(수식적으로 내적이 0이라는 것) + 모든 벡터의 크기가 1로 맞춰져 있다.

  • 정사각 행렬에 대해서만 정의

  • 직교행렬의 열끼리는 서로 직교

  • 직교행렬에서는 Q1=QT

Rank (행렬의 계수)

  • rank : 행렬이 가지는 independent한 column의 수 = column space의 dimension(=row space의 dim)

independent한 column의 수 = independent한 row의 수 - rank(A)=rank(AT)

(123000),rank=1, rank-deficient

(101011),rank=2: 이 경우는 행이 2개기에 rank가 2개보다 클 수는 없다 + full row rank

  • rank-deficient, full row rank, full column rank, full rank

Null space (영공간)

  • Ax=0을 만족하는 x의 집합 (행렬 A의 column들의 linear combination이 0이 되게 하는 계수 x의 집합)

    • row vector의 차원을 따른다. n×m m×1n×1
  • 행렬과 벡터의 곱을 linear combination으로 나타낼 수 있다.

    ex) A=(101011), Ax=x1(10)+x2(01)+x3(11)=(00)으로 만들고싶다.

    1. x=(000) - null space에 0 0 0 은 항상 들어간다.

    2. x=(111), x=(222), … → c×Ax=0×c

      xn=c(111) null space는 3차원 공간 안에서 1차원을 span 하겠다는 것(상수배)

      column vector는 2차원 안에 있는데 null space는 3차원 안에 있다. 즉 null space는 column space와 아예 다른 차원에 있는 space.

    • 헷갈릴 수 있는 것: null space는 column space의 일부 같은 것이다. (x)
  • A가 m × n 일 때, dim(N(A))=nrank(A) (열의 수 - A의 rank)

    A=(100100), r=2,n=2 여기서는 nr이 0이므로 유일하게 가능한 것은 x=(00)

  • Null space는 row space와 수직한 space.

  • dim(N(A))+dim(R(A))=n

A라는 행렬이 있을 때 rank를 알아내면 Null space의 차원이 어떻게 되고… 이런식으로 행렬의 분석에 있어서 굉장히 자주 등장하는 요소

Ax=b에서 x라는 해가 무한할지 하나일지 아니면 없을지 등을 이런 개념을 토대로 알아낼 수 있다.

Ax=b의 해의 수 알아내기

ex1)

x+2y=1,

2x+4y=2 와 같이 주어졌을 경우는 해가 무한 (하나의 직선 위의 모든 값이 해가 됨)

ex2)

x+2y=1,

2x+4y=1 와 같이 주어졌을 경우는 해가 없음 (두 개의 평행한 직선)

ex3)

x+2y=1,

x+4y=1 와 같이 주어졌을 경우는 해가 하나 (두 직선이 한 점에서 만남)

  • full column rank 일 때: 해가 없거나 한 개

image.png
  • full row rank 일 때: 해는 무한하다. (A(xp+xn)=b)

    Axn=0,Axp=b,

    xn은 무한, xp는 식이 성립하는 임의의 값

  • full rank(square matrix) 일 때: 해가 한 개 있다. (x=A1b)

  • rank-deficient 일 때:

    (123000) rank가 1인경우 → 1차원만을 span 가능. 예를 들어 b가 (11)이다? 해가 없음.

    A가 span할 수 있는 차원 c(A)에 b가 있다면 해가 무한하다. 들어있지 않다면 해가 없다.

rank 구하기 예제 풀이

3x3인 실수행렬 A가 다음을 만족할 때, rank(A)는?

(가) Ax=(12b)의 해가 존재하는 실수 b는 유일하다.

(나) Ax=(11b)의 해는 어느 실수 b에 대해서도 존재하지 않는다.

  • (가)조건에 의해 (12b) 는 span할 수 있다. (나)조건에 의해 (11b)는 span 할 수 없다.

    그런데 이 때, A가 full rank라면 span 할 수 없는 것이 없기 때문에 rank가 3은 아닐 것.

    (가)조건에 의해 (12b) 정도는 span 할 수 있으므로 rank가 0은 아닐 것.

    → rank가 1이냐 2냐.

image.png
  • rank = 2이면 평면, rank = 1 이면 직선이다.

    Ax의 값에서 (12b)가 유일하므로 x는 수직할 수 없다.

    여기서, rank = 2일 경우를 생각해보면 수직이 아니므로 b를 바꾸다 보면 1 1 b 가 만나는 부분이 있을 것.

    따라서 rank = 1이다. (직선)

가우스-조던 소거법 (Gauss-Jordan Elimination)

https://youtu.be/Q1zCibRtI2A?si=zc1RxVBsds3qsRRH&t=128

2 × 2 역행렬

(abcd)1 = 1adbc(dbca)

그렇다면 ad-bc가 0일 경우에는?? invertible하지 않다고 한다.

여기서 ad-bc를 determinant라고 함. (역행렬과 determinant는 다르다.)

  • 정사각행렬 A가 invertible하다(non singular matrix라고 함 invertible하지 않으면 singular matrix)

    와 동치인 것들

    1. det(A)0

    2. A가 full rank 이다.

      (즉, det(A)=0인 경우는 A가 rank-deficient)

    3. N(A)=0

      full rank이면 null space는 영벡터만 존재한다.

  • 역행렬 관련 property

    1. (AB)1=B1A1

    2. (A1)1=A

    3. (kA)1=1kA1

    4. (AT)1=(A1)T

    5. det(A1)=1det(A)

행렬식(determinant)

option

A=(abcdefghi),

det(A)=a(eifh)b(difg)+c(dheg)

a, b, c가 + - + 인 것? → cofactor 찾아볼 것

다음과 같이 determinant 구하는 것을 “Laplace expansion” or “Cofactor expansion” 이라고 한다.

행렬이 조금 클 때 determinant는 위와 같이 작은 행렬의 determinant 합으로 나타내어진다.

  • Determinant 관련 properties
  1. det(A)=0 A is singular(invertible 하지 않다.)
  2. A가 rank-deficient det(A)=0 (하나라도 dependent한 열벡터가 있다면 즉, 다른 열벡터들의 조합으로 나타낼 수 있는 열벡터가 있다면 rank-deficient인 것 이고 그때는 det(A)=0이다.)
  3. (a110...00a22......0ann)대각행렬에서, det(A)=a11a22...ann (하나의 원소라도 0이 있으면 역행렬이 존재하지 않음. det(A)0가 되기에)
  4. 삼각행렬(triangular matrix)에서도 마찬가지로 det(A)=a11a22...ann
  5. 항등행렬 (100010001)det(I)=1
  6. A가 n×n행렬일 때 det(cA)=cndet(A)
  7. det(AT)=det(A)

★8. det(AB)=det(A)det(B)

  1. det(A1)=1det(A)

★10. det(A)=λ1λ2...λn (λ = eigen value)

trace

  • 최적화의 목적 함수는 무조건 스칼라 값.

tr(A)=i=1naii

  • trace를 이용하면 행렬로 미분하는게 매우 쉬워짐

  • trace에는 무조건 정사각행렬이 와야함

trace 관련 properties

  1. tr(A+B)=tr(A)+tr(B)

  2. tr(cA)=ctr(A)

  3. tr(AT)=tr(A)

  4. tr(AB)=tr(BA)

    A:m×n이면 B:n×m

  5. tr(aTb)=tr(baT) (4를 이용한 자리바꾸기)

    (4,5번은 6번을 위한 빌드업)

6. tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC) (cyclic property)

  1. tr(A)=i=1nλi

최소자승법(Least squares)

  • A의 column space 밖의 b 벡터를 span으로 표현할 수 없을 때, 최대한 가깝게 만드는 x를 찾는법

  • bAx=e (error),

    ||e||22을 줄이자 → error 제곱의 합을 최소화 하자는 접근 방식

image.png

Ax와 b가 수직할 때 최소이므로 b-Ax와 Ax를 내적했을 때 0인 값을 찾자 + 그러한 x를 x^로 표기하자

  • (bAx^)TAx^=0

    (bTAx^TATA)x^=0

    x^=0? 우리가 원하는 접근방식은 아님. 영벡터를 내적했기에 0이 나오는 것이므로. 그렇다면 (bTAx^TATA)=0이 되는 x값을 찾아 주어야 한다.

    bTA=x^TATA

    ↓ 양변에 transpose

    ATb=ATAx^ 이 식을 “normal equation” 이라고 부름 / rank(ATA)=rank(A)이며 ATA는 3x3 행렬이므로 full rank이다. 즉, invertible하다.

    ↓ 그러므로 양변에 ATA의 역행렬을 곱해줌.

    x^=(ATA)1ATb

    x^Ax^에 대입해주면

    Ax^=A(ATA)1ATb,

    b에다가 A(ATA)1AT를 곱해서 정사영을 만든 것이기에 이를 “projection matrix”라고 부른다.

이 최소자승법은 어디에 쓰느냐?

Z=Ax+n (여기서 A는 full column rank라는 가정이 필요하다.)

Z:측정값(measurement), n:noise, x:알아내야 하는 값

Ax^=A(ATA)1ATZ