AI/AI Math

[Math] 벡터와 행렬

sangwonYoon 2023. 3. 11. 14:04

AI 수학의 기본적인 개념인 벡터와 행렬에 대해서 알아보자.


벡터

  • 벡터는 숫자를 원소로 갖는 리스트 또는 배열이다.
  • 벡터는 공간에서 한 점을 나타낸다.
x = np.array([1,3,5]) # x는 벡터

 

노름(norm)

 

벡터의 크기 또는 길이를 측정하는 방식이다.

 

1. L1-노름

  • 각 성분의 변화량의 절대값의 총합
  • 맨허튼 거리를 구하는 방식과 동일하다.

2. L2-노름

  • 유클리드 거리를 계산하는 방식과 동일하다.

 

두 벡터 사이의 각도 구하는 방법

 

제2 코사인 법칙을 사용해서 두 벡터 사이의 각도를 계산할 수 있다.

벡터의 노름으로 cosθ의 값을 구할 수 있다.

 

여기서 제2 코사인 법칙 공식에서 분자의 값은 2*(벡터 x와 벡터 y의 내적)으로 정리할 수 있다.

 

 

행렬

  • 행렬은 벡터를 원소를 갖는 2차원 배열이다.
  • 벡터를 공간에서 한 점으로 볼 때, 행렬은 공간에서 여러 점들을 나타낸다.
X = np.array([[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]) # X는 행렬

 

행렬을 벡터 공간에서 사용되는 연산자로 이해할 수도 있다.

m차원 공간에서 존재하는 벡터 x를 행렬 A를 이용해서 n차원 공간의 벡터 z로 변환할 수 있다.

 

 

선형 변환

선형 변환은 선형 결합을 보존하는 두 벡터 공간 사이의 함수이다.

 

선형 결합이란?

  • 다른 말로 일차 결합이라고도 부른다.
  • 각 항에 상수를 곱하고 그 결과를 더함으로써 일련의 항으로 구성된 표현식이다.
  • 즉, ax + by + cz의 꼴의 표현식을 선형 결합이라고 부른다.

 

모든 선형 변환은 행렬곱으로 계산할 수 있다.

 

A : ax + by + cz

B : mw + nq

 

식 A에서 식 B로 변환하는 것이 선형 변환이고, 이 선형 변환은 행렬곱을 통해 변환된다는 의미이다.

 

 

역행렬이 존재하기 위한 조건

  1. 정사각 행렬
  2. det(A) ≠ 0 (A의 행렬식이 0이 아니어야 한다.)

 

유사 역행렬 (무어-펜로즈 역행렬)

  • 역행렬을 계산할 수 없을 때 사용하는 행렬이다.
  • 본래 행렬과 곱해서 단위 행렬을 만들어낼 수 있다.
  • n*m 크기의 행렬 A의 유사 역행렬은 m*n의 크기를 갖는다.

 

1. n ≥ m 이면

 

위 연산을 통한 단위 행렬 I의 크기는 m*m이다.

 

2. n ≤ m 이면

 

위 연산을 통한 단위 행렬 I의 크기는 n*n이다.

 

위를 통해 유사 역행렬과의 행렬 곱을 통해 만들어진 단위 행렬의 크기는 기존 행렬(A)의 행 또는 열 중에서 작은 크기를 따라간다는 것을 알 수 있다.

'AI > AI Math' 카테고리의 다른 글

Latex 명령어 정리  (2) 2023.04.24
[Math] CNN과 RNN 기본 개념  (0) 2023.03.13
[Math] 조건부 확률과 인과 관계  (0) 2023.03.12
[Math] 다층 퍼셉트론  (0) 2023.03.12
[Math] 경사 하강법  (0) 2023.03.11