Zettelkasten

L2 Norm은 벡터의 유클리드 길이를 측정한다

·수정 2026.04.23·수정 2

요약

L2 Norm은 벡터의 "길이"를 측정하는 방법으로, **유클리드 거리(Euclidean distance)**라고도 한다. 피타고라스 정리의 n차원 확장이다.

본문

정의

벡터 x=(x1,x2,...,xn)\mathbf{x} = (x_1, x_2, ..., x_n)에 대해:

x2=x12+x22+...+xn2=i=1nxi2||\mathbf{x}||_2 = \sqrt{x_1^2 + x_2^2 + ... + x_n^2} = \sqrt{\sum_{i=1}^{n} x_i^2}

예시

x = (3, 4)
||x||₂ = √(3² + 4²) = √(9 + 16) = √25 = 5

Norm의 종류

Norm 공식 특징
L1 (Manhattan) $\sum x_i
L2 (Euclidean) xi2\sqrt{\sum x_i^2} 기하학적 거리
L∞ (Max) $\max x_i
Lp (일반화) $(\sum x_i

주요 용도

1. 벡터 정규화 (Unit Vector)

x_normalized = x / np.linalg.norm(x, ord=2)
# 결과: ||x_normalized||₂ = 1

2. 유사도 측정

  • 두 벡터 간 거리: ab2||\mathbf{a} - \mathbf{b}||_2
  • 임베딩 벡터 비교, KNN 등에서 사용

3. 머신러닝 정규화

  • L2 Regularization: 손실 함수에 λw22\lambda ||\mathbf{w}||_2^2 추가
  • 가중치가 커지는 것을 방지

4. Gradient Clipping

# gradient의 L2 norm이 max_norm을 넘으면 스케일 다운
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

L1 vs L2 Norm 기하학적 해석

L1: 마름모 형태 (축을 따라 이동)
L2: 원 형태 (직선 거리)
  • L1 = 맨해튼 거리 (격자 도로)
  • L2 = 직선 거리 (새가 나는 거리)

코드

import numpy as np

x = np.array([3, 4])

# L2 Norm 계산
l2_norm = np.linalg.norm(x, ord=2)  # 5.0
l2_norm = np.sqrt(np.sum(x**2))     # 동일

# 단위 벡터 변환
unit_vector = x / l2_norm  # [0.6, 0.8]

참고