본문 바로가기
study_life

norm(노름)

by skyjwoo 2020. 3. 26.
728x90
반응형

 

오늘 다룰 내용은 norm(노름)이다. 왜 '노름'이라고 이름을 부르는 지는  잘 모르겠다. '놈, 놂'이란 용어가 이상해서 인가...

 

언어적 기원을 따져보면, 라틴어에서 왔으며, 지침, 규칙, 목수의 직각자(?)가 어원이라 한다. 이를 통해 추측해볼 수 있는 의미는 '어떤 대상에 대한 기준' 정도가 될 것 같다.  이러한 의미에서 살펴보면, 행렬(또는 벡터)에 있어서 norm(노름)은 행렬이나 벡터에 대한 기준을 제시한다고 볼 수 있고, 행렬이나 벡터의 크기를 말하는 데 이는 원소의 개수(size)가 아닌, 다른 크기를 가진 행렬이나 벡터들을 하나의 기준으로 비교할 수 있도록 한 크기이다. 영어로는 'magnitude '가 그 의미에 가깝다고 볼 수 있는데, 이를 좀 더 풀어 써 보자면, 다른 행렬이나 벡터에 연산을 했을 때 해당 행렬이나 벡터가 미치는 영향력이라 볼 수 있겠다. 

 

예를 들어, 

행렬 A, C가 있다. 이 둘의 norm을 비교해 보면, 

A는 2 x 2이고 C는 3 x 3이지만, norm은 A가 더 크다. 즉, size와는 크게 관련이 없다는 것을 알 수 있다. 

 

 

 


이 norm이란 게 여러 가지 종류가 있다. 

이 글에서는 그 중에서도 1-norm, 2-norm(Euclidean norm), p-norm, infinity($\infty$) norm에 대해 벡터와 행렬 노름을 비교해 볼 것이다. 

 

표기

행렬 A의 norm은 다음과 같이 표기한다. 또 우측 아래에 첨자로 어떤 norm인지를 추가적으로 표기해 준다. 

||A||, ||A||$_E$ E는 Euclidean norm을 의미

 

 

1-norm(aka. L1 norm, manhattan norm, taxicab norm) 

정의: ||A||$_1$ = $\underset{1\leq{j}\leq{n}}\max(\sum_{i=1}^{n}|a_{ij}|)$, i는 행을, j는 열을 의미한다. 

위 식을 해석하면, 모든 원소에 절댓값을 취한 후, 같은 열의 모든 행의 합을 구한 후 구한 합 중 최댓값을 고른다는 것이다. 

예를 들어

이 행렬에서 1-norm을 구하면, 첫번 째 열의 값들의 합 1+3=4, 두 번째 열들의 값들의 합 2+4=6 중 가장 큰 값인 6이 이 행렬 A의 1-norm이 된다. 

 

 

Euclidean norm(aka. 2-norm, L2-norm)

Euclidean norm은 2-norm이라고도 불리며, 행렬 원소의 모든 값들의 제곱 합에 루트를 씌운 것이다. 좌표계에서 두 점 사이의 거리라고도 할 수 있다. 

정의는 다음과 같다. 

 

||A||$_E$ = $\sqrt{\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} (a_{ij})}$

 

다시 위의 행렬 A에 적용시켜 보면, 

||A||$_E$ = $\sqrt{1^2 + 2^2 + 3^2 + 4^2}$이고, 이는 곧 $\sqrt{30}$이다.

 

 

Infinity norm(aka. maximum norm)

Infinitiy norm의 정의는 다음과 같다.

||A||$_\infty$ = $\underset{1\leq{i}\leq{n}}\max(\sum_{j=1}^{n}|a_{ij}|)$

1-norm 계산에서 열과 행만 바꾼 것과 같다. 즉, 각 행의 합을 구한 후 그 합 중 최댓값이 infinity norm이 되는 것이다. 

 

행렬 A에 적용시켜 보면,

||A||$\infty$ = 1+2 = 3, 3+4=7로 두 번째 행의 합인 7이 가장 크기에 7이 곧 infinity norm이 된다. 

 

 

P-norm(aka. Lp-norm)

p-norm은 위에서 설명한 norm들을 일반화 시킨 것이라 볼 수 있다. p값은 1이상의 실수이다. 

||A||$_p$ = $(\sum\limits_{i=1}^{n}|a_i|^p)^{\frac{1}{p}}$

 

물론 1-norm은 값이 다르게 나오는 게 아니냐고 할 수도 있는데, 벡터 차원에서 보면 같다. 필자의 사견이지만, 벡터 차원에서 먼저 정의된 후 행렬 norm 계산에도 적용된 것이 아닌가 싶다. 

 

p-norm 정의에 입각해 위의 행렬 A에 3-norm(p=3)을 적용시켜 보면,

||A||$_3$ = $\sqrt[3]{1^3 + 2^3 + 3^3 + 4^3}$이고, 이는 곧 $\sqrt[3]{100}$이다.

 

 


이제 vector의 norm을 살펴볼 건데, p-norm을 기준으로 1, 2, infinity-norm에 적용해 보겠다. 

벡터 노름을 계산하기에 앞서 벡터의 특징은 행렬과 달리 한 줄로 원소들이 나열된다는 것이다. 행렬의 입장에서 보면 벡터는 행렬의 한 열, 또는 한 행이고, 벡터입장에서 보면 행렬은 벡터 여럿이 연결된 개체인 것이다.

 

예제로 들 다음과 같은 vector를 가정하겠다. 

먼저 vector의 1-norm은 p-norm의 정의에 입각하여 구한다면,

||b||$_1$ = $(1^1+2^1+3^1+4^1)^{1}$ = 10 이다. 이는 벡터를 어떤 행렬의 열벡터로 보고 푼다면 같은 결과가 나오게 된다.

즉, 행렬을 구할 때 쓴 1-norm 공식을 적용하면, 열이 하나 밖에 없으므로 1열의 합인 10이 이 벡터의 1-norm이 된다.

 

2-norm은 행렬과 별반 다를 게 없다. 원소들의 제곱과 그 합을 구하면 되기에 벡터b의 2-norm은,

||b||$_2$ = $\sqrt{1^2+2^2+3^2+4^2}$ = $\sqrt{30}$ 으로 A의 2-norm(Euclidean norm)과 같다.

 

infinity norm 역시 벡터를 어떤 행렬의 열 벡터로 가정한다면 행렬 norm을 구할 때와 같은 방식으로 구할 수 있다. 

p-norm을 구하는 식과 연계하여 생각해 보면,

||b||$_\infty$ = $(1^{\infty}+2^{\infty}+3^{\infty}+4^{\infty})^{\frac{1}{\infty}}$ 이고, 이 식에 $(4^{\infty})^{\frac{1}{\infty}} \times \frac{1}{(4^{\infty})^{\frac{1}{\infty}}}$ 를 곱해주고 분수를 집어 넣으면, 

다음과 같은 식을 유추해 낼 수 있다.

 

즉, 4가 나오게 된다. 이는 b를 열벡터로 보고 계산했을 때, 각 행들의 합 1, 2, 3, 4 중 최대 값인 4와 같은 결과이다. 

 

이 외에도 다양한 norm(노름)이 있다. 적절한 상황에 맞는 norm을 사용하는 게 중요할 듯 싶다.

728x90
반응형

댓글