0. 벡터와 행렬

MostlyFor·2023년 1월 3일
0

keyword
벡터, 행렬, 역행렬

행렬의 역할
벡터 변환, 이를 통해 정보 압축, 패턴 추출

역행렬
행렬식 0이 아닐 경우 존재, 0일 경우 유사역행렬

벡터는 크기와 방향을 갖는 물리량으로서 숫자를 원소로 가지는 배열 또한 벡터로 볼 수 있음.

벡터는 n차원 공간상의 한 점으로 나타낼 수 있음.

벡터의 크기

norm은 벡터의 거리를 나타낼 수 있는 수단.

L1 norm - 절대값의 합

x1=i=1dxi||x||_1 = \sum^d_{i=1} |x_i|

L2 norm - 유클리드 거리

x2=i=1dxi2||x||_2 = \sqrt{\sum^d_{i=1}|x_i|^2}

L1, L2 norm은 서로 거리의 정의가 달라서 어떤 norm이냐에 따라 원의 형태가 달라짐.
.
L1에서는 원점으로부터의 거리가 1인 원은 마름모 꼴로 나오고 L2에서는 우리가 아는 원 형태가 나옴.

두 norm의 기하학적 성질이 달라서 상황에 따라 선택해서 사용해야 함.

두 벡터의 거리

A와 B 벡터 사이의 거리는 두 벡터를 빼서 norm을 계산하면 된다.

두 벡터 사이의 각도

L2 norm 에서만 존재한다.
내적으로 계산하면 된다.

행렬

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

코딩할 때 행렬은 행벡터를 원소로 가지는 2차원 배열로 생각하는게 편함.

행렬은 벡터를 다른 차원의 공간으로 보내주는 연산자로 이해할 수 있다.
Z=AXZ=AX 에서 Z = n x 1 A = n x m X = m x 1 차원이라면 벡터 X는 행렬 A에 의해 Z로 변환되었다고 할 수 있다.

차원을 바꾸는 것을 통해 정보를 압축할 수도 있고 패턴을 추출할 수도 있다.

역행렬

변환 전으로 돌리고 싶은 경우 역행렬을 사용할 수 있는데, 역행렬은 행과 열의 숫자가 같아야하고 행렬식이 0이 아니어야 한다.

역행렬이 없을 경우 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역행렬을 이용한다.

B = np.array([[1,2]])

B @ np.linalg.pinv(B)
# 결과값 [[1]]

0개의 댓글

관련 채용 정보