벡터부터 공분산 행렬, PCA까지

My_oyster_house·2025년 2월 3일

📌 벡터란?

벡터(Vector)란?

벡터는 방향과 크기를 가진 수학적 개념이다.
쉽게 말하면 "어느 방향으로, 얼마나 가는지"를 나타낸다.

✅ 벡터 vs. 스칼라

  • 벡터(Vector): 방향과 크기가 있음.
    예) "오른쪽으로 3칸, 위로 4칸"
  • 스칼라(Scalar): 크기만 있고 방향은 없음.
    예) "온도 30°C", "몸무게 60kg"

📌 즉, 벡터는 방향을 가지는 숫자라고 생각할 수 있다.

📌 벡터를 숫자로 표현하는 방법

2차원 공간(평면)에서 벡터는 다음과 같이 표현된다.

v=(x,y)v=(x,y)

➡ 여기서 xx와 yy는 벡터가 가는 방향을 나타내는 값이다.

  • xx = 가로 이동 (오른쪽이면 +, 왼쪽이면 -)
  • yy = 세로 이동 (위쪽이면 +, 아래쪽이면 -)

✅ 예제: 벡터 (3,4)(3,4)
벡터 (3,4)(3,4)는 오른쪽으로 3칸, 위로 4칸 이동한다는 뜻이다.

v=(3,4)v=(3,4)

📌 즉, 벡터는 단순한 숫자가 아니라, "어느 방향으로, 얼마나 가는지"를 나타낸다.

📌 벡터의 크기(길이)

벡터는 길이(크기)를 가질 수 있으며, 피타고라스 정리를 사용하여 계산한다.

∣v∣=x2+y2|v| = \sqrt{x^2 + y^2}

✅ 예제: 벡터 v=(3,4)v=(3,4)의 크기

∣v∣=32+42=9+16=25=5|v| = \sqrt{3^2 + 4^2} = \sqrt{9 + 16} = \sqrt{25} = 5

📌 즉, 벡터 (3,4)(3,4)는 길이가 5인 벡터이다.
📌 이 벡터는 방향도 있고, 크기도 있다.

📌 벡터의 방향

벡터가 가리키는 방향은 각도로도 나타낼 수 있다.
벡터가 x축과 이루는 각도 θ\theta는 다음과 같이 계산한다.

θ=tan⁡−1(yx)\theta = \tan^{-1} \left( \frac{y}{x} \right)

✅ 예제: 벡터 (3,4)(3,4)의 각도

θ=tan⁡−1(43)≈53.13∘\theta = \tan^{-1} \left( \frac{4}{3} \right) \approx 53.13^\circ

📌 즉, 벡터 (3,4)(3,4)는 x축에서 약 53도 위쪽을 향하는 벡터이다.

📌 탄젠트(Tangent, tan)란?

탄젠트(tan)란?

탄젠트는 삼각형에서 "높이(세로) ÷ 밑변(가로)"을 의미한다.
수학적으로는 직각삼각형에서 한 각의 탄젠트 값은 다음과 같이 정의된다.

tan(θ)=높이(세로)밑변(가로)\text{tan}(\theta) = \frac{\text{높이(세로)}}{\text{밑변(가로)}}

즉, 탄젠트는 한 변의 길이를 다른 변의 길이로 나눈 비율이다.

📌 탄젠트를 이용해 벡터의 방향(각도) 구하기

벡터 v=(x,y)v=(x,y)가 있을 때,
이 벡터가 x축과 이루는 각도 θ\theta는 다음과 같이 구할 수 있다.

θ=tan⁡−1(yx)\theta = \tan^{-1} \left( \frac{y}{x} \right)

즉,

  • yy: 벡터의 세로 길이
  • xx: 벡터의 가로 길이

이 값을 아크탄젠트(역탄젠트, tan⁡−1\tan^{-1})를 사용하여 각도를 구할 수 있다.

📌 실제 예제: 벡터의 방향 구하기

예제 1: 벡터 (3,4)(3,4)

벡터 (3,4)(3,4)는 오른쪽으로 3칸, 위로 4칸 이동하는 벡터이다.
이 벡터가 x축과 이루는 각도는 다음과 같다.

