머신러닝 - 선형대수학

BaekGeonwoo·2022년 6월 27일
0

머신 러닝

목록 보기
2/14

행렬과 벡터

  • 보통 행렬은 대문자로, 벡터는 소문자로 나타냄

행렬(Matrix):

A = [123456]\begin{bmatrix}1&2&3\\4&5&6\\ \end{bmatrix}
가로줄을 행(row), 새로줄을 열(column)이라고 한다.
위의 경우 2x3 행렬이라고 한다.

  • 행렬의 각 요소 표기:AijA_{ij} = 행렬 A의 i행 j열의 요소
    예: A12A_{12} 행렬 A의 1행 2열의 요소 = 2
  • m x n 행렬의 경우 아래와 같이 나타낼 수 있다.
    A = [A11A12...A1nA21A22...A2nAm1Am2...Amn]\begin{bmatrix}A_{11}&A_{12}&...&A_{1n}\\A_{21}&A_{22}&...&A_{2n}\\\vdots\\A_{m1}&A_{m2}&...&A_{mn}\end{bmatrix}

벡터(Vector): 행 또는 열이 하나뿐인 행렬

  • 벡터의 요소는 a_2 처럼 행렬과 달리 숫자 하나로 나타냄
  • n차원 벡터:
    a\vec{a} = [a1a2an]\begin{bmatrix}a_1\\a_2\\\vdots\\a_n \end{bmatrix}

행렬의 연산

  • 행렬의 덧셈: 같은 위치의 항끼리 더한다.
    A=[1245]  B=[3463]A = \begin{bmatrix}1&2\\4&5\\ \end{bmatrix}   B = \begin{bmatrix}3&4\\6&3\\ \end{bmatrix}
    A+B=[46108]A + B = \begin{bmatrix}4&6\\10&8\\ \end{bmatrix}

  • 행렬의 스칼라곱: 행렬의 각 요소에 스칼라를 곱한다.
    i=5 A=[3214]i = 5  A = \begin{bmatrix}3&2\\1&4\\ \end{bmatrix}
    iA=[1510520]iA = \begin{bmatrix}15&10\\5&20\\ \end{bmatrix}

  • 행렬과 행렬의 곱(내적곱)

    • 행렬 곱셈은 앞 행렬의 행을 뒤 행렬의 열과 각각 요소들끼리 곱하여 더한다.
    • 행렬곱셈을 하려면 행렬곱셈 ABAB에서 AA의 행 수와 BB의 열 수가 같아야 한다
    • AAnn x mm 행렬이고, BBmm x ll 행렬이면 ABABnn x ll 행렬이다.
    • 행렬 곱셈은 교환법칙이 성립하지 않는다. ABBAAB \neq BA
      A=[131231]  B=[345364]A = \begin{bmatrix}1&3&1\\2&3&1\\ \end{bmatrix}   B = \begin{bmatrix}3&4\\5&3\\6&4\\ \end{bmatrix}
      AB=[24271721]AB = \begin{bmatrix}24&27\\17&21\\ \end{bmatrix}
  • 요소별 곱하기: 차원이 같은 두 행렬의 요소들을 서로 곱하는 연산이다.
    A=[1245]  B=[3463]A = \begin{bmatrix}1&2\\4&5\\ \end{bmatrix}   B = \begin{bmatrix}3&4\\6&3\\ \end{bmatrix}
    AoB=[382415]A o B = \begin{bmatrix}3&8\\24&15\\ \end{bmatrix}

특수 행렬

  • 전치 행렬(Transposed Matrix): 행렬의 각 요소의 행과 열을 바꾼 행렬
    • 행렬 연산을 할 때 차원을 맞추기 위해 사용
      A=[121322]  AT=[132212]A = \begin{bmatrix}1&2&1\\3&2&2\\ \end{bmatrix}  A^T = \begin{bmatrix}1&3\\2&2\\1&2\\ \end{bmatrix}
  • 단위 행렬(Identity Matrix): 정방행렬 중 행번호와 열번호가 같은 항만 1이고 나머지는 0인 행렬
    • 정방행렬: 3x3 행렬과 같이 행 수와 열 수가 같은 행렬
    • 행렬 곱셈의 항등원
      I=[100010001]I = \begin{bmatrix}1&0&0\\0&1&0\\0&0&1\\ \end{bmatrix}
  • 역 행렬(Inverse Matrix): 곱해서 단위행렬이 나오는 행렬
    AAx?=I?=I
    • 행렬 곱셈의 역원
    • numpy.linalg.pinv(A)를 통해 행렬 A의 역 행렬을 구할 수 있다.
      A=[3412] A1=[3412]A = \begin{bmatrix}3&4\\1&2 \end{bmatrix}  A^{-1} = \begin{bmatrix}3&4\\1&2 \end{bmatrix}
      AA1=[1001]=IAA^{-1}=\begin{bmatrix}1&0\\0&1 \end{bmatrix}=I

선형대수학과 행렬

2x04x1+x2=32x_0-4x_1+x_2=3
3x0+x16x2=103x_0+x_1-6x_2=10
x0+x1+x2=5x_0+x_1+x_2=5

  • 다음과 같이 복잡한 연립방정식을 행렬과 벡터를 이용하여 쉽게 나타낼 수 있다.
  • 가우스-요르단 소거법 등으로 행렬을 통해 연립방정식을 쉽게 풀 수 있다.
    Ax=yAx=y

[241316111][x0x1x2]=[3105]\begin{bmatrix}2&-4&1\\3&1&-6\\1&1&1 \end{bmatrix} \begin{bmatrix}x_0\\x_1\\x_2 \end{bmatrix} = \begin{bmatrix}3\\10\\5 \end{bmatrix}

[2x04x1+x2=33x0+x16x2=10x0+x1+x2=5]=[3105]\begin{bmatrix}2x_0-4x_1+x_2=3\\3x_0+x_1-6x_2=10\\x_0+x_1+x_2=5 \end{bmatrix} = \begin{bmatrix}3\\10\\5 \end{bmatrix}

이 글은 코드잇 강의를 수강하며 정리한 글입니다. 더 자세한 설명은 코드잇을 참고하세요

코드잇 머신 러닝

profile
미래의 개발자입니다!

0개의 댓글