(통계 가고 선형대수 옴...)
선형대수(Linear Algebra)
머신러닝에 있어서 선형대수는 매우 중요하다. 컴퓨터가 이미지 처리, 자연어 처리, 추천 알고리즘 등 머신러닝을 통해 학습을 하기 위해서는 대량의 데이터를 받아들이고 처리할 수 있어야 하는데, 데이터를 처리하는 과정에서 선형대수가 필요하다고 한다.
Input data와 output data가 여러개 있고 이 변수들이 서로 선형적인 관계로 얽혀있다고 가정할 때, 이 얽혀있는 부분을 행렬로 표현한다. 즉, 선형대수를 간단히 설명하면 주어진 데이터를 행렬로 표현한 것이다.
스칼라(Scalar) : 변수로저장되어있는단일 숫자. 소문자 기호로 표기함.
벡터(Vector)
: 데이터의 행, 열(python에서는 list로 사용된다.) 여러개의 숫자(원소)가 순서대로 모여있는 것으로 순서가 유의미하기 때문에 유지되어야 한다. 위에서 아래로 쓰는 복수의 행과 하나의 열로 표현한다. 기호 위에 화살표가 있는 소문자로 표기함.
-
norm : 놈은 벡터나 행렬의 크기를 표현하는 개념이다. |x| <- 이렇게 표기함. 놈은 벡터의 모든 원소의 제곱을 더한 후 루트를 씌운 값이며, 항상 0보다 크고 놈이 0일 경우는 모든 원소가 0일 경우이다. python에서는 numpy를 통해 쉽게 구할 수 있다.
import numpy as np
x = np.array([[1], [2], [3], [4]])
print('벡터 x의 norm :', np.linalg.norm(x))
- Dot product : 백터의 내적은 두 백터의 각 구성요소를 곱한 뒤 합한 값. 백터의 내적을 구하기 위해서는 두 벡터의 길이가 반드시 동일해야 함.
import numpy as np
x = np.array([[1], [2], [3], [4]])
y = np.array([[5], [6], [7], [8]])
#방법 1
(x*y).sum()
#방법 2
np.dot(x, y)
매트릭스(Matrix) : 행열로 이루어진 숫자 모음. 일반적으로 대문자로 표기함. (dataframe)
- Square matrix : 정사각 매트릭스는 행열의 수가 동일한 매트릭스를 의미한다.
- diagonal : 정사각 백터의 대각선에만 값이 있고 나머지는 0인 벡터
- upper triangular : 대각선을 기준으로 대각선 위쪽에만 값이 있는 벡터
- lower triangular : 대각선을 기준으로 대각선 아래쪽에만 값이 있는 벡터
- Identity : 단위행렬은 대각선 원소가 모두 1이고 나머지 원소는 0인 행렬을 의미함. 곱셈을 할 때 1을 곱하면 어떤 수와 곱해도 1이 나오 듯 identity matrix는 어떤 행렬을 곱해도 원래의 행렬이 나온다.
np.identity(5)
- Determinant : 행렬식은 det(A), |A|로 표기함. 정사각 행렬에 스칼라를 대응시키는 함수
import numpy as np
x = np.array([[1], [2]], [[3], [4]])
np.linalg.det(x)
- Inverse : 행렬의 역수. 매트릭스에 그 역행렬을 곱하면, 단위 매트릭스가 됨. 행렬에서 나눗셈을 할 수 없기 때문에 나눗셈 대신 역행렬을 곱함. 역행렬이 존재하지 않는 행렬은 특이행렬 이라 함(매트릭스의 행과 열이 선형적적인 관계를 이루고 있을 때 발생 -> data에 redundancy가 있다!)
np.linalg.inv(x)
'AI > Data Analysis, Statistics' 카테고리의 다른 글
Sprint3_선형대수(dimension reduction) (0) | 2021.01.14 |
---|---|
Sprint3_선형대수(Linear combinations, span, and basis vectors) (2) | 2021.01.14 |
Section2_Sprint challenge (0) | 2021.01.12 |
Section_Confidence Interval (0) | 2021.01.07 |
Sprint2_Hypothesis test (0) | 2021.01.06 |