θ=tan⁡−1(43)\theta = \tan^{-1} \left( \frac{4}{3} \right)

θ=tan⁡−1(1.33)≈53.13∘\theta = \tan^{-1} (1.33) \approx 53.13^\circ

➡ 즉, 벡터 (3,4)(3,4)는 x축에서 약 53도 위쪽을 향하고 있다.

예제 2: 벡터 (−2,1)(-2,1)

벡터 (−2,1)(-2,1)는 왼쪽으로 2칸, 위로 1칸 이동하는 벡터이다.
이 벡터의 방향은 다음과 같다.

θ=tan⁡−1(1−2)\theta = \tan^{-1} \left( \frac{1}{-2} \right)

θ=tan⁡−1(−0.5)≈−26.57∘\theta = \tan^{-1} (-0.5) \approx -26.57^\circ

➡ 즉, 벡터 (−2,1)(-2,1)는 x축에서 -26.57도 아래쪽을 향하고 있다.
📌 각도가 음수이면 x축 아래쪽을 의미한다.

📌 특별한 경우

벡터 (x,y)(x, y)탄젠트 값 y/xy/x각도 θ=tan⁡−1(y/x)\theta = \tan^{-1}(y/x)
(1,1)145∘45^\circ
(3,4)1.3353.13∘53.13^\circ
(-2,1)-0.5−26.57∘-26.57^\circ
(0,1)∞ (수직)90∘90^\circ
(1,0)00∘0^\circ

즉, 탄젠트를 이용하면 벡터의 정확한 각도를 쉽게 구할 수 있다.

📌 탄젠트의 직관적인 의미

  • 기울기가 클수록(예: 3,4) 더 가파른 각도를 가진다.
  • 기울기가 1이면 45도 방향이다.
  • 기울기가 0이면 0도 방향(수평선)이다.
  • 기울기가 무한대(∞)이면 90도 방향(수직선)이다.

📌 행렬(Matrix)이란?

행렬이란?

행렬(Matrix)은 숫자들을 직사각형 형태로 배열한 것이다.
쉽게 말하면, 여러 개의 숫자를 표처럼 정리한 것이라고 생각할 수 있다.

예를 들어, 다음과 같은 숫자 배열이 행렬이다.

A=[123456]A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}

✅ 행렬의 특징

  • 행(Row): 가로 방향의 숫자 배열
    • 위의 행렬에서는 2개의 행이 있다.
  • 열(Column): 세로 방향의 숫자 배열
    • 위의 행렬에서는 3개의 열이 있다.

➡ 따라서, 위 행렬은 "2행 3열(2×3) 행렬"이라고 한다.

📌 행렬의 방향(Direction of a Matrix)

행렬은 벡터를 변환(Transformation)하는 도구로 사용할 수 있다.
즉, 행렬을 곱하면 벡터의 방향이 바뀔 수 있다.

✅ 행렬 변환 예제
행렬 AA를 벡터 v=(x,y)v=(x,y)에 곱해보자.

A=[2113]A = \begin{bmatrix} 2 & 1 \\ 1 & 3 \end{bmatrix}

벡터 v=(1,1)v=(1,1)에 AA를 곱하면:

Av=[2113][11]=[34]Av = \begin{bmatrix} 2 & 1 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 3 \\ 4 \end{bmatrix}

➡ 원래 벡터 (1,1)(1,1)이 (3,4)(3,4)로 변환됨
➡ 즉, 행렬은 벡터의 방향을 변화시키는 도구이다.

📌 행렬 곱(Matrix Multiplication)이란?

두 행렬 AA와 BB의 곱 ABAB는 다음과 같이 정의된다.

✅ 두 행렬을 곱할 수 있는 조건

  • 첫 번째 행렬의 "열 개수"와 두 번째 행렬의 "행 개수"가 같아야 함
  • 예: AA가 2×32 \times 3, BB가 3×23 \times 2이면, ABAB는 2×22 \times 2 행렬이 된다.

