Boostcamp AI tech 3기/개념 이해

[Week01] AI Math - 행렬과 역행렬 그리고 무어-펜로즈 역행렬

mcdn 2022. 1. 20. 13:26
반응형

행렬 

벡터를 원소로 가지는 2차원 배열 

numpy에서는 row 행이 기본 단위다. ---->이 방향 

행렬을 표기할 때 row-column 순서 

 

벡터랑 다른 점 

벡터는 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타낸다. 

행렬 xij는 i번째 데이터의 j번째 변수 값을 말한다. 

 

전치행렬 

전치행렬 transpose matrix는 행과 열의 인덱스가 바뀐 행렬을 말합니다. 

첫번째 행은 첫번째 열이 되는 것 

12

34 면 역행렬은 

13

24 겠지

 

행렬의 덧셈 뺄셈 성분곱 스칼라곱 

행렬끼리 같은 모양이면 덧셈 뺄셈이 가능하다. 

 

곱셈부터 조금 다른데 

행렬 곱은 앞의 열과 두번째 행렬의 행의 개수가 같아야 한다. 

행벡터와 열 벡터 사이의 내적으로 계산되는 것이 곱셈 

3*3 3*2 매트릭스 두개라면 3행 2열이 되는 것 

 

결론은 <두행렬의 곱은 첫번째 행렬의 과 두번째 행렬의 개수가 같아야 한다. >

 

역행렬 

역행렬은 모두 계산할 수 없고 규칙이 있다. 

역행렬 구하는 공식 

쓰는 파이썬 함수는 np.linalg.inv(행렬)

무어 -펜로즈 역행렬 함수는 np.linalg.pinv(행렬)

import numpy as  np

# Y = np.array([[1,-2,3], [7,5,0], [-2,-1,2]])
# a = np.linalg.inv(Y)
# print(a)

# Y = np.array([[0,1], [1,-1], [-2,1]])
# a = np.linalg.pinv(Y)
# print(a)

# b = a @ Y
# print(b)


Y = np.array([[1,0,1], [0,1,0], [1,1,0]])
a = np.linalg.inv(Y)
print(a)


Y = np.array([[1, 0, 1], [0, 1, 0]])
a = np.linalg.pinv(Y)
print(a)

 

반응형