본문 바로가기
AI 수학/선형대수

놈 (norm)

by 깊은대학 2020. 10. 24.

norm을 한글로 표기할 때 ‘놈’이라고 하기도 하고 ‘노름’이라고 하기도 하는데, 둘 다 좋은 뜻은 아니지만 ‘놈’이 조금 나은 것 같다. 사람에게도 이놈, 저놈, 그놈이 있듯이 norm에도 여러 놈이 있다. 😊

 

 

벡터 \( \mathbf{x} \in R^n \) 의 놈은 다음 4가지 성질을 만족하면서 벡터에서 실수 값을 연결하는 함수로 정의하고, \( \| \mathbf{x} \| \)로 표기한다.

           1. \( \| \mathbf{x} \| \)은 음수가 아닌 실수값이다. 즉, \( \| \mathbf{x} \| \ge 0 \)
           2. \( \mathbf{x}=0 \) 일 때만 \( \| \mathbf{x} \| =0 \) 이다.
           3. 스칼라 \( \alpha \)에 대해서 \( \|\alpha \mathbf{x} \|= |\alpha | \| \mathbf{x} \| \) 가 성립한다.
           4. \( \| \mathbf{x}+ \mathbf{y} \| \le \| \mathbf{x} \|+ \| \mathbf{y} \| \) 이 성립한다. 여기서 \( \mathbf{y} \in R^n \).

위 4가지 성질을 만족하기만 하면 놈이라고 할 수 있는데, 많이 사용되는 놈은 다음 세 가지이다. 놈을 구별하기 위하여 아래 첨자를 사용하고, \( \| \mathbf{x} \|_1 \)을 1-놈, \( \| \mathbf{x}\|_2 \)를 2-놈, \( \| \mathbf{x} \|_{\infty} \)를 \( \infty \)-놈이라고 한다.

 

\[ \begin{align} & \| \mathbf{x} \|_1 = |x_1| + |x_2| + \cdots + |x_n| \\ \\ & \| \mathbf{x} \|_2 = \sqrt{ x_1^2 + x_2^2 + \cdots + x_n^2 }= \sqrt{ \mathbf{x}^T \mathbf{x} }\\ \\ & \| \mathbf{x} \|_{\infty} = \max_{1 \le j \le n} |x_j| \end{align} \]

 

1-놈은 벡터 x의 성분의 절대값을 모두 더한 것으로, 2-놈은 벡터의 기하학적 길이로, \( \infty \)-놈은 벡터 성분 중에서 크기가 제일 큰 값으로 정의한다.

놈의 예를 들면, \( \mathbf{x} = \begin{bmatrix} 1 & 3 & -5 & 0 \end{bmatrix}^T \)일 때, \( \| \mathbf{x} \|_1=9 \), \( \| \mathbf{x} \|_2=\sqrt{35} \), \( \| \mathbf{x} \|_{\infty} =5 \)이다.

 

 

그러면 행렬의 놈은 어떻게 정의할까. 행렬 \( A \in R^{m \times n} \)는 벡터 \( \mathbf{x} \in R^n \)을 벡터 \( A \mathbf{x} \in R^m \)으로 변환시킬 수 있다. \( A \mathbf{x} \)도 벡터이므로 놈 \( \|A \mathbf{x} \| \)을 정의할 수 있다. 그렇다면 \( \|A \mathbf{x} \| \)와 \( \| \mathbf{x} \| \) 값 사이에는 어떤 관계가 있을까.

놈 \( \| \mathbf{x} \| \)이 벡터 \( \mathbf{x} \)에 따라 그 값이 달라지듯이 놈 \( \|A \mathbf{x} \| \)도 행렬 \( A \)와 벡터 \( \mathbf{x} \)에 따라 달라질 것이다. 이렇게 본다면 행렬 \( A \)의 놈을 놈 \( \|A \mathbf{x} \| \)와 놈 \( \| \mathbf{x} \| \)의 최대 비율로 정의할 수 있을 것이다. 행렬의 놈 \( \|A\| \)의 정의는 다음과 같다.

 

\[ \| A \| = \max \frac{ \| A \mathbf{x} \|} {\| \mathbf{x} \|}, \ \ \ \ \ for \ all \ \mathbf{x} \ne \mathbf{0} \]

 

이와 같이 정의된 행렬의 놈은 벡터의 놈에서 유도된 것이므로 유도 놈(induced norm)이라고도 한다.

행렬 놈의 정의에 의하면 어떤 벡터 놈을 사용하느냐에 따라 달라진다. 벡터 놈으로 1-놈, 2-놈, \( \infty \)-놈을 사용할 경우, 이에 대응하는 행렬 놈도 각각 1-놈, 2-놈, \( \infty \)-놈이라고 한다. 행렬 \( A \in R^{m\times n} \)의 성분을 \( a_{ij} \)라고 하면 각각의 놈은 다음과 같다.

 

\[ \begin{align} & \| A \|_1 = \max \frac{ \| A \mathbf{x} \|_1} {\| \mathbf{x} \|_1} = \max_{ 1 \le j \le n} \sum_{i=1}^{m} |a_{ij} | \\ \\ & \| A \|_2 = \max \frac{ \| A \mathbf{x} \|_2} {\| \mathbf{x} \|_2} = \sqrt{\lambda_{max} (A^TA) } \\ \\ & \| A \|_{\infty} = \max \frac{ \| A \mathbf{x} \|_{\infty}} {\| \mathbf{x} \|_{\infty}} = \max_{ 1 \le i \le m} \sum_{j=1}^{n} |a_{ij} | \\ \\ \end{align} \]

 

