1. 벡터란?
- 숫자를 원소로 가지는 list 또는 array
- numpy에서 np.array에서 나타내는 것은 보통 행벡터를 사용함.
- 공간상의 한 점 또는 원점으로부터의 상대적 위치를 나타냄
- 공간상의 한 점

- 원점으로 부터의 상대적 위치

벡터의 차원 (Dimension of a Vector)
- 벡터는 **스칼라(숫자)**를 원소로 가지는 순서 있는 집합
- 이 원소의 개수를 벡터의 **차원 (dimension)**이라고 부름
- 벡터가 갖는 원소 수 𝑑 를 차원이라고 함
- $\mathbf{x} \in \mathbb{R}^d \quad$: $d$ - 차원 벡터
- 열벡터: $d \times 1$, 행벡터: $1 \times d$
- $\mathbf{x} =\begin{bmatrix}x_1 \\x_2 \\\vdots \\x_d\end{bmatrix}\in \mathbb{R}^d\quad (\text{열벡터})\quad \Rightarrow \quad\mathbf{x}^\top =[x_1, x_2, \dots, x_d]\quad (\text{행벡터})$
2. 벡터의 연산
백터의 덧셈/뺄셈
벡터는 같은 차원일 때만 연산 가능하다.
두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현한다.
$\mathbf{x} =\begin{bmatrix}x_1 \\x_2 \\\vdots \\x_d\end{bmatrix}, \quad\mathbf{y} =\begin{bmatrix}y_1 \\y_2 \\\vdots \\y_d\end{bmatrix}, \quad\mathbf{x} \pm \mathbf{y} =\begin{bmatrix}x_1 \pm y_1 \\x_2 \pm y_2 \\\vdots \\x_d \pm y_d\end{bmatrix}$

2.1 스칼라 곱
방향은 그대로, 크기만 변화한다.
\alpha \mathbf{x} =\begin{bmatrix}\alpha x_1 \\\alpha x_2 \\\vdots \\\alpha x_d\end{bmatrix}

벡터의 성분곱(Hadamard product)
벡터끼리 같은 모양을 가지면 성분곱(Hadamard product)을 계산할 수 있다
$\mathbf{a} \odot \mathbf{b} =\begin{bmatrix}a_1 b_1 \\a_2 b_2 \\\vdots \\a_d b_d\end{bmatrix}$
3. 벡터의 노름
- 벡터의 노름(norm)은 원점에서부터의 거리
- 벡터의 노름은 임의의 차원 d에 대해 성립한다.
- $L_1$, $L_2$ 노름은 기하학적 성질이 다르기 때문에 최적화할 시 성질에 맞게 사용한다.
- $\|\mathbf{*}\|$ 기호는 노름(norm)이라고 한다.


L1 노름 (Manhattan Distance)
- 각 성분의 변화량의 절대값을 모두 더한다.
- $\|\mathbf{x}\|1 = \sum{i=1}^{d} |x_i|$

def l1_norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
L2 노름 (Euclidean Distance)
- 피타고라스 정리를 이용해 유클리드 거리를 계산한다

def l2_norm(x):
x_norm = x*x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm
L2-노름은np.linalg.norm을 이용해도 구현 가능
'Study > Mathematics For Machine Learning' 카테고리의 다른 글
| 평균, 표준편차, 분산, 그리고 Mahalanobis 거리 (0) | 2025.07.04 |
|---|