行列のpノルム(p-norm)の定義・計算方法・計算例の確認

ベクトル(vector)や行列(matrix)のノルム(norm)は類似度の計算など、様々な場面で応用される重要トピックです。当記事ではシンプルかつよく用いられるフロベニウスノルムに加えて行列のpノルム(p-norm)の定義や成立する式と、具体的な計算例の確認などを行いました。
作成にあたっては「Matrix Computations」のSection$\, 2.3$「Matrix Norms」の内容を主に参考にしました。

・数学まとめ
https://www.hello-statisticians.com/math_basic

行列のノルムの定義

フロベニウスノルム

行列$A \in \mathbb{R}^{m \times n}$のフロベニウスノルム(Frobe­nius norm)を$||A||_{F}$とおくと、$||A||_{F}$は下記のような式で定義されます。
$$
\large
\begin{align}
||A||_{F} = \left( \sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^{2} \right)^{\frac{1}
2}
\end{align}
$$

上記はベクトルの$2$-normのシンプルな拡張と見なすこともできます。一方で行列の$2$-normを含む$p$-normは上記とは異なる式で定義されるので注意が必要です。行列の$p$-normの定義については次項で問い扱います。

p-norm

行列$A \in \mathbb{R}^{m \times n}$の$p$-normを$||A||_{p}$とおくと、$||A||_{p}$は下記のような式で定義されます。
$$
\large
\begin{align}
||A||_{p} = \sup_{x \neq 0} \frac{||Ax||_{p}}{||x||_{p}} = \sup_{x \neq 0} \left| \middle| A \left( \frac{x}{||x||_{p}} \right) \middle| \right|_{p} = \max_{||x||_{p}=1} ||Ax||_{p} \quad (1)
\end{align}
$$

次節では$\displaystyle ||A||_{p} = \max_{||x||_{p}=1} ||Ax||_{p}$を元に$||A||_{p}$について成立する式を詳しく確認します。

行列のp-normについて成立する式

$1$-norm

行列$A \in \mathbb{R}^{m \times n}$の$1$-normである$||A||_{p}$は下記のように計算することができます。
$$
\large
\begin{align}
||A||_{1} = \max_{1 \leq j \leq n} \sum_{i=1}^{m} |a_{ij}| \quad (2)
\end{align}
$$

上記は「行列$A$の$1$-norm」は「$j$列の要素の絶対値の和が最大となる際に、$j$列の絶対値の和を計算することで得られる」と解釈できます。以下、$(2)$式を$(1)$式から導出します。まず、$(1)$式に$p=1$を代入することで下記のような式を得ることができます。
$$
\large
\begin{align}
||A||_{1} &= \max_{||x||_{1}=1} ||Ax||_{1} \quad (1)’ \\
&= \max_{||x||_{1}=1} \sum_{i=1}^{m} |a_{i1}x_{1} + \cdots a_{in}x_{n}| \\
& \leq \max_{||x||_{1}=1} \sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}| |x_{j}|
\end{align}
$$

上記の式では$||x||_{1}=1$より$|x_1| + \cdots |x_n| = 1$であるので、$\displaystyle \sum_{i=1}^{m} |a_{ij}|$が最大となる$j$について$|x_j|=1$とすることで$||A||_{1}$は最大値を取ります。よって$(2)$式が成立することが確認できます。

$$
\large
\begin{align}
A = \left( \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right)
\end{align}
$$

たとえば上記のように$A$が定義されるとき、$|x_3| = 1$のとき$||A||_{1} = 9$が得られます。

$\infty$-norm

行列$A \in \mathbb{R}^{m \times n}$の$1$-normである$||A||_{\infty}$は下記のように計算することができます。
$$
\large
\begin{align}
||A||_{\infty} = \max_{1 \leq i \leq m} \sum_{j=1}^{n} |a_{ij}| \quad (3)
\end{align}
$$

以下、$(3)$式の導出を行います。$(1)$式と$\displaystyle ||x||_{\infty} = \max_{1 \leq i \leq m} |x_{i}|$に基づいて$||A||_{\infty}$は下記のような式で表すことができます。
$$
\large
\begin{align}
||A||_{\infty} &= \max_{||x||_{\infty}=1} ||Ax||_{\infty} \quad (1)^{”} \\
&= \max_{1 \leq i \leq m} | a_{i1}x_{1} + \cdots a_{in}x_{n} | \\
&= \max_{1 \leq i \leq m} \sum_{j=1}^{n} |a_{ij}| |x_{j}|
\end{align}
$$

