Vector
벡터를 사용하는 이유
- 단일 숫자로 표현하기 어려운 데이터를 벡터로 표현한다.
- ex) 꽃받침 길이 5.1, 꽃받침 너비 3.5, 꽃잎 길이 1.4, 꽃잎 너비 0.2
⎣⎢⎢⎢⎡5.13.51.40.2⎦⎥⎥⎥⎤
- 데이터를 효과적으로 저장하고 연산할 수 있다.
- 머신러닝 모델 내의 매개변수(parameter)들도 벡터로 간결하게 표현할 수 있다.
θ=⎣⎢⎢⎢⎡θ0θ1⋯θn⎦⎥⎥⎥⎤
벡터의 기하학적 의미
- 크기와 방향을 함께 가지는 양
- N차원 공간에서 데이터 하나를 점 또는 화살표로 표현한다.
- 내적
- 두 벡터의 방향이 일치하는 만큼의 크기를 곱한 것
- 단위벡터간의 내적은 두 데이터 사이의 유사도를 의미한다.
a⋅b=∣a∣∣b∣cosθ
Matrix
행렬
- 여러 개의 벡터를 담은 것
- row, column으로 색인(indexing)이 가능하다.
- ex) [150,4] shape의 데이터에서 75번째 데이터의 세번째 feature는 x75,3으로 표현한다.
- 흑백 이미지의 경우 개별 데이터가 행렬 형태이다.
- 컬러 이미지의 경우 개별 데이터가 tensor 형태이다.
행렬 연산
- 행렬의 곱: 행 벡터와 열 벡터의 내적의 연속
- 행렬 곱은 선형 변환, 선형 함수와 동일하다.
- 퍼셉트론 연산은 행렬의 연산과 동일하다.
- Determinant
- 행렬식은 정사각행렬에서만 적용한다.
- 기하학적 의미: 행렬곱에 의해 넓이 또는 부피가 확대되는 비율
- 역행렬
- 역행렬은 정사각행렬에서만 적용한다.
- 스칼라의 역수와 같은 개념
- 연립방정식의 해를 구할 때 사용한다.
- 정사각행렬이 아닌 경우 Pseudo-inverse matrix를 사용한다.
A+=(ATA)−1AT
행렬의 분해
행렬을 분해하는 이유
- 분해를 통해 특성을 파악하기 용이하다.
- 딥러닝 네트워크가 무거워지면서 행렬 분해가 점점 중요해지고 있다.
고유벡터
- 정의: 선형 변환을 취했을 때 방향은 변하지 않고 크기만 변하는 벡터
- 정사각행렬 선형 변환에 대해서만 적용 가능하다.
- Eigenvalue는 λ이고 eigenvector는 v일 때
Av=λvdet(A−λI)=0
Eigendecomposition
- Λ: eigenvalue들을 대각선에 배치한 대각행렬
⎣⎢⎢⎢⎢⎡λ10000λ20000⋱⋯00⋮λn⎦⎥⎥⎥⎥⎤
- Q: eigenvector들을 열에 배치한 행렬
[v1v2⋯vn]
- Eigenvector들은 서로 직교한다.
Av=λvAQ=QΛA=QΛQ−1
행렬 특이값 분해
Singular Value Decomposition
- 정사각행렬이 아니어도 분해 가능하다.
- 왼쪽 특이행렬 U: AAT의 고유 벡터를 열에 배치한 n×n 행렬
- 오른쪽 특이행렬 V: ATA의 고유 벡터를 열에 배치한 m×m 행렬
- Σ: AAT의 고윳값 제곱근을 대각선에 배치한 n×m 행렬
A=UΣVT
- Singular value는 중요도를 의미한다.
- 데이터 차원을 축소해 계산량을 절감하기 위해 사용한다.