-
행렬은 뭔가요?BoostCourse 2023. 1. 7. 19:22
From BoostCourse 임성빈
수학기호 쓰려고 LaTex까지 배워왔다.
1. 행렬은 벡터를 원소로 가지는 2차원 배열이다.
2. 벡터가 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타낸다.
3. 행렬은 벡터 공간에서 사용되는 연산자로 이해할 수 있다.
>> $z = Ax$ (벡터 $x$ $\rightarrow$ 벡터 $z$)
>> 행렬곱을 통해 벡터를 다른 공간으로 보낼 수 있다.
>> 행렬곱을 통해 패턴을 추출하거나 데이터를 압축할 수 있다.
4. 행렬식이 0이 아니고 $n=m$인 경우 역행렬이 존재한다.
>> $AA^{-1} = A^{-1}A = I$
np.linalg.inv(x)
5. 역행렬을 계산할 수 없다면 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역행렬 $A^+$을 이용할 수 있다.
$ n \ge m$인 경우 $A^+ = (A^TA)^{-1}A^T$
$ n \le m$인 경우 $A^+ = A^T(AA^T)^{-1}$
np.linalg.pinv(y)
응용 1: 연립방정식 풀기
$Ax = b$
$x = A^+b$
응용2: 선형회귀분석
$X\beta = \hat{y} \approx y$
$\beta = X^+y$
$\Rightarrow$ 벡터 $y$의 $L_2$ 노름을 최소화하는 $\beta$를 찾게 된다.
# 참고
np.inner은 $i$번째 행벡터와 $j$번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다.
x = np.array([[1, -2, 3], [7, 5, 0], [-2, -1, 2]]) y = np.array([[0, 1, -1], [1, -1, 0]])
np.inner(x, y)
array([[-5, 3], [ 5, 2], [-3, -1]])
'BoostCourse' 카테고리의 다른 글
선형결합 (0) 2023.01.07 선형방정식과 선형시스템 (0) 2023.01.07 벡터가 뭐에요? (0) 2023.01.05 Numpy (1) 2023.01.05 Exception/File/Log Handling (0) 2023.01.02