Deep Learning study

Vector norm, matrix norm (벡터 노름, 행렬 노름) 본문

AI/Deep learning 을 위한 지식

Vector norm, matrix norm (벡터 노름, 행렬 노름)

HwaniL.choi 2019. 8. 31. 14:57
반응형

오늘은 norm에 대해서 알아보도록 하겠습니다.

 

Vector norm

 

벡터 노름이라고하면, 어떤 벡터를 길이나 사이즈같은 양적인 수치로 mapping하기 위한 함수(||.|| : V → R)입니다.

 

그러면 벡터공간(Vector space) V와 scalar a에 대하여 정의합니다. 벡터 노름은 다음 세가지 조건을 충족시켜야 합니다.

 

$$ \mathsf{ 1. \lVert u + v \rVert \le \lVert u \rVert + \lVert v \rVert} $$

$$ \mathsf{ 2. \lVert \mathrm{a}v \rVert = \mid \mathrm{a} \mid \lVert v \rVert} $$

$$ \mathsf{ 3. If \lVert v \rVert = 0 , then \  v = 0}$$

 

$$ \mathsf{ where \  u,v \in V \  and\  \mathrm{a} \in \mathbb{R}}$$

 

즉 이 3가지 조건을 충족시키면 norm이라고 정의될 수 있는것입니다.

 

예를들면 우리가 잘 알고있는 absolute value가 있습니다. 번역하면 절댓값이죠. 이 절댓값은 사실상 ||x||이지만, 특별히 one dimensional vector space에서의 norm으로 |x|로 사용됩니다.

즉 L1 norm의 특별한 케이스입니다.

 

그럼 L1 norm이 뭔지, 또 그밖의 norm들은 무엇이 있는지 간단하게 알아보도록 합시다.

벡터공간(vector space) V의 임의의 벡터 x에 대해 생각하겠습니다.

 

L1 norm

 

$$ \mathsf{ \lVert x \rVert_1 := \sum_{i=1}^{n} \mid x_i \mid }$$

L1 norm은 위와같이 정의됩니다. 이 norm을 이용한 distance로 유명한 맨해튼 거리(L1 distance) 가 있습니다.

 

L2 norm

 

$$ \mathsf{ \lVert x \rVert_2 := \sqrt{\sum_{i=1}^{n} x_i^2}}$$

 

가장 많이 쓰이고 많이 알 것이라고 생각되는 norm 입니다. 바로 Uclidean norm입니다. 가장 직관적으로 이해하기가 쉽습니다. 벡터의 길이 라고 생각하면 쉽게 이해될 것입니다.

 

위와같이 정의되긴하지만 다르게 아래처럼 자기자신과의 dot product로도 쓰일 수 있습니다.

 

$$ \mathsf{ \lVert x \rVert_2 := \sqrt{x \cdot x}} $$

 

p-norm

 

위의 L1, L2 norm을 일반화 한 것입니다. 실수 p에대해서 정의되고 Lp norm 이라고도 합니다.

 

벡터 x = (x1, x2, ... ,xn)에 대해서

 

$$ \mathsf{ \lVert x \rVert_p := \left(\sum_{i=1}^{n}\mid x \mid^{p}\right)^{1/p} }$$

이와같이 정의됩니다.

 

 

이 중에서도 특이한 케이스로 p가 무한대  일때는 다음과같이 정의하고, maximum norm 이라고 부릅니다.

 

$$ \mathsf{ \lVert x \rVert_{\infty} := \max_{i}\mid x_i \mid }$$

 

 


 

Matrix norm

행렬 노름 마찬가지로 벡터 노름과 같이 반드시 충족해야하는 특성들이 몇가지 있습니다.

 

$$ \mathsf{ \text{ For all Scalars}\  \alpha \in \mathbb{R} \ \text{and for all matrices} A,\ B \in \mathbb{R}^{mxn}}$$

$$ \mathsf{1.  \lVert \alpha A \rVert = \mid \alpha \mid \lVert A \rVert}$$

$$ \mathsf{2. \lVert A + B \rVert \le \lVert A \rVert + \lVert B \rVert}$$

$$ \mathsf{3. \lVert A \rVert \ge 0}$$

$$ \mathsf{4. \lVert A \rVert = 0 \iff A = 0_{m,n}}$$

 

추가적으로 square matirces에 대해서는 한 가지더 특성이 추가됩니다.

