[AI Math] 행렬

ssu_hyun·2021년 12월 1일

행렬(matrix)

  • 벡터(vector)를 원소로 가지는 2차원 배열

  • 인덱스 = 행(row)열(column)

    전치행렬
    행과 열의 인덱스가 바뀐 행렬

  • 행렬=공간에서의 여러 점들

    • 행벡터 XiX_i = ii번째 데이터 (하나의 점)
    • xijx_{ij} = ii번째 데이터의 jj번째 변수의 값



행렬의 연산

행렬의 연산은 벡터와 동일하게 같은 모양을 가질 때 계산이 가능하다.

덧셈, 뺄셈

성분곱

스칼라곱



행렬 곱셈

  • ii번째 행벡터jj번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산
    • XX의 열의 개수 = YY의 행의 개수
    • 곱셈 순서에 따라 결과값이 달라지므로 유의


np.inner

  • ii번째 행벡터jj번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산 (행렬 곱과 다름)

연산자(operator)

  • 행렬 = 벡터공간에서 사용되는 연산자(operator)
  • 행렬곱을 통해 벡터를 다른 차원의 공간으로 보낼 수 있다.
  • 행렬곱을 통해 패턴을 추출할 수 있고 데이터를 압축할 수도 있다.



역행렬(inverse matrix)

  • 어떤 행렬 AA의 연산을 거꾸로 되돌리는 행렬
  • A1A^{-1}로 표기
  • 조건
    1. 행 = 열 : 행과 열 숫자가 같아야함
    2. 행렬식(determinant) != 0

  • numpy.linalg.inv 로 구할 수 있다.

  • 역행렬을 계산할 수 없는 경우
    유사역행렬(pseudo-inverse) 또는 무어펜로즈(Moore-Penrose) 역행렬 A+A^+ 이용

    • numpy.linalg.pinv로 구할 수 있다.

      응용1 : 연립방정식 풀기

      • np.linalg.pinv를 이용하면 연립방정식의 해를 구할 수 있다.
      • (aij)(a_{ij})(bi)(b_i)들이 주어진 상황에서 방정식을 만족하는 (xj)(x_j)를 구하는 상황

      응용2 : 선형회귀분석

      • np.linalg.pinv를 이용하면 데이터를 선형모델(linear model)로 해석하는 선형회귀식을 찾을 수 있다.
      • 선형회귀분석은 XXyy가 주어진 상황에서 계수 β\beta를 찾아야 한다.
      • 행이 더 크므로 역행렬을 이용한다.
      • sklearnLinearRegression과 같은 결과를 가져올 수 있지만 Moore-Penrose 역행렬의 경우 y절편 항을 직접 추가해야 한다.






review

  • 행렬(matrix)
    • 행(row)과 열(column)
    • 전치행렬(transpose matrix)
    • 연산 : 덧셈, 뺄셈, 성분곱, 스칼라곱
    • 행렬 곱셈
      • np.inner
      • 연산자
    • 역행렬
      • numpy.linalg.inv
      • 유사역행렬(pseudo-inverse) / 무어펜로즈(Moore-Penrose) 역행렬 A+A+
        • numpy.linalg.pinv
          • 연립방정식
          • 선형회귀분석
            • sklearn LinearRegression

0개의 댓글