본문 바로가기

AI_학습노트/관련 용어

_01.[관련용어]Norm

Norm

Norm은 벡터의 길이 혹은 크기를 측정하는 방법(함수) 입니다.  Norm이 측정한 벡터의 크기는 원점에서 벡터 좌표까지의 거리 혹은  Magnitude라고 합니다. 

 

  • p는 Lorm의 차수를 의미합니다. p가 1이면 L1 Norm이고 p가 2이면 L2 Norm입니다.
  • n은 대상 벡터의 요소 수입니다.

Norm은 각 요소별로 요소 절대값을 p번 곱한 값의 합을 p 제곱근한 값입니다.

주로 사용되는 Norm은 L1 Norm과 L2 Norm, Maxium norm입니다. 여기서는 L1, L2 Norm에 대하여 살펴보겠습니다.

L1 Norm

L1 Norm은 p가 1인 norm입니다. L1 Norm 공식은 다음과 같습니다.

 

L1 Norm을 Taxicab Norm 혹은 맨허튼 노름(Manhattan norm) 이라고도 합니다. L1 norm은 벡터의 요소에 대한 절댓값의 합입니다. 요소의 값 변화를 정확하게 파악할 수 있습니다. 벡터 x의 L1 Norm은 다음과 같이 계산됩니다.

L1 Norm은 다음과 같은 영역에서 사용됩니다.

  • L1 Regularization
  • Computer Vision

L2 Norm

L2 Norm은 p가 2인 Norm입니다. L2 Norm은 n 차원 좌표평면(유클리드 공간)에서의 벡터의 크기를 계산하기 때문에 유클리드 노름(Euclidean norm)이라고도 합니다. L2 Norm 공식은 다음과 같습니다.

추가로 L2 Norm 공식은 다음과 같이 표현할 수 있습니다.

 

피타고라스 정리는 2차원 좌표 평면상의 최단 거리를 계산하는 L2 Norm입니다.

다음 벡터 x의 L2 Norm은 다음과 같이 계산됩니다.

 

L2 Norm은 다음과 같은 영역에서 사용됩니다.

  • L2 Regularization
  • kNN 알고리즘
  • kmean 알고리즘

 

Python Norm 구현

numpy는 norm 기능을 제공합니다. Numpy를 이용하여 L1 Norm과 L2 Norm을 구하는 방법을 소개합니다. numpy.linalg.norm함수를 이용하여 Norm을 차수에 맞게 바로 계산할 수 있습니다. 다음 예제에서는 3차원 벡터 5개를 포함하는 (5, 3) 행렬의 L1과 L2 Norm 계산 예제입니다 .

 

 

numpy.linalg.norm함수의 파라미터[자세한 링크]

  • x : array_like 배열을 입력한다.
          만약 axis가 none이면 x는 1차원이나 2차원이다.
  • ord : {0이 아닌 정수값, inf, -inf, 'fro','nuc'} optional
             노름의 순서(아래 note 확인) inf는 numpy의 inf 오브젝트를 의미한다
  • axis : {정수, 정수의 2 튜플, None}, optional
             axis가 정수이면, 벡터 노름을 계산할 x의 축을 지정한다. axis가 2-튜플이면 2차원 매트릭스를 유지하는 축을 지정하고,
             이 매트릭스 노름이 계산된다. axis가 None면 벡터 노름(x가 1차원인 경우) 또는 매트릭스 노름(x가 2차원인 경우) 이
             반환된다.
  • keepdims : bool, optional
             만약 이 파라미터가 참이면, 표준화된 축이 1의 크기로 남는다.
             이 옵션과 함께 결과는 오리지널 x에 따라 명확하게 반환된다.

 

참고자료