해결할 문제 리스트
- Ax = b 를 만족하는 x값을 get
- Ax = λx 를 만족하는 x와 λ를 get
- Aυ = σu 를 만족하는 υ,σ,u를 get
- || Ax ||² / || x ||² 을 최소화
- 행렬 A를 열과 행의 곱으로 분해
방정식 Ax = b 의 해 x가 존재하면 구하고싶다(?)
벡터 b는 A의 열공간(column space)의 원소일까?
고유 방정식 Ax = λx 는 Ax = b와 상당히 다른 형태이다
고유방정식에는 벡터b가 없다
그러므로 이 고유 방정식에서는 행렬 A만으로 해를 계산해야 한다
=begin : 여기서 부터는 모르는 내용이 있더라도 겁먹지말고 그냥 대충이라도 읽어보자
Ax와 x가 같은 방향인 경우를 찾아야한다.
그 방향을 찾아 행렬 A와 관련된 복잡한 문제를 단순하게 변형할려고 한다
ex) 벡터A²x 는 λ²x로 변형이 된다
미분방정식에서 생성되는 행렬 e^A^t 는 단순히
e^λ^t를 곱하는 문제로 변형이된다
모든 x 와 λ를 안다면 어떠한 선형문제라도 풀수있다
방정식 Aυ = σu는 고윳값문제와 비슷해 보이지만 다른문제다
두벡터 υ 와 u 그리고 행렬 A가 있다고 하면
행렬 A는 대부분 정사각행렬이 아니고 데이터로 가득 차 있다
이 데이터의 행렬의 어떤부분이 중요할까?
특잇값 분해(Singular Value Decomposition, SVD)는 가장 간단한 표현방법인 σuυ^T 를 찾는다
펴서 보면
이 각각은 모두 행렬이다
(열 u × 행 u^T)
이 모든 행렬은 직교벡터로 만들어진다.
그러므로 데이터 과학(Data science)은 SVD에서 선형대수학과 연결된다
σuυ^T 를 찾는것은 주성분분석(Principal Component Analysis, PCA)의 목적
최소화와 행렬분해는 기본적인 응용문제다
이 두 문제는 특이벡터 υ,u 와 밀접한 관계가있다
최소제곱(least squares)에서 최적의 ^x 를 구하고
PCA에서 주성분인 υ1 을 계산하는 것은 데이터 적합(fitting)의 대수적문제라고 할수있다
열공간,영공간,고유벡터,특히벡터를 이해를 한다면
최소제곱,통계학LASSO,신경망을 이용한 확률적 경사하강법을 응용할수있다
*행은 세로 축 열은 가로 축이다
=end
행렬 A = [2 3] 의 세 행을 사용해서 A와x의 곱셈을
|2 4| 계산할려고 한다 그리고 A의
[3 7] 2개의 열을 사용해서 계산한다
- 행을 이용해서 (이 기준으로 설명을 계속진행)
[2 3] [2x1 + 3x2]
|2 4| [x1] -> |2x1 + 4x2] -> x =(x1,x2)
[3 7] [x2] [3x1 + 7x2] 와 행의 내적
- 열을 이용해서 (이 기준으로 설명을 계속진행)
[2 3] [2] [3]
|2 4] [x1] x1 |2| + x2 |4| -> 열 a1과a2
[3 7] [x2] [3] [7] 의 일차결합
두 가지 방법을 아무거나 해도 결과는 모두 같게 나온다
첫번쨰 방법을 더 자세히 설명한다면
한번에 한행씩 내적게산을 해야한다
내적 표기법은 점곱(점으로 곱을 표기{dot product})으로한다
*** 행⋅열 = ( 2 , 3 ) ⋅ ( x1 , x2 ) = 2x1 + 3x2 ***
이제 Ax의 세개의 개별 구성요소를 찾을수있게되었다
백터 Ax를 a1 a2 의 일차결합으로 생각한다
일차결합이란 대충이런것이다
지금은 R^2, 2-tuple 형식이다
열벡터 a1 과 a2 에 스칼라 x1과x2를 곱한다
-------------------------------------------------------------------------------------------------------------
(이해하기 쉽도록 곱하기의 예로 설명)
스칼라란? -> 정확한 정의는 아니지만 선형대수학에서 선형공간(벡터공간) 의 원소와 곱하는 원소이다
위 고양이-1 식에서 (2,3) 은 선형공간 즉 벡터공간에서 x1과 곱하고있다(곱하기 생략)
그러므로 (2,3)과 곱하고 있는 x1은 스칼라다
(스칼라는 문자가 모두 기울어져있다)
지금은 이렇게만 알고있고 차차 선형대수학을 배우면서 더 자세하게 공부하면 기분이좋을것이다(?)
--------------------------------------------------------------------------------------------------------------
두 벡터를 더하면 (x1a1 + x2a2 = Ax) Ax는 행렬 A의 열의 일차결합이다
이거는 선형대수학에서 가장 기본적인 연산이면서 가장 기초적인 개념이다
이 개념은 행렬 A의 열공간으로 이어진다
중요한 point는 열의 모든 일차결합을 가져오는것 bring!
이떄 x1과x2는 실수다 (float)
이 벡터공간은 임의의 벡터 x에 대하여 모든 Ax를 포함 -> 이렇게 한다면 무수히 많은 벡터 Ax를 얻을수있다
ex) 0.1A , 0.01A, 0.001A ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
이 벡터는 기하학적으로도 생각이 가능하다
예를 들어서 각 Ax가 3차원 공간의 벡터라고 한다
3차원 공간의 벡터란?
위의 그림을 보면 [] 안, 즉 공간에 원소들이 3개가 있는거를 3차원 공간이라고한다
기호로는 IR^3 이다 여기서 궁금증이 생길것이다 IR^3 에 3이 차원을 뜻하는건가?
정답! 시각화로 3차원 이상을 나타내는건 힘든일이다
하지만 수학적으로는 어떠한 차원이라도 나타낼수있다
그것이 몇백차원 몇천차원이더라도
n차원은 IR^n
ex) IR^1 (1차원 공간) IR^100 (100차원 공간)
TMI) IR 로 나타내거나 R로 나타내는건 같은것 같다 미국에서는 IR 로 쓰고 한국에서는 R로 쓰는경향인거 같다
R은 실수 집합이다
IR^3 은 3개의 복소수로 이루어진 벡터는 3차원 복소공간 C^3 위에 있다
모든 일차결합 Ax = x1a1 + x2a2는 3차원 공간에서 어느부분을 생성하는가?
Ax = x1a1 + x2a2는 평면을 생성한다
이 평면에는 모든벡터 x1a1이 포함되있다
a1 = (2,2,3) 방향의 모든 직선이 이 평면에 포함된다
Also, 이 평면은 a2방향의 모든 백터 x2a2를 포함한다
한 직선위의 벡터와 다른 직선 위의 벡터의 합 역시 포함이 된다
이게 먼말이냐면 a1의 x축이 a2 의 y축와 의 합은 그 축들을 모두 만족시킨다
그러므로 이 합은 두 직선을 포함하는 무한 평면을 채운다
하지만 이 평면은 3차원 공간이라서 모두채우지는 못한다
2차원이라면 가능하다
**행렬 A의 열은 일차결합은 A의 열공간을 모두 채운다
---------------------------------------------------------------
열공간(Column space) 이란?
쉽게말해 열방향 벡터들을 span해서 만들어진 공간
-> span((2,3),(2,4),(3,7)) OR <(2,3),(2,4),(3,7)>
(2,3) (2,4) (3,7) 이것들을 열벡터라고 부른다
열은 Column 이다 그래서 수학적으로는
A 행렬에서 열공간을 C(A) 라고 적는다
성질)
A~rB
A라는 행렬이 있다
Hn H1 , A -> Hn에서 부터 H1의 사이를 A행렬이라고 하면
Hn H1 , A = B -> 행렬A는 행렬B의 형태를 만들어낸다
이것을 행 동치관계라고 부른다
그러므로 R(A) = R(B) 가 성립한다 -> row는 행이다
차원이 완전히 같아진다라고 생각하면 된다
------------------------------------------------------------------
여기서 열공간은 평면이다
이 평면이 x1 = x2 = 0 일떄 생성되는 원점(0,0,0) 포함시킨다
그리고 이 평면은 두점 (5,6,10) = a1 + a2 와 (-1,-2,-4) = a1-a2도 포함시킨다
Also, 모든 일차 결합 x1a1 + x2a2는 이 열공간에 포함이 된다
임의의 점 rand(3,1)이 평면에 포함될 확률은 0 이다
이 평면위에는 어떤점이 존재할까
** rand(3,1) -> 0~1 사이의 난수로 구성되있는 3 * 1 행렬
(x1,x2) 가 Ax = b의 해면 b = (b1,b2,b3)은 행렬 A의 열공간의 원소다
위에 문장의 조건을 해석하면
Ax = b 해 , 즉 x가 (x1,x2) 면 b 가 (b1,b2,b3) A의 열공간의 원소다
해 x는 b를 행렬A의 열의 일차결합 x1a1 + x2a2로 어떻게 표현하는지 보여준다
b는 일차겹합으로의 표현이 불가능하다(열공간의 원소가 아니다)
=========================================
[1]
b = |1| 그러므로 C(A)의 원소가 아니다
[1]
----------------------------------------------------------------------
Ax = [2x1 + 3x2] [1]
|2x1 + 4x2] = |1| 이거의 해는 존재하지않는다
[3x1 + 7x2] [1]
==========================================
왜 b가 원소가 아니냐면 x1에 1/2 를 넣고 0 을 넣는다하면 1,2번쨰 방정식은 성립을 한다 그러나
3번쨰 방정식은 3/2 이므로 b의 원소 (1,1,1)가 원소가 아니다
Ax의 3번쨰 방정식에 x1 = 1/2 , x2 = 0 을 대입하면
(3(1/2) + 7(0) = 1.5 OR 3/2) 결과가 1이 아니므로 b는 (1.1.1) 열공간(a1과 a2로 이루어진 평면에 원소가 아님을보여준다
A2의 열공간은 앞에서 찾은 평면과 같다
A1에서 새롭게 추가돤 열 (5,6,10) 은 A1의 (1열) + (2열) 이다
a3 = 3 열은 앞에서 찾은 평면에 포함이된다
원래 있던 평면에 종속인 열이 추가되었으므로 처음평면에는 변화가 없다
A3의 열공간은 3-tuple OR R^3 3차원공간 전체다
A3의 행렬을 보면 추가된 열 (1,1,1,) 이 평면 C(A)에 포함되있지 않음을 다시 볼수있다
새로운 열공간 C(A3)가 C(A) 보다 더 커야 한다
평면과 3차원 공간 사이에서는 새로운 차원을 생각할수없다
xy평면과 xy평면에 포함되지 않은 또 다른 벡터 (x3,y3,z3) 에서 z3을 0이 아니라고 해서 시각화를 하면
xy평면과 벡터(x3,y3,z3)의 결합이 바로 R^3의 모든 벡터임을 확인할수있게된다
R^3 에서생각할수있는 모든 열공간을 찾아보면 0,1,2,3 차원중 하나일거다
R^3의 부분공간
- 영벡터 (0,0,0) 자기자신
- 모든벡터 x1a1 : 직선
- 모든벡터 x1a1 + x2a2 : 평면
- 모든벡터 x1a1 + x2a2 + x3a3 : R^3 (3차원공간)
여기에서 a1,a2,a3은 서로 independence (독립) 이다
세 벡터의 일차결합이 0이 되는 경우는 0a1 + 0a2 + 0a3 뿐일 경우다
벡터 a1은 직선을 생성한다
두벡터 a1,a2는 평면을 생성한다
a1,a2,a3은 R^3 의 임의의 벡터 b를 표현할수있다
영벡터는 모든부분공간의 원소다
선형대수학 관점으로 보면
*참고로 exp 는 c++ 에서 std::exp 거듭제곱을 표시할떄 쓰이는 내장함수이다
R^3 의 일차독립인 세 벡터는 가역행렬을 생성 (AA exp(-1) = A exp(-1) A = I
Ax = 0 의 해는 x= (0,0,0)가 유일한 해다 (Ax = b 의 유일한 해는 x = A exp(-1) b다
N x N 가역행렬의 열을 생각하면 열의 일차결합 , 열공간은 R^n 과 같다
이제 앞으로도 예측할만한 결론을 구해냈다 앞으로 더 밝히면서 계속 풀어 갈것이다
'수학으로 배우는 코딩' 카테고리의 다른 글
선형대수 - 행렬의 종류에 대하여 (0) | 2022.03.13 |
---|---|
벡터란? (벡터의 덧셈) (0) | 2022.03.09 |