행렬

yst3147·2022년 1월 18일
0

행렬의 특징

  • 행렬(matrix)는 벡터를 원소로 가지는 2차원 배열
  • 행렬은 행(row)과 열(column)이라는 인덱스(index)를 가짐
  • 행렬의 특정 행(열)을 고정하면 행(열)벡터라 부름

전치행렬

전치행렬(transpose matrix)는 행과 열의 인덱스가 바뀐 행렬

행렬을 이해하는 방법(1)

  • 벡터가 공간에서 한 점을 의미할 때 행렬은 여러 점들을 의미
  • 행렬의 행백터는 i번째 데이터를 의미
  • 행렬의 xij는 i번째 데이터의 j번째 변수의 값을 의미

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

  • 행렬은 벡터를 원소로 가지는 2차원 배열
  • 행렬끼리 같은 모양을 가지면 덧셈, 뺄셈을 계산할 수 있음
  • 성분곱과 스칼라곱도 벡터와 차이가 없음

행렬 곱셈

  • 행렬 곱셈(matrix multiplication)은 i번째 행벡터와 j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산
  • 행렬곱은 X의 열의 개수와 Y의 행의 개수가 같아야 함

행렬 내적

  • numpy의 np.inner는 i번째 행벡터와 j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산
  • 수학에서 말하는 내적과는 다름
  • 행렬곱에서는 X 의 열의 개수와 Y 의 행의 개수가 같아야하고, 행렬의 내적에서는 X 의 열의 개수 (행벡터 크기) 와 Y 의 열의 개수가 같아야 함!

행렬을 이해하는 방법(2)

  • 행렬을 벡터공간에서 사용되는 연산자(operator)로 이해

  • 행렬곱을 통해 벡터를 다른 차원의 공간으로 보낼 수 있음

    • n x m 행렬과 m x 1 벡터를 곱하면 벡터는 n 차원으로 이동이 됨 (Linear Transform)
  • 행렬곱을 통해 패턴을 추출할 수 있고 데이터를 압축할 수도 있음

  • 모든 선형변환(linear transform)은 행렬곱으로 계산할 수 있음

역행렬

  • 어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬을 역행렬(inverse matrix)라 부르고 라 표기
  • 역행렬은 행과 열 숫자가 같고 행렬식(determinant)가 0이 아닌 경우에만 계산 가능
  • np.linalg.inv(X)

유사역행렬

  • 행과 열의 숫자가 달라 역행렬을 계산할 수 없을 때 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역행렬을 이용

  • 행 개수가 열 개수보다 많은 경우

  • 열 개수가 행 개수보다 많은 경우

  • np.linalg.pinv(Y)

  • 주의할 점

    • 행 개수가 열 개수보다 많은 경우, 만 성립
    • 열 개수가 행 개수보다 많은 경우, 만 성립

응용

연립방정식

  • 식이 변수 개수보다 작거나 같을 때(n <= m) 무어-펜로즈 역행렬을 이용하면 해를 하나 구할 수 있음

선형회귀분석

  • 데이터가 변수 개수보다 많거나 같을 때(n >= m) 무어-펜로즈 역행렬을 이용하면 y에 근접하는 을 찾을 수 있음
  • sklearn의 LinearRegression과 같은 결과를 가져옴

0개의 댓글

관련 채용 정보