$$ \mathsf{ \lVert AB \rVert \le \lVert A \rVert \lVert B \rVert \ for \forall A \ and \ B \in K^{mxn}}$$

 

다음으로 matrix norm을 정의하기위해서 Operator norm을 알아봅시다.

 

Operator norm (or induced norm)

 

 linear operator의 'size'를 측정하기 위한 수단입니다. 즉 A라는 operator가 주어질 때 이것을 양적으로 크기를 나타내기위해 vector norm을 응용하게됩니다. 그래서 vector norm에서 유도된 것이 induced norm입니다.

A라는 operator가 x를 변환시키는데 (A : V → W), 변환시키는 값은 bounded 되어있고 그것은 ||x||의 c 배와 같거나 더 작다 라는것 입니다.

글로만 보면 어려우니 수식으로 된 정의를 함께 보도록 하겠습니다.

 

다음의 수식들은 모두 동치입니다.

 

$$ \mathsf{ \lVert A \rVert_{op} = \inf\{c \ge 0 \mid \ \lVert Ax \rVert \le c\lVert x \rVert \ for \  \forall \in K^n\} -(1)} $$

$$ \mathsf{ = \sup\{\lVert Ax \rVert \mid v \in K^n \ with \ \lVert x \rVert = 1\}-(2)}$$

$$ \mathsf{ = \sup\left\{ {{\lVert Ax \rVert} \over {\lVert x \rVert}} \mid v \in K^n \ with \ x \ne 0 \right\}-(3)}$$

 

위의 (1)의 inf에서 아래의 sup로 넘어가는 과정은 ||Ax|| ≤ c||x|| 에서 양변을 ||x||로 나누어주고 생각하면 쉬울 것 입니다.

또한 (2)이 되는 이유는 벡터 x의 norm을 λ라고 생각해봅시다.

 

$$ \mathsf{ {{\lVert Ax \rVert} \over {\lVert x \rVert}} = { {\lambda{\lVert A\frac{x}{\lambda} \rVert}} \over {\lambda{\lVert \frac{x}{\lambda} \rVert}}}   } $$

 

그렇다면 위와같이 나타낼 수 있는데 , λ약분하고나면 v/λ는 크기가 1인 벡터 이므로, 분모는 1이 되고 나머지 v/λ는 크기가 1인 임의의 벡터로 치환될 수 있습니다.

 

이제는 matrix norm 의 종류를 몇가지 살펴보고 끝내겠습니다.

 

matrix norm induced by L1 vector norm

 

$$ \mathsf{\lVert A \rVert_1 = \max_{1 \le j \le n}\sum_{i=1}^{m}\mid a_{ij} \mid }$$

간단하게 matrix의 column의 합의 최댓값을 나타내는 norm 입니다.

 

matrix norm induced by L2 vector norm

 

$$ \mathsf{\lVert A \rVert_2 = \sigma_{max}(A) } $$

위의 시그마는 A 의 largest singular value를나타내는 값 입니다. singular value를 구하는 방법은 이전의 포스팅을 참고해 주세요 .

 

저는 이 부분이 공부하면서 왜이렇게 되는지 궁금했던터라, 이 글을 보는 다른분들도 궁금해 하실수도 있으므로 아래에 증명도 함께 하겠습니다.

 

$$ \mathsf{Why \  \lVert A \rVert_2 = \sigma_{max}(A) ? }$$

$$ \mathsf{\lVert A \rVert_2 = \sup_{\lVert x \rVert_2 = 1}\lVert Ax \rVert_2}$$

$$ \mathsf{=\sup_{\lVert x \rVert_2 =1}(x^T A^T Ax)^{\frac{1}{2}} }$$

$$ \mathsf{=\sup_{\lVert x \rVert_2 =1}(x^T Q^T \land Qx)^{\frac{1}{2}} }$$

$$ \mathsf{=\ \sup_{\lVert y \rVert_2 =1}(y^T \land y)^{\frac{1}{2}}\quad for \ y = Qx } $$

$$ \mathsf{ = \sigma_{max}(A)}$$

 

 

그럼 안녕 !

 

Reference

[1]https://en.wikipedia.org/wiki/Norm_(mathematics)

[2]https://en.wikipedia.org/wiki/Matrix_norm

[3]https://www.math.uh.edu/~jingqiu/math4364/iterative_linear_system.pdf

 

반응형
Comments