[프로그래머를 위한 선형대수] Review (2)
Machine Learning2022. 2. 5. 15:28
반응형
2. 랭크, 역행렬, 일차방정식
2장에서는 결과 y로 원인을 추적하는 내용에 대해 다룬다.
y와 x 공간을 자유자재로 오갈 수 있는지, 정보가 온전히 보전되는지 살펴본다.
2.1 역문제 - 결과 y를 통해 x를 추정하는 형태의 문제
2.2 성질이 좋은 경우
성질이 좋은 경우는 "정칙 행렬"이고, 정보가 온전히 보존된다.
정칙행렬 : 역행렬이 존재하는 정방행렬 A
특이행렬 : 정칙행렬이 아닌 행렬
y에 대한 역행렬 x를 구하는 방법에는 두 가지가 있다.
1. 변수 소거로 연립방정식 풀기
2. 블록행렬 표기로 풀기 (가우스 요르단 소거법)
(A|y) 에서 (I|X)로 만듦
위의 방법론으로 역행렬이 구하는 것이 중간에 막힐 때, 피보팅 혹은 기본 변형을 사용한다.
피보팅 - 두 행을 바꿈
기본 변형
행을 c배함 - 단위행렬(n, n)이고 성분이 c인 행렬 Q를 곱한다 - det Q = c
a행의 c배를 b행에 더함 - 단위행렬 (b, a) 좌표 성분이 c인 행렬 R를 곱한다. - det R = 1
a행과 b행을 바꿈 - 단위행렬 a행과 b행을 바꾼 S를 곱한다 - det S = -1
2.3 성질이 나쁜 경우
이전 차원에는 성질이 좋은 경우 = x, y 차원이 같으므로 사상 A가 정방행렬인 경우였다.
하지만 이제는 성질이 나쁜 경우, 결과 y를 알 때, 원인 x를 구해야 한다.
성질이 나쁘다 함은 y에서 x로의 변환이 불완전함을 의미한다.
1. 단서가 부족한 경우
y의 차원이 x보다 작아 x의 정보를 완전히 알 수 없는 경우
(x -> y일 때) 원래보다 차원이 작아지므로 사상 A는 납작하게 누르는 사상이 된다.
이 경우에는 정보가 누락된다
사상 A에 의행 y에 도달하는 Ax = 0을 만족하는 x의 집합을 Ker A
Ex) x1(1,1) x2(3,4) -> y1(0) , y2(0) 이면 Ker A는 x1, x2가 된다.
2. 단서가 많은 경우
y차원이 x보다 커 y내에 노이즈가 있는 경우 단서끼리 서로 모순되는 문제가 생긴다.
"주어진 A에 대해 x를 여러모로 움직인 경우에 A로 옮기는 y = Ax의 집합을 A의 상이라고 한다"
책의 말 표현을 쉽게 바꿔보자면 사상 A에 의해 y 공간상으로 옮겨진 x집합들을 Im A라고 한다.
라고 하는 게 좀 더 잘 와닿지 않을까 싶다.
3. x, y 차원의 개수가 일치해도 A가 납작하게 만드는 사상이라면 성질이 나빠진다.
간단하게 요약하자면
1.은 차원이 큰 x(원인)가 차원이 작은 y(결과)로 이동한 상태에서
y의 단서로 x를 다시 알아내야 하는 상황
2.은 차원이 작은 x(원인)가 차원이 큰 y(결과)로 이동한 상태에서,
y+노이즈의 단서로 x를 다시 알아내야 하는 상황
차원정리
x은 n차원 y는 m차원
m x n 행렬 A에 대해 dim Ker A + dim Im A = n 만족
m<n (가로가 긴 A)이면 단사 불가능
같은 결과 y가 나오는 원인 x가 단 하나가 될 수 없다.
차원이 줄어들면서 하나로 모여 버리기 때문이다.
위의 1.과 연결
m>n (세로가 긴 A)이면 전사 불가능
존재하는 모든 y에 대응하는 x가 존재할 수 없다.
차원이 증가하면서 x에 대응하는 y 말고, 삐져나온 y'가 추가로 있기 때문
위의 2.과 연결
'납작하게'를 식으로 표현한다면
x1 != x2 인데, Ax1 = Ax2 가 성립하는 x1, x2가 존재한다는 말이다
이러한 경우 A는 선형 종속이라 하고, 아닌 경우를 선형 독립이라고 한다.
사상 A 내 벡터 a3가 a1, a2에 의해 정의가 된다면 이를 선형 종속이라 본다.
랭크
Im A가 이동점(y)의 공간 전체를 커버할 수 있는가?
랭크란 Im A의 차원을 의미하고 rank A라고 쓴다.
Ker A가 o 뿐이라면 Ker A는 y로 이동하는 x는 o뿐
= Ker A는 0차원 => rank A = n -> A는 단사 "y에 매칭 되는 x는 단 둘"
Im A가 m차원 전체를 커버한다면 삐져나온 y'가 없어야 한다
-> Im A는 m차원 -> rank A는 m -> A는 전사 "전 y에 x가 매칭 됨"
랭크의 기본 성질
1. rank A <= m, n
2. 정칙행렬을 곱해도 랭크는 변하지 않는다.
3. 전치해도 랭크는 동일하다.
4. 행렬 A가 선형 종속인 경우, 랭크가 m보다 줄어든다.
A가 A = BC로 분해되어 3차원 -> 2차원 -> 3차원 공간으로 이동했을 때,
차원이 한번 줄어들었으므로, 3차원 공간상에서 rank A = 2 가 된다.
이를 "잃어버린 정보는 다시 복원할 수 없다" 라고 표현한다.
Im A를 다시 생각해보면 , n차원 벡터 x를 여러모로 움직이는 경우 y = Ax의 움질 일 수 있는 범위이다.
span{a1 ... an}이라고도 쓰며, 벡터 a가 만드는 '선형 부분 공간'이라고 부른다.
랭크를 계산하는 방법은 연립방정식을 풀 때와 유사하다.
행렬 A의 대각 성분을 1이 되게 하고, 비대각 성분을 0으로 만드는 과정을 반복해나가면 된다.
반응형
'Machine Learning' 카테고리의 다른 글
[프로그래머를 위한 선형대수] Review (3~4) (79) | 2022.02.08 |
---|---|
지금까지 캐글을 시작하지 못햇던 이유 (34) | 2022.02.07 |
[프로그래머를 위한 선형대수] Review (1) (34) | 2022.01.30 |
금융데이터와 머신러닝의 결합 실패 이유 - Qraft Technoledge (34) | 2022.01.08 |
Project : QQQ Price Predict (3) | 2021.10.05 |
댓글()