Mathematics/Linear Algebra

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

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

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

 

Lp=||x||p=(i|xi|p)1p

 

pR,p1이다. 일반적으로 노름은 벡터를 음이 아닌 값으로 사상(mapping)하는 것이며, 벡터 x의 노름은 원점에서 점 x까지의 거리이다. 노름은 다음과 같은 성질을 만족하는 임의의 함수이다.

 

  • f(x)=0x=0

 

  • f(x+y)f(x)+f(y)

 

  • αR,f(αx)=|α|f(x)

 

 

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

 

xTy=||x||2||y||2cosθ

 

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

 

 

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

 

  • Max norm  ||x||=maxi|xi|
  • Frobenius norm  ||A||F=i,jAi,j2
  • unit norm  ||x||2=1

 

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