ここで$||x||_{\infty}=1$より、$\displaystyle \sum_{j=1}^{n} |a_{ij}| |x_{j}|$は$x_1 = \cdots = x_{n} = 1$のとき最大値$\displaystyle \sum_{j=1}^{n} |a_{ij}|$を取ります。よって$(3)$式が成立することが確認できます。

$$
\large
\begin{align}
A = \left( \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right)
\end{align}
$$

たとえば上記のように$A$が定義されるとき、$|x_1| = |x_2| = |x_3| = 1$のとき$||A||_{\infty} = 15$が得られます。

$2$-normの計算式

行列$A \in \mathbb{R}^{m \times n}$について$A^{\mathrm{T}} A$の固有多項式を$p(\lambda)=\det{(A^{\mathrm{T}} A \, – \, \lambda I_{n})}$とおくとき$2$-normである$||A||_{2}$は下記のような式で計算することができます。
$$
\large
\begin{align}
||A||_{2} = \sqrt{\lambda_{\max} (A^{\mathrm{T}} A)} \quad (4)
\end{align}
$$

上記の$\lambda_{\max} (A^{\mathrm{T}} A)$は$A^{\mathrm{T}} A$の最大固有値に対応します。

$2$-normの計算式の導出

$A \in \mathbb{R}^{m \times n}$と$x \in \mathbb{R}^{n}$についてスカラー関数$g(x)$を下記のように定義します。
$$
\large
\begin{align}
g(x) = \frac{1}{2} \cdot \frac{||Ax||_{2}^{2}}{||x||_{2}^{2}} = \frac{1}{2} \cdot \frac{x^{\mathrm{T}} A^{\mathrm{T}} A x}{x^{\mathrm{T}} x}
\end{align}
$$

このとき、$g(x)$のベクトル微分$\displaystyle \nabla g(x) = \frac{\partial}{\partial x} g(x)$は下記のように計算できます。
$$
\large
\begin{align}
\nabla g(x) &= \frac{(x^{\mathrm{T}} x) A^{\mathrm{T}} A x \, – \, (x^{\mathrm{T}} A^{\mathrm{T}} A x)x}{(x^{\mathrm{T}} x)^{2}}
\end{align}
$$

ここで$||Az||_{2}=||A||_{2}$が成立するように$A \in \mathbb{R}^{m \times n}$について$z \in \mathbb{R}^{n}, \, ||z||_{2}=z^{\mathrm{T}} z=1$を仮定するとき、$\nabla g(z) = 0$が成立し、下記のような式を得ることができます。
$$
\large
\begin{align}
\nabla g(z) &= 0 \\
\frac{(z^{\mathrm{T}} z) A^{\mathrm{T}} A z \, – \, (x^{\mathrm{T}} A^{\mathrm{T}} Az)z}{(z^{\mathrm{T}} z)^{2}} &= 0 \\
1 \cdot A^{\mathrm{T}} A z \, – \, (z^{\mathrm{T}} A^{\mathrm{T}} A z)z &= 0 \\
A^{\mathrm{T}} A z &= (z^{\mathrm{T}} A^{\mathrm{T}} A z)z \\
A^{\mathrm{T}} A z &= \mu^{2} z
\end{align}
$$

上記の変形にあたって、$\mu^{2} = z^{\mathrm{T}} A^{\mathrm{T}} A z = ||Az||_{2}^{2}$のように$\mu$を定義しました。このとき$||Az||_{2}=||A||_{2}$を仮定したことより、$\mu^{2} = ||Az||_{2}^{2} = ||A||_{2}^{2}$が成立します。よって、$||A||_{2}$を得るにあたっては、$A^{\mathrm{T}} A z = \mu^{2} z$が成立する最大の$\mu$を求めれば良いことが確認できます。したがって固有方程式$\det{(A^{\mathrm{T}} A \, – \, \lambda I_{n})}$の最大固有値$\lambda(A^{\mathrm{T}} A)$を用いて$||A||_{2}$は下記のように表すことができます。
$$
\large
\begin{align} ||A||_{2} = \sqrt{\lambda_{\max} (A^{\mathrm{T}} A)}
\end{align}
$$

上記は前項の$(4)$式に一致します。

・ベクトル微分の式の導出について

直交行列とフロベニウスノルム

