[U] Week 1 - 행렬

JaeJun Lee ·2022년 9월 21일
0

부스트캠프 AI Tech

목록 보기
2/30

행렬은 벡터를 원소로 가지는 2차원 배열.

  • numpy에서는 행(row)이 기본 단위.
  • 행렬은 행(row)와 열(column)이라는 익데스(index)를 가진다.
  • 행렬의 특정 행(열)을 고정하면 행(열)벡터라고 부른다.
    • 전치 행렬(Transpose matrix)은 행과 열의 인덱스가 바뀐 행렬이다.

벡터가 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타낸다.
행렬끼리 같은 모양을 가지면 덧셈, 뺄셈을 계산할 수 있다.
성분곲은 벡터와 같다. (각 인덱스 위치끼리 곱한다)
행렬 곱셈은 ii번째 행벡터와 jj번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다. (XX의 열의 개수와 YY의 행의 개수가 같아야 한다, 순서 중요)

넘파이의 np.inner는 ii번째 행벡터와 jj번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다. (수학에서 말하는 내적과 다르다!)

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

  • 모든 선형 변환은 행렬곱으로 계산할 수 있기 때문에 행렬곱을 이해해야 기계학습에서 사용되는 선형모델과 선형변형들을 이해할 수 있다.
  • 딥러닝 또한 선형 변환과 비선형 함수들의 함수들로 이루어져있기 때문에 행렬곱에 대한 이해가 필요하다.

어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬을 역행렬(Inverse matrix)이라 부른다.
역행렬은 행과 열 숫자가 같고 행렬식(determinant)이 0이 아닌 경우에만 계산할 수 있다.

  • 역행렬은 n=mn = m일 때만 가능하고 행렬 AA의 행렬식이 0이 되면 안된다.
  • 만일 역행렬을 계산할 수 없다면 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역행렬 A+A^+를 이용한다.

식의 개수와 변수의 개수가 같을 때 np.linalg.pinv(유사역행렬)을 이용해 연립방정식의 해를 구할 수 있다.

  • 변수의 개수가 식의 개수보다 많다면 무한히 많은 해, 부정으로 표현할 수도 있다.
  • 선형 회귀의 경우 n>=mn >= m인 경우(식이 해보다 많음)가 많기 때문에 y = XβX\beta에서 XX를 찾는 것은 불가능하고 XX가 주어진 상태에서 β\beta를 찾는 거지만, y = XβX\beta를 만족하는 식을 찾는 것은 거의 불가능하다. (최선이 되는 선형 회귀식을 찾는 것이다)
  • L2-norm을 최소화하는 계수 β\beta를 찾게 되면 선현 모델을 사용해서 주어진 데이터를 잘 표현할 수 있다. (yy' 찾기)

항등행렬은 임의의 벡터 또는 행렬을 곱했을 때 자기 자신이 나오게 되는 행렬.

0개의 댓글