✅ 행렬 곱의 계산 방법
행렬 곱 C=ABC = AB의 원소 cijc_{ij}는 다음과 같이 계산된다.

cij=∑k=1naikbkjc_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}

예제: 2×22 \times 2 행렬끼리의 곱

A=[1234],B=[5678]A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} , \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}
AB=[(1⋅5+2⋅7)(1⋅6+2⋅8)(3⋅5+4⋅7)(3⋅6+4⋅8)]=[19224350]AB = \begin{bmatrix} (1 \cdot 5 + 2 \cdot 7) & (1 \cdot 6 + 2 \cdot 8) \\ (3 \cdot 5 + 4 \cdot 7) & (3 \cdot 6 + 4 \cdot 8) \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}

➡ 행렬 곱을 사용하면 벡터의 방향과 크기를 조정할 수 있다.

📌 공분산 행렬(Covariance Matrix)이란?

공분산 행렬은 데이터가 어떤 방향으로 퍼져 있는지를 나타내는 행렬이다.
즉, 데이터 간의 관계를 숫자로 표현한 것이다.

✅ 공분산 행렬의 정의
데이터 집합이 여러 개의 변수(특징)를 가지고 있을 때,
각 변수 간의 공분산(Covariance)을 계산하여 행렬로 만든다.

Σ=[σx1x1σx1x2…σx1xdσx2x1σx2x2…σx2xd⋮⋮⋱⋮σxdx1σxdx2…σxdxd]\Sigma = \begin{bmatrix} \sigma_{x_1 x_1} & \sigma_{x_1 x_2} & \dots & \sigma_{x_1 x_d} \\ \sigma_{x_2 x_1} & \sigma_{x_2 x_2} & \dots & \sigma_{x_2 x_d} \\ \vdots & \vdots & \ddots & \vdots \\ \sigma_{x_d x_1} & \sigma_{x_d x_2} & \dots & \sigma_{x_d x_d} \end{bmatrix}

각 원소 σxixj\sigma_{x_i x_j}는 변수 xix_i와 xjx_j 사이의 공분산을 의미한다.

➡ 공분산 행렬을 사용하면 데이터가 어떤 방향으로 퍼져 있는지 분석할 수 있음
➡ PCA(주성분 분석)에서 데이터를 주축으로 정렬하는 데 사용됨

📌 고유값과 고유벡터(Eigenvalues & Eigenvectors)

✅ 고유벡터(Eigenvector)란?

행렬 AA를 어떤 벡터 vv에 곱했을 때,
벡터의 방향이 바뀌지 않고 크기만 변하는 경우,
이 벡터를 고유벡터(Eigenvector)라고 한다.

Av=λvAv = \lambda v

여기서:

  • AA: 변환 행렬
  • vv: 고유벡터
  • λ\lambda: 고유값(Eigenvalue)
    (고유벡터가 변환될 때 크기가 변하는 비율)

✅ 고유값과 고유벡터 구하는 방법
1. 특성 방정식(Characteristic Equation) 풀기

  • 고유값 λ\lambda는 다음 방정식을 풀어 구한다.
  • det(A−λI)=0\text{det}(A - \lambda I) = 0
  1. 고유벡터 구하기
    • 각 고유값 λ\lambda에 대해 방정식 Av=λvAv = \lambda v를 풀어 vv를 찾는다.

📌 PCA(Principal Component Analysis)란?

PCA(주성분 분석)는 데이터를 가장 잘 설명하는 방향을 찾아 차원을 줄이는 방법이다.

✅ PCA 과정
1. 공분산 행렬 Σ\Sigma을 계산한다.
2. 공분산 행렬의 고유값과 고유벡터를 구한다.
3. 가장 큰 고유값을 가지는 고유벡터를 선택하여 "주성분"으로 사용한다.
4. 데이터를 주성분 축으로 변환하여 차원을 축소한다.

➡ PCA를 사용하면 데이터의 가장 중요한 정보를 유지하면서 차원을 줄일 수 있음
➡ 머신러닝과 데이터 압축에 많이 사용됨.

profile
kwonhs.alice@gmail.com

0개의 댓글