부스트코스 강의 인공지능(AI) 기초 다지기 중 '행렬이 뭐에요?'를 정리한 내용이다.
벡터를 원소로 가지는 2차원 배열
행렬은 행(row)과 열(column)이라는 인덱스를 가짐
위치를 표시할 때 행,열 순서로 표시함
행렬의 특정 행(열)을 고정하면 행(열)벡터라 부름
전치행렬: 행과 열의 인덱스가 바뀐 행렬
벡터가 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타냄
행렬끼리 같은 모양을 가지면 덧셈과 뺄셈, 성분곱, 스칼라곱을 계산할 수 있음
행렬 곱셈(matrix multiplicatioN)은 i번째 행벡터와 j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산함, 행렬의 순서가 중요함
X의 열 개수와 Y의 행 개수가 같아야 행렬곱이 가능함
numpy의 np.inner는 i번째 행벡터와 j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산함 (수학의 내적과 다름)
행렬은 벡터공간에서 사용되는 연산자(operator)로 이해할 수 있음
역핼렬: 어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬, 행과 열 숫자가 같고 행렬식(determinant)이 0이 아닌 경우에만 계산 가능
항등행렬: 임의의 벡터 또는 행렬을 곱해주었을 때 자기 자신이 나오는 행렬
만일 역행렬을 계산할 수 없다면 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역핼렬을 이용함, 행의 개수와 열의 개수에 따라 계산이 달라짐
np.linalg.pinv를 이용해 연립방정식의 해를 구할 수 있음 (유사역행렬 이용)
np.linalg.pinv를 이용해 데이터를 선형모델(linear model)로 해석하는 선형회귀식을 찾을 수 있음 (유사역행렬 이용) - L2 노름을 최소화해 구함