여기서 \( \lambda_{max} (\cdot) \)은 최대 고유값(eigenvalue)을 나타낸다. 1-놈은 행렬의 열(column) 합 중에서 제일 큰 값, 2-놈은 행렬의 행렬 \(A^T A \)의 최대 고유값의 제곱근(또는 행렬 \( A \)의 최대 특이값), \( \infty \)-놈은 행렬의 행(row) 합 중에서 제일 큰 값이 된다.

증명해 보자. 먼저 벡터 \( A \mathbf{x} \)를 계산한다.

 

\[ A \mathbf{x} = \begin{bmatrix} a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n} x_n \\ \vdots \\ a_{m1} x_1 + a_{m2} x_2 + \cdots + a_{mn} x_n \end{bmatrix} \]

 

이 된다. 벡터 \( A \mathbf{x} \)의 1-놈의 정의에 의하면,

 

\[ \begin{align} \| A \mathbf{x} \|_1 & = | a_{11} x_1 + a_{12} x_2 + \cdots + a_{1n} x_n | + \cdots \\ \\ & \ \ \ \ \ \ \ \ + | a_{m1} x_1 + a_{m2} x_2 + \cdots + a_{mn} x_n | \\ \\ & \le ( |a_{11}|+ \cdots + |a_{m1} |) |x_1 | + \cdots + ( |a_{1n}|+ \cdots + |a_{mn} |) |x_n | \\ \\ & \le \left\{ \max_{1 \le j \le n} \left( |a_{1j}| + \cdots + |a_{mj}| \right) \right\} \left( |x_1|+\cdots + |x_n| \right) \end{align} \]

 

이 된다. 따라서

 

\[ \frac{ \| A \mathbf{x} \|_1} {\| \mathbf{x} \|_1} \le \max_{1 \le j \le n} \left( |a_{1j}| + \cdots + |a_{mj}| \right) \]

 

이 되므로 \( \|A\|_1 \)이 증명된다.

다음으로 1-놈과 결이 비슷한 \( \infty \)-놈을 증명한다. \( \infty \)-놈의 정의에 의하면,

 

\[ \begin{align} \| A \mathbf{x} \|_{\infty} & = \max_{1 \le i \le m} | a_{i1} x_1 + a_{i2} x_2 + \cdots + a_{in} x_n | \\ \\ & \le \max_{1 \le i \le m} \left( |a_{i1}| |x_1|+ \cdots + |a_{in} | |x_n| \right) \\ \\ & \le \left\{ \max_{1 \le i \le m} \left( |a_{i1}| + \cdots + |a_{in}| \right) \right\} \left( \max_{1 \le j \le n} |x_j| \right) \end{align} \]

 

이 된다. 따라서

 

\[ \frac{ \| A \mathbf{x} \|_{\infty}} {\| \mathbf{x} \|_{\infty}} \le \max_{1 \le i \le m} \left( |a_{i1}| + \cdots + |a_{in}| \right) \]

 

이 되므로 \( \|A\|_{\infty} \)이 증명된다.

한편, 벡터 \( A \mathbf{x} \)의 2-놈의 정의에 의하면,

 

\[ \| A \mathbf{x} \|_2^2 = \mathbf{x}^T A^T A \mathbf{x} \]

 

이 된다. 행렬 \( A^T A \)는 대칭 행렬이므로 고유값과 고유벡터는 모두 실수값이다. 또한 서로 다른 고유값에 해당하는 고유벡터는 서로 직각이다. \( n\times n \) 행렬 \( A^T A \)의 고유값과 고유벡터를 각각 \( \lambda_j \)와 \( \mathbf{v}_j \)라고 하면, 임의의 벡터 \( \mathbf{x} \)는 고유벡터의 선형 조합으로 표현할 수 있고,

 

\[ \mathbf{x} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n \]

 

\( \mathbf{v}_i^T \mathbf{v}_j=0 \) 이므로 다음 식을 얻을 수 있다.

 

\[ \begin{align} \frac{\mathbf{x}^T A^T A \mathbf{x} } {\mathbf{x}^T \mathbf{x}} & = \frac{ (c_1 \mathbf{v}_1 + \cdots + c_n \mathbf{v}_n)^T (c_1 \lambda_1 \mathbf{v}_1 + \cdots + c_n \lambda_n \mathbf{v}_n) } {(c_1 \mathbf{v}_1 + \cdots + c_n \mathbf{v}_n)^T (c_1 \mathbf{v}_1 + \cdots + c_n \mathbf{v}_n)} \\ \\ & = \frac{ c_1^2 \lambda_1 + \cdots + c_n^2 \lambda_n } {c_1^2 + \cdots + c_n^2 } \\ \\ & \le \frac{ (c_1^2 + \cdots + c_n^2) \lambda_{max} } {c_1^2 + \cdots + c_n^2 } \\ \\ & = \lambda_{max} \end{align} \]

 

따라서 \( \|A\|_2 \)가 증명된다.

1-놈, 2-놈, \( \infty \)-놈과 결은 다르지만 프로베니우스(Frobenius) 놈도 자주 사용된다. 프로베니우스 놈 \( \|A\|_F \)는 다음과 같이 정의된다.

 

\[ \| A \|_F= \sqrt{ trace(A^T A) } \]

 

 

행렬 놈의 예를 들면,

 

\[ A = \begin{bmatrix} 1 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]

 

일 때, \( \|A\|_1=2 \), \( \|A\|_2=\sqrt{5} \), \( \|A\|_{\infty}=3 \), \( \|A\|_F=\sqrt{6} \) 이다.

 

 

댓글