Mathematics/Linear Algebra

[Linear Algebra] 노름(norm) 이란?

언킴 2022. 3. 5. 13:34
반응형

기계 학습(Machine Learning)에서는 벡터의 크기를 측정할 때 노름$^{\mathsf{norm}}$이라고 불리는 함수를 이용해 측정하며, 다음과 같이 표기 및 정의한다.

 

\[ L^p = ||x||_p = (\sum_i |x_i|^p)^{\frac{1}{p}} \]

 

$p \in \mathbb{R}, p \ge 1$이다. 일반적으로 노름은 벡터를 음이 아닌 값으로 사상(mapping)하는 것이며, 벡터 $\boldsymbol{x}$의 노름은 원점에서 점 $x$까지의 거리이다. 노름은 다음과 같은 성질을 만족하는 임의의 함수이다.

 

  • $ f(\boldsymbol{x}) = 0 \Rightarrow​ \boldsymbol{x} = \boldsymbol{0} $

 

  • $ f(\boldsymbol{x} + \boldsymbol{y}) \le f(\boldsymbol{x}) + f(\boldsymbol{y}) $

 

  • $ \forall \alpha \in \mathbb{R}, f(\alpha \boldsymbol{x}) = |\alpha|f(\boldsymbol{x}) $

 

 

우리가 가장 많이 알고 있는 노름은 유클리드 노름(Euclidean norm)이다. 맨하탄 노름 등 다양한 노름이 존재한다. 또한 두 벡터의 내적을 노름으로 표현하면 다음과 같다. 

 

$ \boldsymbol{x}^T \boldsymbol{y} = ||x||_2 ||y||_2 cos\theta $

 

$\theta$는 두 벡터 간 사이 각도를 의미한다. 유클리드 노름의 원래 표기는 $||x||_2$로 하는 것이 맞지만, 기계 학습에서 자주 쓰이기 때문에 $||x||$로 표기하는 경우도 많다. 기계 학습 관련 책을 읽다가 $||x||$ 가 나오면 유클리드 노름으로 생각하면 된다. 

 

 

벡터에서 크기가 가장 큰 성분의 절댓값을 의미하는 Max norm도 기계학습에서 많이 사용된다. 또한 행렬의 크기를 구할 때에는 프로베니우스 노름(Frobenius norm)을 사용하고, 단위벡터의 크기를 표현할 때에는 unit norm을 사용한다. 각 노름의 수식은 각각 다음과 같다. 

 

  • Max norm  \[ ||x||_{\infty} = \max_i |x_i| \]
  • Frobenius norm  \[ ||A||_F = \sqrt{\sum_{i,j}A^2_{i,j}} \]
  • unit norm  \[ ||x||_2 = 1 \]

 

간혹 해밍$^{\mathsf{Hamming}}$거리를 사용하기도 하는데, 해밍거리는 두 개의 길이가 같은 문자열 사이의 거리를 측정할 때 사용하거나 길이가 같은 이진 벡터일 때 사용한다. 예를 들면 'abcdd'와 'bbcda' 가 있다고 하자. 그럼 빨간색으로 표기된 부분만 변환할 경우 두 문자는 동일하게 된다. 이때의 해밍거리는 2가 된다.