$Q \in \mathbb{R}^{m \times m}, \, Z \in \mathbb{R}^{n \times n}$が直交行列であるとき、$A \in \mathbb{R}^{m \times n}$のノルムについて下記の式が成立します。
$$
\large
\begin{align}
||QAZ||_{F} &= ||A||_{F} \quad (5) \\
||QAZ||_{2} &= ||A||_{2} \quad (6)
\end{align}
$$

$(5)$式の導出

まず、$A$の$j$列を$A(:,j)$とおくとき、$||QA||_{F}^{2}$は下記のように表すことができます。
$$
\large
\begin{align}
||QA||_{F}^{2} = \sum_{j=1}^{n} ||QA(:,j)||_{2}^{2}
\end{align}
$$

上記の式の$||QA(:,j)||_{2}^{2}$は行列ではなくベクトルの$2$-normであることに注意が必要です。また、ここで$Q$が直交行列であることより下記が成立します。
$$
\large
\begin{align}
||QA||_{F}^{2} &= \sum_{j=1}^{n} ||QA(:,j)||_{2}^{2} \\
&= \sum_{j=1}^{n} (QA(:,j))^{\mathrm{T}}(QA(:,j)) \\
&= \sum_{j=1}^{n} A(:,j)^{\mathrm{T}} Q^{\mathrm{T}} QA(:,j) \\
&= \sum_{j=1}^{n} A(:,j)^{\mathrm{T}} A(:,j) \\
&= \sum_{j=1}^{n} ||A(:,j)||_{2}^{2} \\
&= ||A||_{F}^{2}
\end{align}
$$

上記に基づいて、$||QAZ||_{F}^{2}$は下記のように式変形することができます。
$$
\large
\begin{align}
||QAZ||_{F}^{2} &= ||Q(AZ)||_{F}^{2} \\
&= ||AZ||_{F}^{2} \\
&= ||(AZ)^{\mathrm{T}}||_{F}^{2} \\
&= ||Z^{\mathrm{T}} A^{\mathrm{T}}||_{F}^{2} \\
&= ||A^{\mathrm{T}}||_{F}^{2} \\
&= ||A||_{F}^{2} \quad (5)’
\end{align}
$$

上記の導出にあたっては直交行列$Z$の転置である$Z^{\mathrm{T}}$も直交行列であることを用いました。直交行列の転置が直交行列であることは下記のように示すことができます。
$$
\large
\begin{align}
Z Z^{\mathrm{T}} &= I_{n} \\
(Z Z^{\mathrm{T}})^{\mathrm{T}} &= I_{n}^{\mathrm{T}} \\
(Z^{\mathrm{T}})^{\mathrm{T}} Z^{\mathrm{T}} &= I_{n}
\end{align}
$$

$(6)$式の導出

$||QA||_{2}$は$(1)$式に基づいて下記のように表すことができます。
$$
\large
\begin{align}
||QA||_{2} = \max_{||x||_{p}=1} ||QAx||_{2}
\end{align}
$$

ここで$Q$が直交行列、$QAx$がベクトルであることに基づいて$||QAx||_{2}^{2}$について下記のような変形を行うことができます。
$$
\large
\begin{align}
||QAx||_{2}^{2} &= (QAx)^{\mathrm{T}} (QAx) \\
&= x^{\mathrm{T}} A^{\mathrm{T}} Q^{\mathrm{T}} Q A x \\
&= x^{\mathrm{T}} A^{\mathrm{T}} A x \\
&= (Ax)^{\mathrm{T}} (Ax) \\
&= ||Ax||_{2}^{2}
\end{align}
$$

よって、$||QA||_{2}$は下記のように表すことができます。
$$
\large
\begin{align}
||QA||_{2} &= \max_{||x||_{p}=1} ||QAx||_{2} \\
&= \max_{||x||_{p}=1} ||Ax||_{2} \\
&= ||A||_{2}
\end{align}
$$

上記に基づいて、$||QAZ||_{2}^{2}$は$(5)$式の導出と同様に下記のように式変形することができます。
$$
\large
\begin{align}
||QAZ||_{2}^{2} &= ||Q(AZ)||_{2}^{2} \\
&= ||AZ||_{2}^{2} \\
&= ||(AZ)^{\mathrm{T}}||_{2}^{2} \\
&= ||Z^{\mathrm{T}} A^{\mathrm{T}}||_{2}^{2} \\
&= ||A^{\mathrm{T}}||_{2}^{2} \\
&= ||A||_{2}^{2} \quad (6)’
\end{align}
$$

「行列のpノルム(p-norm)の定義・計算方法・計算例の確認」への1件の返信

コメントは受け付けていません。