부스트캠프 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 일 경우엔 구할 수 없다.
노트정리