부스트캠프 Ai tech/1주차

1일 - 벡터와 행렬

소갱 2022. 1. 17. 13:30
  • 열벡터(세로), 행벡터(가로)
  • 벡터에 숫자를 곱하게 되면 스칼라 값만 변한다. ( 방향 X , 크기 O )
  • 같은 모양의 벡터일 때 덧셈 and 뺄셈 and 성분곱(Hadamard product) 가능
    x = np.array([1, 2, 3])
    y = np.array([2, 3, 4])
    
    x + y
    x - y
    x * y / 성분곱​
  • 벡터의 뺄셈 -> 덧셈으로 바꿔서 생각

 

벡터의 노름(norm)

원점에서부터의 거리
  • L_1 노름 = 변화량의 절댓값의 합
  • L_2 노름 = 피타고라스 정의를 이용한 유클리드 거리

머신러닝에서 둘 다 사용

 

 

행렬(matrix)

벡터를 원소로 가지는 2차원 배열, 공간에서 여러 점들을 나타냄
  • n X m 행렬 => n개의 행 m개의 열 
  • X_ij = i번째 행 j번째 열
  • 전치행렬 (T 기호를 씀 X^T) = 행과 열의 인덱스가 바뀐 행렬
  • n X k 와 k X z 는 곱셈이 가능 => n X z

numpy의 inner함수를 사용해서 행렬끼리의 곱셈을 할 수 있다.

import numpy as np
np.inner(X, Y)

 

역행렬

어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬, 기존 행렬에 곱했을 경우 항등행렬이 나오게 됨
  • numpy 중에는 linalg 라이브러리의 inv 함수를 사용해서 계산 가능
import numpy as np
np.linalg.inv(X)
  • 역행렬은 행과 열 숫자가 같고 행렬식이 0이 아닌 경우에만 계산 가능

 

무어펜로즈 역행렬

  • numpy 중에는 linalg 라이브러리의 pinv 함수를 사용해서 계산 가능
np.linalg.pinv(X)

 

+ n < m 일 경우엔 구할 수 없다.

노트정리