ブログ

行列の簡約階段形(reduced echelon form)と行列の階数(rank)

行列の簡約階段形(reduced echelon form)は一通りに決まるので行列の階数(rank)の同様に一通りに決定されます。当記事では行列の簡約階段化に基づく行列の階数の判定の手順と「チャート式 線形代数」の演習問題を元に具体例を取りまとめました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$2.3$節「連立$1$次方程式とその解」を主に参考にしました。

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

行列の階数

行列$A$の簡約階段形の階段の段の個数を行列$A$の階数(rank)といい、$\mathrm{rank}{A}$のように表記する。

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$031$

・$[1]$
$$
\large
\begin{align}
\left( \begin{array}{cccc} 0 & 1 & 2 & 3 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 \end{array} \right)
\end{align}
$$

上記の行列は下記のように簡約階段化できる。
$$
\large
\begin{align}
\left( \begin{array}{cccc} 0 & 1 & 2 & 3 \\ 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 \end{array} \right) & \longrightarrow \left( \begin{array}{cccc} 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 \\ 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{cccc} 1 & 1 & 1 & 1 \\ 0 & 1 & 2 & 3 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{cccc} 1 & 0 & -1 & -2 \\ 0 & 1 & 2 & 3 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right)
\end{align}
$$

上記より行列の階数(rank)は$2$である。

・$[2]$
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 2 & 1 \\ 2 & 2 & 2 \\ 1 & 0 & 1 \end{array} \right)
\end{align}
$$

上記の行列は下記のように簡約階段化できる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 2 & 1 \\ 2 & 2 & 2 \\ 1 & 0 & 1 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & 2 & 1 \\ 0 & -2 & 0 \\ 0 & -2 & 0 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 2 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{array} \right)
\end{align}
$$

上記より行列の階数(rank)は$2$である。

基本例題$032$

重要例題$012$

連立方程式(simultaneous equation)が解を持つ条件

基本的な連立方程式(simultaneous equation)は中学数学などで取り扱いますが、線形代数では行列などを用いて連立方程式を表し高度な議論を行います。当記事では線形代数におけるトピックを取り扱うにあたって、連立方程式が解を持つ条件について取りまとめました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$2.3$節「連立$1$次方程式とその解」を主に参考にしました。

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

連立方程式が解を持つ条件と解の自由度

$$
\large
\begin{align}
A \mathbf{x} &= \mathbf{b} \\
A & \in \mathbb{R}^{m \times n}, \mathbf{x} \in \mathbb{R}^{n}, \mathbf{b} \in \mathbb{R}^{n}
\end{align}
$$

上記のような連立方程式$A \mathbf{x} = \mathbf{b}$を定義するとき、下記がそれぞれ成立する。
$[1] \,$ $\mathrm{rank}{A}=\mathrm{rank}{(A \, | \, \mathbf{b})} \, \iff \,$連立$1$次方程式が解を持つ
$[2] \,$ $[1]$が成立するとき、連立$1$次方程式の解の自由度は$n – \mathrm{rank}{A}$である

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$035$

・$[1]$
$$
\large
\begin{align}
2x – 5y + 3z &= 7 \\
x – 3y + 2z &= 1 \\
4x – 5y + z &= 18
\end{align}
$$

上記は$\displaystyle \left( \begin{array}{ccc} 2 & -5 & \\ 1 & -3 & 2 \\ 4 & -5 & 1 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) = \left( \begin{array}{c} 7 \\ 1 \\ 18 \end{array} \right)$のように行列表記することができ、この拡大係数行列の$\displaystyle \left( \begin{array}{ccc} 2 & -5 & 3 \\ 1 & -3 & 2 \\ 4 & -5 & 1 \end{array} \, \middle| \, \begin{array}{c} 7 \\ 1 \\ 18 \end{array} \right)$は下記のように簡約階段化できる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 2 & -5 & 3 \\ 1 & -3 & 2 \\ 4 & -5 & 1 \end{array} \, \middle| \, \begin{array}{c} 7 \\ 1 \\ 18 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & -3 & 2 \\ 2 & -5 & 3 \\ 4 & -5 & 1 \end{array} \, \middle| \, \begin{array}{c} 1 \\ 7 \\ 18 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & -3 & 2 \\ 0 & 1 & -1 \\ 0 & 7 & -7 \end{array} \, \middle| \, \begin{array}{c} 1 \\ 5 \\ 14 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & -3 & 2 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{array} \, \middle| \, \begin{array}{c} 1 \\ 5 \\ 9 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & -3 & 2 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{array} \, \middle| \, \begin{array}{c} 1 \\ 5 \\ 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & -3 & 2 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{array} \, \middle| \, \begin{array}{c} 0 \\ 0 \\ 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & -1 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{array} \, \middle| \, \begin{array}{c} 0 \\ 0 \\ 1 \end{array} \right)
\end{align}
$$

上記より与えられた連立方程式は$x-z=0, y-z=0, 0=1$と同値であるが、$0 \neq 1$であるので連立$1$次方程式は解を持たない。

基本例題$036$

基本例題$037$

拡大係数行列を用いた連立方程式(simultaneous equation)の解法と解の自由度

基本的な連立方程式(simultaneous equation)は中学数学などで取り扱いますが、線形代数では行列などを用いて連立方程式を表し高度な議論を行います。当記事では線形代数におけるトピックを取り扱うにあたって、拡大係数行列を用いた連立方程式の解法と解の自由度を取りまとめました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$2.3$節「連立$1$次方程式とその解」を主に参考にしました。

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

連立方程式の解法と解の自由度

拡大係数行列

行列を用いて表した連立$1$次方程式$A\mathbf{x}=\mathbf{b}$で係数行列$A$と定数項ベクトル$\mathbf{b}$を並べてできる行列$(A \, | \, \mathbf{b})$を拡大係数行列という。詳しくは下記で取り扱った。

拡大係数行列を用いた連立方程式の解法

拡大係数行列$(A \, | \, \mathbf{b})$の行基本変形を行うことで連立方程式の解を得ることができる。詳しくは下記で取り扱った。

連立方程式の解の自由度

連立$1$次方程式の全ての解を表すにあたって必要な任意定数の個数を解の自由度という。

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$033$

$$
\large
\begin{align}
2x+5y-z+5u &= 8 \\
-x-3y+z-2u+2v &= -4 \\
-3y+3z+7u+4v &= 4 \\
x+2y+3u+2v &= 4
\end{align}
$$

基本例題$034$

・$[1]$
$$
\large
\begin{align}
x+2y-z &= 3 \\
2x+4y-3z &= 5
\end{align}
$$

上記の連立$1$次方程式は$\displaystyle \left( \begin{array}{ccc} 1 & 2 & -1 \\ 2 & 4 & -3 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) = \left( \begin{array}{c} 3 \\ 5 \end{array} \right)$のように行列表記することができる。この拡大係数行列の$\displaystyle \left( \begin{array}{ccc} 1 & 2 & -1 \\ 2 & 4 & -3 \end{array} \, \middle| \, \begin{array}{c} 3 \\ 5 \end{array} \right)$は下記のように簡約階段化を行うことができる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 2 & -1 \\ 2 & 4 & -3 \end{array} \, \middle| \, \begin{array}{c} 3 \\ 5 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & 2 & -1 \\ 0 & 0 & -1 \end{array} \, \middle| \, \begin{array}{c} 3 \\ -1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 2 & -1 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} 3 \\ 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 2 & 0 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} 4 \\ 1 \end{array} \right)
\end{align}
$$

上記より連立方程式の解は任意定数$c$を用いて$x=4-2c, y=c, z=1$のように表される。また、このときの解の自由度は$1$である。

・$[2]$
$$
\large
\begin{align}
x+y-z &= 6 \\
2x+4y+6z &= -2 \\
-3x-2y+z &= 5
\end{align}
$$

上記の連立$1$次方程式は$\displaystyle \left( \begin{array}{ccc} 1 & 1 & -1 \\ 2 & 4 & 6 \\ -3 & -2 & 1 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) = \left( \begin{array}{c} 6 \\ -2 \\ 5 \end{array} \right)$のように行列表記することができる。この拡大係数行列の$\displaystyle \left( \begin{array}{ccc} 1 & 1 & -1 \\ 2 & 4 & 6 \\ -3 & -2 & 1 \end{array} \, \middle| \, \begin{array}{c} 6 \\ -2 \\ 5 \end{array} \right)$は下記のように簡約階段化を行うことができる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 1 & -1 \\ 2 & 4 & 6 \\ -3 & -2 & 1 \end{array} \, \middle| \, \begin{array}{c} 6 \\ -2 \\ 5 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & 1 & -1 \\ 0 & 2 & 8 \\ 0 & 1 & -2 \end{array} \, \middle| \, \begin{array}{c} 6 \\ -14 \\ 23 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 1 & -1 \\ 0 & 1 & 4 \\ 0 & 1 & -2 \end{array} \, \middle| \, \begin{array}{c} 6 \\ -7 \\ 23 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & -5 \\ 0 & 1 & 4 \\ 0 & 0 & -6 \end{array} \, \middle| \, \begin{array}{c} 13 \\ -7 \\ 30 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & -5 \\ 0 & 1 & 4 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} 13 \\ -7 \\ -5 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} -12 \\ 13 \\ -5 \end{array} \right)
\end{align}
$$

上記より連立方程式の解は$x=-12, y=13, z=-5$のように表される。また、このときの解の自由度は$0$である。

【上級】データサイエンス 数学ストラテジスト 公式問題集 解答例まとめ Q.51〜60

「データサイエンス 数学ストラテジスト 上級」はデータサイエンスの基盤である、確率・統計、線形代数、微積分、機械学習、プログラミングなどを取り扱う資格試験です。当記事では「日本数学検定協会」作成の「公式問題集」の演習問題$51$〜$60$の解答例を取り扱いました。

・数学検定まとめ
https://www.hello-statisticians.com/math_certificate

演習問題

Q.51

$C$が識別クラス、$D$が観測データのとき$P(C|D)$は事後確率、$P(C)$は事前確率、$P(D|C)$は尤度にそれぞれ対応する。よって$(1)$が正しい。

Q.52

$$
\large
\begin{align}
w_{1} x_{1} + w_{2} x_{2} + w_{0} = 0
\end{align}
$$

上記に平行するベクトルは$w_{1} x_{1} = -w_{2}x_{2}$が成立する必要があるので$\displaystyle \left( \begin{array}{c} w_{2} \ -w_{1} \end{array} \right)$である。

$\displaystyle \left( \begin{array}{c} w_{2} \\ -w_{1} \end{array} \right)$に直行するベクトルは$\displaystyle k \left( \begin{array}{c} w_{1} \\ w_{2} \end{array} \right)$なので、単位ベクトルは下記のように得られる。
$$
\large
\begin{align}
\pm \frac{1}{\sqrt{w_{1}^{2} + w_{2}^{2}}} \left( \begin{array}{c} w_{1} \\ w_{2} \end{array} \right)
\end{align}
$$

よって$(5)$が正しい。

Q.53

類似度は下記のような計算を行うことで得られる。

import numpy as np

x = np.array([[20., 6., 3., 15.], [25., 15., 15., 6.], [35., 20., 13., 8.], [18., 7., 7., 10.], [27., 12., 5., 13]])
y = np.array([23., 10., 8., 7.])

for i in range(x.shape[0]):
    print(np.sqrt(np.sum((y-x[i,:])**2)))

・実行結果

10.677078252
8.88819441732
16.4316767252
6.63324958071
8.0622577483

上記より$(4)$が正しい。

Q.54

シグモイド関数は下記のように図示することができる。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_theme()

x = np.arange(-5., 5.01, 0.01)
y = 1./(1.+np.e**(-x))

plt.plot(x, y)
plt.show()

・実行結果

図よりCがシグモイド関数に一致するので$(3)$が正しい。

・解説
シグモイド関数を$\displaystyle f(x)=\frac{1}{1+e^{-x}}$のように表すと、下記が成立します。
$$
\large
\begin{align}
f(0) &= \frac{1}{1+e^{-0}} \\
&= \frac{1}{1+1} = \frac{1}{2} \\
\lim_{x \to \infty} f(x) &= \frac{1}{1+0} \\
&= 1 \\
\lim_{x \to -\infty} f(x) &= 0
\end{align}
$$

上記よりCを選ぶことができます。検定試験などではPythonを用いることができないので、グラフの形状を抑えていない場合はこのように具体的な値を元に関数を選択すると良いです。

Q.55

重回帰分析では精度の確認に「自由度調整済み決定係数」を用いるので$(2)$の$69.4$%が正しい。

Q.56

相関係数に基づく類似度は下記のような計算を行うことで得られる。

import numpy as np

x = np.array([2., 3., 5., 4., 5.])
y = np.array([3., 2., 4., 4., 5.])

r = np.sum((x-np.mean(x))*(y-np.mean(y)))/np.sqrt(np.sum((x-np.mean(x))**2)*np.sum((y-np.mean(y))**2))

print("r: {:.3f}".format(r))

・実行結果

r: 0.774

上記より$(1)$が正しい。

Q.57

$h_1, h_2, h_3, y_3$はそれぞれ下記のように計算できる。
$$
\large
\begin{align}
h_1 &= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) \left( \begin{array}{c} 2 \\ 3 \end{array} \right) + \left( \begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array} \right) \left( \begin{array}{c} 0 \\ 0 \end{array} \right) \\
&= \left( \begin{array}{c} 2 \\ 3 \end{array} \right) \\
h_2 &= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) \left( \begin{array}{c} 1 \\ 0 \end{array} \right) + \left( \begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array} \right) \left( \begin{array}{c} 2 \\ 3 \end{array} \right) \\
&= \left( \begin{array}{c} 1 \\ 0 \end{array} \right) + \left( \begin{array}{c} 3 \\ -2 \end{array} \right) = \left( \begin{array}{c} 4 \\ -2 \end{array} \right) \\
h_3 &= \left( \begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) \left( \begin{array}{c} -1 \\ 1 \end{array} \right) + \left( \begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array} \right) \left( \begin{array}{c} 4 \\ -2 \end{array} \right) \\
&= \left( \begin{array}{c} -1 \\ 1 \end{array} \right) + \left( \begin{array}{c} -2 \\ -4 \end{array} \right) = \left( \begin{array}{c} -3 \\ -3 \end{array} \right) \\
y_3 &= \left( \begin{array}{cc} -1 & 1 \\ 0 & 1 \end{array} \right) \left( \begin{array}{c} -3 \\ -3 \end{array} \right) \\
&= \left( \begin{array}{c} 0 \\ -3 \end{array} \right)
\end{align}
$$

上記より$(5)$が正しい。

Q.58

過学習は$(3)$のようなグラフに対応するので$(3)$が正しい。

Q.59

$$
\large
\begin{align}
E &= \frac{1}{2}(z-t)^{2} \\
z &= w_1 y_1 + w_2 y_2 \\
y_1 &= v_{11} x_1 + v_{12} x_2
\end{align}
$$

$\displaystyle \Delta v_{11} = -\eta \frac{\partial E}{\partial v_{11}}$は微分の連鎖律を用いて下記のように得ることができる。
$$
\large
\begin{align}
\Delta v_{11} &= -\eta \frac{\partial E}{\partial v_{11}} \\
&= -\eta \frac{\partial E}{\partial z} \cdot \frac{\partial z}{\partial y_1} \cdot \frac{\partial y_1}{\partial v_{11}} \\
&= -\eta \cdot (z-t) \cdot w_1 \cdot x_1 = -\eta (z-t) w_1 x_1
\end{align}
$$

上記より$(1)$が正しい。

Q.60

確信度は下記のように計算できる。
$$
\large
\begin{align}
\frac{n(A \cap B)}{n(A)} &= \frac{3}{4}
\end{align}
$$

よってリフト値は下記のように計算できる。
$$
\large
\begin{align}
\frac{3/4}{P(B)} &= \frac{3}{4} \cdot \frac{8}{5} \\
&= \frac{6}{5} = 1.2
\end{align}
$$

よって$(4)$が正しい。

連立方程式(simultaneous equation)の基本解法と行列を用いた表記

基本的な連立方程式(simultaneous equation)は中学数学などで取り扱いますが、線形代数では行列などを用いて連立方程式を表し高度な議論を行います。当記事では線形代数におけるトピックを取り扱うにあたって、連立方程式の基本解法と行列を用いた表記を取りまとめました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$2.1$節「連立$1$次方程式と行列」を主に参考にしました。

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

連立方程式の基本解法と行列を用いた表記

連立$1$次方程式の具体例と基本解法

$$
\large
\begin{align}
\begin{cases}
x + y = 2 \quad (1) \\
x + 2y = 3 \quad (2)
\end{cases}
\end{align}
$$

連立$1$次方程式は上記のように複数の未知数$x, y$についての$1$式に基づく方程式である。上記は「$(2)$式$-$$(1)$式」を計算することで$y=1$が得られ、$(1)$式に$y=1$を代入することで$x=1$が得られる。このように式同士の加減を元に方程式を解く手法を加減法という。

連立方程式の行列を用いた表記

連立方程式は行列の積を用いて表すことができる。たとえば前項の「連立$1$次方程式の具体例と基本解法」の連立方程式は下記のように行列を用いて表せる。
$$
\large
\begin{align}
\left( \begin{array}{c} x+y \\ x+2y \end{array} \right) &= \left( \begin{array}{c} 2 \\ 3 \end{array} \right) \\
\left( \begin{array}{c} 1 & 1 \\ 1 & 2 \end{array} \right)\left( \begin{array}{c} x \\ y \end{array} \right) &= \left( \begin{array}{c} 2 \\ 3 \end{array} \right)
\end{align}
$$

行列の積については下記などで詳しく取り扱った。

拡大係数行列

行列を用いて表した連立$1$次方程式$A\mathbf{x}=\mathbf{b}$で係数行列$\displaystyle A=\left( \begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{array} \right)$と定数項ベクトル$\displaystyle \mathbf{b} = \left( \begin{array}{c} b_{1} \\ b_{2} \\ \vdots \\ b_{n} \end{array} \right)$を並べてできる下記の行列$(A \, | \, \mathbf{b})$を拡大係数行列という。
$$
\large
\begin{align}
(A|\mathbf{b}) = \left( \begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{array} \, \middle| \, \begin{array}{c} b_{1} \\ b_{2} \\ \vdots \\ b_{n} \end{array} \right)
\end{align}
$$

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$021$

・$[1]$
$$
\large
\begin{align}
4x – y + 3z &= 0 \\
x + 2y – 4z &= 2
\end{align}
$$

上記の連立方程式は下記のように行列を用いて書き表すことができる。
$$
\large
\begin{align}
\left( \begin{array}{c} 4x-y+3z \\ x+2y-4z \end{array} \right) &= \left( \begin{array}{c} 0 \\ 2 \end{array} \right) \\
\left( \begin{array}{ccc} 4 & -1 & 3 \\ 1 & 2 & -4 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) &= \left( \begin{array}{c} 0 \\ 2 \end{array} \right)
\end{align}
$$

・$[2]$
$$
\large
\begin{align}
-x + 2z &= 3 \\
2y + z &= 1
\end{align}
$$

上記の連立方程式は下記のように行列を用いて書き表すことができる。
$$
\large
\begin{align}
\left( \begin{array}{c} -x + 2z \\ 2y + z \end{array} \right) &= \left( \begin{array}{c} 3 \\ 1 \end{array} \right) \\
\left( \begin{array}{ccc} -1 & 0 & 2 \\ 0 & 2 & 1 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) &= \left( \begin{array}{c} 3 \\ 1 \end{array} \right)
\end{align}
$$

・$[3]$
$$
\large
\begin{align}
3x + y &= 3 \\
x – 2z &= 1 \\
x + y + z &= -1 \\
-x + 3y -5z &= 0
\end{align}
$$

上記の連立方程式は下記のように行列を用いて書き表すことができる。
$$
\large
\begin{align}
\left( \begin{array}{c} 3x + y \\ x – 2z \\ x + y + z \\ -x + 3y -5z \end{array} \right) &= \left( \begin{array}{c} 3 \\ 1 \\ -1 \\ 0 \end{array} \right) \\
\left( \begin{array}{c} 3 & 1 & 0 \\ 1 & 0 & -2 \\ 1 & 1 & 1 \\ -1 & 3 & -5 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) &= \left( \begin{array}{c} 3 \\ 1 \\ -1 \\ 0 \end{array} \right)
\end{align}
$$

基本例題$022$

基本例題$023$

$$
\large
\begin{align}
-3x+2y+7z &= 8 \\
-x-2y-3z &= 0 \\
3x+y-3z &= 7
\end{align}
$$

上記の連立方程式は下記のように行列表記することができる。
$$
\large
\begin{align}
\left( \begin{array}{c} -3x+3y+7z \\ -x-2y-3z \\ 3x+y-3z \end{array} \right) &= \left( \begin{array}{c} 8 \\ 0 \\ -7 \end{array} \right) \\
\left( \begin{array}{c} -3 & 3 & 7 \\ -1 & -2 & -3 \\ 3 & 1 & -3 \end{array} \right) \left( \begin{array}{c} x \\ y \\ z \end{array} \right) &= \left( \begin{array}{c} 8 \\ 0 \\ -7 \end{array} \right) \quad (1)
\end{align}
$$

$(1)$式の拡大係数行列は行基本変形を元に下記のように簡約階段化を行うことができる。
$$
\large
\begin{align}
\left( \begin{array}{c} -3 & 3 & 7 \\ -1 & -2 & -3 \\ 3 & 1 & -3 \end{array} \, \middle| \, \begin{array}{c} 8 \\ 0 \\ -7 \end{array} \right) & \longrightarrow \left( \begin{array}{c} -3 & 3 & 7 \\ 1 & 2 & 3 \\ 3 & 1 & -3 \end{array} \, \middle| \, \begin{array}{c} 8 \\ 0 \\ -7 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 2 & 3 \\ -3 & 3 & 7 \\ 3 & 1 & -3 \end{array} \, \middle| \, \begin{array}{c} 0 \\ 8 \\ -7 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 2 & 3 \\ 0 & 8 & 16 \\ 0 & -5 & -12 \end{array} \, \middle| \, \begin{array}{c} 0 \\ 8 \\ -7 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 2 & 3 \\ 0 & 1 & 2 \\ 0 & -5 & -12 \end{array} \, \middle| \, \begin{array}{c} 0 \\ 1 \\ -7 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 0 & -1 \\ 0 & 1 & 2 \\ 0 & 0 & -2 \end{array} \, \middle| \, \begin{array}{c} -2 \\ 1 \\ -2 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 0 & -1 \\ 0 & 1 & 2 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} -2 \\ 1 \\ 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{c} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{c} -1 \\ -1 \\ 1 \end{array} \right)
\end{align}
$$

上記より連立方程式の解は$x=-1, y=-1, z=1$である。

正則行列(regular matrix)でない正方行列の具体例とその証明

逆行列を持つ行列を正則行列(regular matrix)といいます。正則行列はランクが行列の次数に一致し、有限個の基本行列(elementary matrix)の積に対応します。当記事では正則行列でない正方行列の具体例とその証明について取りまとめました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$3.2$節「正則行列」を主に参考にしました。

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

正則行列でない正方行列

正則行列の定義・特徴

「逆行列を持つ行列」を正則行列という。詳しくは下記で取り扱った。

正則行列でない行列の具体例

下記の行列は正則行列ではない。
$[1] \,$ 「$i$行が$0$」または「$j$列が$0$」の正方行列
$[2] \,$ 「$i$行が$j$行に一致」または「$i$列が$j$列に一致」する正方行列

上記の行列が正方行列でないことは次節の例題で証明を確認する。

正則行列と行列式

正則行列$A$の行列式$\det{A}$について$\det{A} \neq 0$が成立する。

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$046$

・i)
$n$次正方行列$A$の$i$行目の成分が全て$0$の場合、下記が成立する。
$$
\large
\begin{align}
a_{i1} = a_{i2} = \cdots = a_{in} = 0 \quad (1)
\end{align}
$$

ここで$n$次正方行列$X$を定義し、$AX$の計算を行うと$(1)$式より$X$の値に関わらず$AX$の$(i,i)$成分$AX_{ii}$について$AX_{ii}=0$が成立する。$AX_{ii}=0$は正則行列の定義である「$AX=I$となる$X$が存在する」ことと反するので$A$は正則行列ではない。

・ⅱ)
$n$次正方行列$A$の$j$列目の成分が全て$0$の場合、下記が成立する。
$$
\large
\begin{align}
a_{1j} = a_{2j} = \cdots = a_{nj} = 0 \quad (2)
\end{align}
$$

ここで$n$次正方行列$X$を定義し、$XA$の計算を行うと$(1)$式より$X$の値に関わらず$AX$の$(j,j)$成分$AX_{jj}$について$AX_{jj}=0$が成立する。$AX_{jj}=0$は正則行列の定義である「$AX=I$となる$X$が存在する」ことと反するので$A$は正則行列ではない。

基本例題$048$

i)
行列$A$の$i$行目と$j$行目が一致する場合、$P_{ij}(-1)A$の$i$行目の成分が全て$1$となり、基本例題$046$より$P_{ij}(-1)A$は正則ではない。ここで正則行列の積は正則行列である一方で、正則行列$P_{ij}(-1)$と$A$の積は正則行列ではないので$A$は正則行列ではない。

ⅱ)
行列$A$の$i$列目と$j$列目が一致する場合、行列$A$の転置行列$A^{\mathrm{T}}$の$i$行目と$j$行目が一致するので、i)より$A^{\mathrm{T}}$が正則行列ではないことが確認できる。正則行列の転置行列は正則行列であるので$A$は正則行列ではない。

正則行列(regular matrix)の定義・特徴と基本行列の逆行列

逆行列を持つ行列を正則行列(regular matrix)といいます。正則行列はランクが行列の次数に一致し、有限個の基本行列の積に対応します。当記事では正則行列の定義・特徴と基本行列(elementary matrix)の逆行列について取り扱いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$3.2$節「正則行列」を主に参考にしました。

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

正則行列と基本行列の逆行列

正則行列の定義・特徴

単位行列を$I$で定義する。行列$A$が正則であるとき、$XA=AX=I$が成立する$X$が存在する。よって正則行列の定義は「行列が逆行列を持つ」と理解すれば良い。行列$A$の逆行列は$A^{-1}$のように表すことが多い。

$A$が$n$次正則行列であるとき、「$\mathrm{rank} A = n$が成立」し、「行列$A$は有限個の基本行列の積に一致」する。

基本行列の逆行列

上記で定義した$3$つの基本行列$P_{ij}, P_{i}(c), P_{ij}(a)$の逆行列はそれぞれ下記のように表すことができる。
$$
\large
\begin{align}
(P_{ij})^{-1} &= P_{ij} \quad (1) \\
(P_{i}(c))^{-1} &= P_{i} \left( \frac{1}{c} \right) \quad (2) \\
P_{ij}(a) &= P_{ij}(-a) \quad (3)
\end{align}
$$

$(3)$式が成立することは下記に基づいて示すことができる。
$$
\large
\begin{align}
P_{ij}(a)P_{ij}(-a) &= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & \cdots & a & & \\ & & & \ddots & \vdots & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & \cdots & -a & & \\ & & & \ddots & \vdots & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & \cdots & a-a & & \\ & & & \ddots & \vdots & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & \cdots & 0 & & \\ & & & \ddots & \vdots & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) = I_{n}
\end{align}
$$

$(1), (2)$式が成立することは「チャート式シリーズ 大学教養 線形代数」の基本例題$045$で取り扱われているので次節で確認を行う。

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$045$

・$(1)$の導出
$$
\begin{align}
& P_{ij}P_{ij} \\
&= \left(\begin{array}{ccccccccccc} 1 & & & & & & & & & & \\ & \ddots & & & & & & & & & \\ & & 1 & & & & & & & & \\ & & & 0 & \cdots & \cdots & \cdots & 1 & & & \\ & & & \vdots & 1 & & & \vdots & & & \\ & & & \vdots & & \ddots & & \vdots & & & \\ & & & \vdots & & & 1 & \vdots & & & \\ & & & 1 & \cdots & \cdots & \cdots & 0 & & & \\ & & & & & & & & 1 & & \\ & & & & & & & & & \ddots & \\ & & & & & & & & & & 1 \end{array} \right) \left(\begin{array}{ccccccccccc} 1 & & & & & & & & & & \\ & \ddots & & & & & & & & & \\ & & 1 & & & & & & & & \\ & & & 0 & \cdots & \cdots & \cdots & 1 & & & \\ & & & \vdots & 1 & & & \vdots & & & \\ & & & \vdots & & \ddots & & \vdots & & & \\ & & & \vdots & & & 1 & \vdots & & & \\ & & & 1 & \cdots & \cdots & \cdots & 0 & & & \\ & & & & & & & & 1 & & \\ & & & & & & & & & \ddots & \\ & & & & & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccccccc} 1 & & & & & & & & & & \\ & \ddots & & & & & & & & & \\ & & 1 & & & & & & & & \\ & & & 0 & \cdots & \cdots & \cdots & 0 \cdot 1 + 1 \cdot 0 & & & \\ & & & \vdots & 1 & & & \vdots & & & \\ & & & \vdots & & \ddots & & \vdots & & & \\ & & & \vdots & & & 1 & \vdots & & & \\ & & & 1 \cdot 0 + 0 \cdot 1 & \cdots & \cdots & \cdots & 0 & & & \\ & & & & & & & & 1 & & \\ & & & & & & & & & \ddots & \\ & & & & & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccccccc} 1 & & & & & & & & & & \\ & \ddots & & & & & & & & & \\ & & 1 & & & & & & & & \\ & & & 0 & \cdots & \cdots & \cdots & 0 & & & \\ & & & \vdots & 1 & & & \vdots & & & \\ & & & \vdots & & \ddots & & \vdots & & & \\ & & & \vdots & & & 1 & \vdots & & & \\ & & & 0 & \cdots & \cdots & \cdots & 0 & & & \\ & & & & & & & & 1 & & \\ & & & & & & & & & \ddots & \\ & & & & & & & & & & 1 \end{array} \right) = I_{n}
\end{align}
$$

・$(2)$の導出
$$
\large
\begin{align}
P_{i}(c) P_{i} \left( \frac{1}{c} \right) &= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & & c & & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & & \displaystyle \frac{1}{c} & & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & & \displaystyle c \cdot \frac{1}{c} & & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) \\
&= \left(\begin{array}{ccccccc} 1 & & & & & & \\ & \ddots & & & & & \\ & & 1 & & & & \\ & & & 1 & & & \\ & & & & 1 & & \\ & & & & & \ddots & \\ & & & & & & 1 \end{array} \right) = I_{n}
\end{align}
$$

基本例題$049$

基本行列を用いた行基本変形に基づく逆行列(Inverse Matrix)の計算法

$3$次以上の正則行列の逆行列の計算にあたっては$2$次の正則行列のように公式がない一方で、行基本変形を左からの基本行列の作用と考えることで逆行列(Inverse Matrix)を得ることができます。当記事では計算の一連の流れと演習に基づく計算例の確認を行いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$3.3$節「逆行列」を主に参考にしました。

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

逆行列の計算法

基本行列と行基本変形

「行基本変形/行基本操作」は「基本行列」を右から掛ける演算に対応する。

逆行列の計算法

正則行列$A$について行列$A$から単位行列$I$を作る行基本変形を単位行列$I$に作用させることで行列$A$の逆行列$A^{-1}$を得ることができる。この手順は行基本変形$X$を用いて$XA=I$が得られるとき、$X=A^{-1}$が成立すると解釈すると理解しやすい。

具体例の確認

以下、「チャート式シリーズ 大学教養 線形代数」の例題の確認を行う。

基本例題$051$

・$(1)$

$$
\large
\begin{align}
\left( A \, \middle| \, I \right) = \left( \begin{array}{ccc} 1 & 1 & 1 \\ 2 & 1 & 1 \\ 4 & 3 & 2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
\end{align}
$$

上記に対し、掃き出し法を用いると下記が得られる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 1 & 1 \\ 2 & 1 & 1 \\ 4 & 3 & 2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & 1 & 1 \\ 0 & -1 & -1 \\ 0 & -1 & -2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ -2 & 1 & 0 \\ -4 & 0 & 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 1 & 2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ 2 & -1 & 0 \\ 4 & 0 & -1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{ccc} -1 & 1 & 0 \\ 2 & -1 & 0 \\ 2 & 1 & -1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{ccc} -1 & 1 & 0 \\ 0 & -2 & 1 \\ 2 & 1 & -1 \end{array} \right) \\
&= \left( I \, \middle| \, A^{-1} \right)
\end{align}
$$

上記では$A$に行基本変形を行うことで$I$が導出できたので$\mathrm{rank} A = 3$であり、行列$A$が正則であることも同時に示される。

重要例題$021$

【上級】データサイエンス 数学ストラテジスト 公式問題集 解答例まとめ Q.31〜40

「データサイエンス 数学ストラテジスト 上級」はデータサイエンスの基盤である、確率・統計、線形代数、微積分、機械学習、プログラミングなどを取り扱う資格試験です。当記事では「日本数学検定協会」作成の「公式問題集」の演習問題$31$〜$40$の解答例を取り扱いました。

・数学検定まとめ
https://www.hello-statisticians.com/math_certificate

演習問題

Q.31

$4$点が同じ平面上にあるとき、実数$s, t$について下記のような式が成立する。
$$
\large
\begin{align}
\overrightarrow{OC} &= s \overrightarrow{OA} + t \overrightarrow{OB} \\
\left( \begin{array}{c} -3 \\ 5 \\ k \end{array} \right) &= s \left( \begin{array}{c} -2 \\ 2 \\ 2 \end{array} \right) + t \left( \begin{array}{c} 1 \\ -3 \\ 4 \end{array} \right) \\
\left( \begin{array}{c} -3 \\ 5 \\ k \end{array} \right) &= \left( \begin{array}{c} -2s + t \\ 2s-3t \\ 2s+4t \end{array} \right) \quad [1]
\end{align}
$$

$[1]$式の$1$行目と$2$行目より$s=1, t=-1$が得られ、$3$行目に代入すると$k=-2$が得られる。よって$(4)$が正しい。

Q.32

定積分$\displaystyle \int_{2}^{3} \log{(x-1)} dx$は部分積分に基づいて下記のように計算を行うことができる。
$$
\large
\begin{align}
\int_{2}^{3} \log{(x-1)} dx &= \left[ (x-1) \log{(x-1)} \right]_{2}^{3} – \int_{2}^{3} (\cancel{x-1}) \cdot \frac{1}{\cancel{x-1}} \\
&= (3-1) \log{(3-1)} – (2-1) \log{(2-1)} – \left[ x \right]_{2}^{3} \\
&= 2 \log{2} – 1
\end{align}
$$

よって$(3)$が正しい。

Q.33

$f(x)=x^4-4x^3+10x^2+3x-1$とおくと、$f'(x), \, f^{”}(x)$は下記のように得られる。
$$
\large
\begin{align}
f'(x) &= 4x^3 – 12x^2 + 20x + 3 \\
f^{”}(x) &= 12x^2 – 24x + 20 \\
&= 12(x-1)^{2} + 8 > 0
\end{align}
$$

$f^{”}(x)>0$であるので$f(x)$が下に凸の関数である。ここで$f(0)=-1<0$、$\displaystyle \lim_{x \to \pm \infty} f(x) = \infty$であるので$f(x)=0$は$2$個の実数解を持つ。よって$(3)$が正しい。

Q.34

$$
\large
\begin{align}
\int_{0}^{x} f(t) \cos{t} dt = f(x) – \sin{x}, \quad x \geq 0 \quad [1]
\end{align}
$$

$[1]$式の両辺を$x$について微分すると下記が得られる。
$$
\large
\begin{align}
\frac{d}{dx} \int_{0}^{x} f(t) \cos{t} dt &= \frac{d}{dx}[f(x) – \sin{x}] \\
f(x) \cos{x} &= f'(x) – \cos{x}
\end{align}
$$

ここで$\displaystyle y=f(x), f'(x)=\frac{dy}{dx}$とおくと下記が得られる。
$$
\large
\begin{align}
f(x) \cos{x} &= f'(x) – \cos{x} \\
(y+1) \cos{x} &= \frac{dy}{dx} \\
\int \frac{1}{y+1} dy &= \int \cos{x} dx \\
\log{|y+1|} &= \sin{x} + C \\
|y+1| &= e^{\sin{x} + C} \\
y+1 &= \pm e^{C} \cdot e^{\sin{x}} \\
f(x) &= -1 + A e^{\sin{x}} \quad [2], \quad (A=\pm e^{C})
\end{align}
$$

上記に対し、$[1]$式に$x=0$を代入すると下記が得られる。
$$
\large
\begin{align}
\int_{0}^{0} f(t) \cos{t} dt &= f(0) – \sin{0} \\
0 &= f(0) – 0 \\
f(0) &= 0 \quad [3]
\end{align}
$$

$[2]$式に$[3]$式を代入すると下記が得られる。
$$
\large
\begin{align}
f(0) &= -1 + A e^{\sin{0}} \\
0 &= -1 + A \cdot 1 \\
A &= 1
\end{align}
$$

$[2]$式に$A=1$を代入することで下記が得られる。
$$
\large
\begin{align}
f(x) &= -1 + e^{\sin{x}} \\
&= e^{\sin{x}} – 1
\end{align}
$$

よって$(3)$が正しい。

Q.35

$$
\large
\begin{align}
f(x,y) = e^{-(x^2+y^2)}
\end{align}
$$

$f(x,y)$の$x$に関する偏微分を$f_{x}$、$y$に関する偏微分を$f_{y}$とおくと、それぞれ下記のように計算できる。
$$
\large
\begin{align}
f_{x} &= \frac{\partial f}{\partial x} = e^{-(x^2+y^2)} \cdot (-2x) \\
&= -2x e^{-(x^2+y^2)} \\
f_{y} &= \frac{\partial f}{\partial y} = -2y e^{-(x^2+y^2)}
\end{align}
$$

同様に$f_{xx}, f_{yy}$は下記のように計算できる。
$$
\large
\begin{align}
f_{xx} &= \frac{\partial^2 f}{\partial x^2} = -2x e^{-(x^2+y^2)} – -2x e^{-(x^2+y^2)} \cdot (-2x) \\
&= (4x^2-2) e^{-(x^2+y^2)} \\
f_{yy} &= \frac{\partial^2 f}{\partial y^2} = (4y^2-2) e^{-(x^2+y^2)}
\end{align}
$$

よって$f_{xx}+f_{yy}$は下記のように得られる。
$$
\large
\begin{align}
f_{xx}+f_{yy} &= (4x^2-2) e^{-(x^2+y^2)} + (4y^2-2) e^{-(x^2+y^2)} \\
&= 4 e^{-(x^2+y^2)} (x^2+y^2-1)
\end{align}
$$

上記より$(3)$が正しい。

Q.36

$$
\large
\begin{align}
\lim_{x \to 0} \frac{x^{2} \sin{\beta x}}{\alpha x – \sin{x}} \quad (1)
\end{align}
$$

$\sin{x}$のマクローリン展開は下記のように行える。
$$
\large
\begin{align}
\sin{x} = x – \frac{1}{3!} x^{3} + o(x)
\end{align}
$$

上記より$(1)$式は下記のように変形できる。
$$
\large
\begin{align}
\lim_{x \to 0} \frac{x^{2} \sin{\beta x}}{\alpha x – \sin{x}} &= \lim_{x \to 0} \frac{\displaystyle x^{2} \left( \beta x – \frac{1}{3!} (\beta x)^{3} + o(x^{3}) \right)}{\displaystyle \alpha x – \left( x – \frac{1}{3!} x^{3} + o(x^{3}) \right)} \\
&= \lim_{x \to 0} \frac{\displaystyle \beta x^{3} + o(x^{3})}{\displaystyle (\alpha-1) x + \frac{1}{3!} x^{3} + o(x^{3})} \quad (2) \\
\end{align}
$$

$(2)$式が極限値$3$を持つので$\alpha=1$が得られる。また、$\alpha=1$を$(2)$式に代入すると下記が得られる。
$$
\large
\begin{align}
\lim_{x \to 0} \frac{\displaystyle \beta x^{3} + o(x^{3})}{\displaystyle \frac{1}{3!} x^{3} + o(x^{3})} &= 3 \\
6 \beta &= 3 \\
\beta &= \frac{1}{2}
\end{align}
$$

よって$\displaystyle \alpha=1, \beta=\frac{1}{2}$より$6 \alpha \beta=3$であるので$(2)$が正しい。

・解説
漸近展開(asymptotic expansion)を用いた極限値の計算については下記で詳しく取り扱いました。

Q.37

$$
\large
\begin{align}
f(x) = \sqrt{1-x+2x^{2}} = (1-x+2x^{2})^{\frac{1}{2}}
\end{align}
$$

以下、$f(x)$の$4$次導関数である$f^{(4)}(x)$を求める。
$$
\large
\begin{align}
f'(x) &= \frac{1}{2}(1-x+2x^{2})^{-\frac{1}{2}} \cdot (4x-1) \\
&= \frac{1}{2}(4x-1)(1-x+2x^{2})^{-\frac{1}{2}} \\
f^{”}(x) &= \frac{1}{2} \cdot 4(1-x+2x^{2})^{-\frac{1}{2}} + \frac{1}{2}(4x-1) \cdot -\frac{1}{2}(1-x+2x^{2})^{-\frac{3}{2}} \cdot (4x-1) \\
&= \frac{1}{4} (1-x+2x^{2})^{-\frac{3}{2}} \left( 8(1-x+2x^{2}) – (4x-1)^{2} \right) \\
&= \frac{7}{4} (1-x+2x^{2})^{-\frac{3}{2}} \\
f^{(3)}(x) &= \frac{7}{4} \cdot -\frac{3}{2} (1-x+2x^{2})^{-\frac{5}{2}} \cdot (4x-1) \\
&= -\frac{21}{8} (4x-1) (1-x+2x^{2})^{-\frac{5}{2}} \\
f^{(4)}(x) &= -\frac{21}{8} \cdot 4(1-x+2x^{2})^{-\frac{5}{2}} – \frac{21}{8} (4x-1) \cdot -\frac{5}{2}(1-x+2x^{2})^{-\frac{7}{2}} (4x-1)
\end{align}
$$

上記より$f^{(4)}(0)$は下記のように得られる。
$$
\large
\begin{align}
f^{(4)}(0) &= -\frac{21}{8} \cdot 4 + \frac{21}{8} \cdot (0-1) \cdot \frac{5}{2} \cdot (0-1) \\
&= \frac{21}{16}(-8+5) \\
&= -\frac{63}{16}
\end{align}
$$

ここで$f(x)$のマクローリン展開における$x^{4}$の係数は$\displaystyle \frac{f^{(4)}(0)}{4!}$であるので、係数は下記のように計算できる。
$$
\large
\begin{align}
\frac{f^{(4)}(0)}{4!} &= -\frac{63}{16} \cdot \frac{1}{4 \cdot 3 \cdot 2} \\
&= -\frac{21}{16 \cdot 8} = -\frac{21}{128}
\end{align}
$$

公式問題集の第$1$版第$1$刷の解答は日本数学検定協会公式の正誤表で訂正されていることに注意が必要である。

Q.38

$$
\large
\begin{align}
f &: \, A = \left( \begin{array}{cc} 2 & -1 \\ 5 & -3 \end{array} \right) \\
g &: \, B \\
g \circ f &: \, \left( \begin{array}{cc} 18 & -10 \\ -1 & 0 \end{array} \right)
\end{align}
$$

上記より行列$B$は下記のように得られる。
$$
\large
\begin{align}
B &= \left( \begin{array}{cc} 18 & -10 \\ -1 & 0 \end{array} \right) A^{-1} \\
&= \left( \begin{array}{cc} 18 & -10 \\ -1 & 0 \end{array} \right) \left( \begin{array}{cc} 2 & -1 \\ 5 & -3 \end{array} \right)^{-1} \\
&= \frac{1}{2 \cdot (-3) – (-1) \cdot 5} \left( \begin{array}{cc} 18 & -10 \\ -1 & 0 \end{array} \right) \left( \begin{array}{cc} -3 & 1 \\ -5 & 2 \end{array} \right) \\
&= -\left( \begin{array}{cc} -4 & -2 \\ 3 & -1 \end{array} \right) \\
&= \left( \begin{array}{cc} 4 & 2 \\ -3 & 1 \end{array} \right)
\end{align}
$$

よって$(1)$が正しい。

Q.39

行列$\displaystyle \left( \begin{array}{ccc} 1 & 0 & -2 \\ 2 & 3 & 1 \\ 2 & 1 & -2 \end{array} \right)$の逆行列は掃き出し法に基づいて下記のように得ることができる。
$$
\large
\begin{align}
\left( \begin{array}{ccc} 1 & 0 & -2 \\ 2 & 3 & 1 \\ 2 & 1 & -2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right) & \longrightarrow \left( \begin{array}{ccc} 1 & 0 & -2 \\ 0 & 3 & 5 \\ 0 & 1 & 2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ -2 & 1 & 0 \\ -2 & 0 & 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & -2 \\ 0 & 0 & -1 \\ 0 & 1 & 2 \end{array} \, \middle| \, \begin{array}{ccc} 1 & 0 & 0 \\ 4 & 1 & -3 \\ -2 & 0 & 1 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{array} \, \middle| \, \begin{array}{ccc} -7 & -2 & 6 \\ 4 & 1 & -3 \\ 6 & 2 & -5 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{array} \, \middle| \, \begin{array}{ccc} -7 & -2 & 6 \\ -4 & -1 & 3 \\ 6 & 2 & -5 \end{array} \right) \\
& \longrightarrow \left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \, \middle| \, \begin{array}{ccc} -7 & -2 & 6 \\ 6 & 2 & -5 \\ -4 & -1 & 3 \end{array} \right)
\end{align}
$$

上記より逆行列は$\displaystyle \left( \begin{array}{ccc} -7 & -2 & 6 \\ 6 & 2 & -5 \\ -4 & -1 & 3 \end{array} \right)$であるので$(5)$が正しい。

・解説
掃き出し法による逆行列の計算法については下記などで詳しく取り扱いました。

Q.40

$$
\large
\begin{align}
A &= \left( \begin{array}{ccc} 1 & \alpha & \alpha^{2} \\ \alpha & 1 & \alpha \\ \alpha^{2} & \alpha & 1 \end{array} \right) \\
A\left( \begin{array}{c} x \\ y \\ z \end{array} \right) &= \left( \begin{array}{c} 1 \\ -1 \\ 1 \end{array} \right)
\end{align}
$$

上記が無限個の解を持つには「$\det{A}=0$が必要条件」となる。$\det{A}=0$は下記のように解くことができる。
$$
\large
\begin{align}
\det{A} &= 0 \\
\left| \begin{array}{ccc} 1 & \alpha & \alpha^{2} \\ \alpha & 1 & \alpha \\ \alpha^{2} & \alpha & 1 \end{array} \right| &= 0 \\
\left| \begin{array}{ccc} 1 & \alpha & \alpha^{2} \\ 0 & 1-\alpha^{2} & \alpha(1-\alpha^{2}) \\ 0 & \alpha(1-\alpha^{2}) & 1-\alpha^{4} \end{array} \right| &= 0 \\
(-1)^{1+1} \left| \begin{array}{cc} 1-\alpha^{2} & \alpha(1-\alpha^{2}) \\ \alpha(1-\alpha^{2}) & (1+\alpha^{2})(1-\alpha^{2}) \end{array} \right| &= 0 \\
(1-\alpha^{2})^{2}(1+\alpha^{2}) – \alpha^{2}(1-\alpha^{2})^{2} &= 0 \\
(1-\alpha^{2})^{2}(1+\cancel{\alpha^{2}}-\cancel{\alpha^{2}}) &= 0 \\
(1-\alpha^{2})^{2} &= 0 \\
\alpha^{2} &= 1 \\
\alpha &= \pm 1
\end{align}
$$

ここで$\alpha=1$のとき解が定まらないので、無限個の解を持つのは$\alpha=-1$のときである。よって$(3)$が正しい。

SPMDのメモリ制約とMesh-TensorFlowを用いたModel-Parallel処理の実装

DeepLearningにおける分散処理ではSPMDに基づいてバッチ分割を行うことが多い一方で、大規模モデルを取り扱うにあたってはメモリの制約などの課題があります。当記事では上記の解決にあたって用いられるModel-Parallel処理の原理やMesh-TensorFlowライブラリの概要について取り扱いました。
Mesh-TensorFlowの論文である”Mesh-TensorFlow: Deep Learning for Supercomputers”やSwitch Transformer論文などを参考に取りまとめを行いました。

・用語/公式解説
https://www.hello-statisticians.com/explain-terms

・Mesh-TensorFlow論文
・Switch Transformer論文

Mesh-TensorFlowの概要

DeepLearningとSPMD

SPMD(Single-Program-Multiple-Data)は分散処理を行う際の基本的な方針であり、「同じプログラムを複数のデータに作用させる」ということを意味する。DeepLearningではミニバッチを分割し複数のGPUやTPUで処理することに対応する。

このようなGPU/TPUを用いた分散処理を用いることで学習の高速化が可能になる。ResNetなどに基づく画像処理ではFoward処理とBackProp処理を分散して行い、勾配を用いたパラメータのUpdateをまとめて行うことで高速化を実現できる。

このようにDeepLearningではSPMD(Single-Program-Multiple-Data)に基づいて複数のGPU/TPUを用いて分散処理を行うことで学習の高速化を行うことができる。

Mesh-TensorFlowの概要

Mesh-TensorFlowはSPMDに基づくバッチ分割(batch splitting)以外の分散処理も行えるように実装されたライブラリである。詳しくは次節の「Mesh-TensorFlowの設定と活用」で取り扱った。

Mesh-TensorFlowの使用例:2層MLP

入力層に対応する行列$x \in \mathbb{R}^{b \times d_{io}}$、中間層に対応する行列$h \in \mathbb{R}^{b \times d_{h}}$、出力層に対応する行列$y \in \mathbb{R}^{b \times d_{io}}$を元に下記のように$2$層MLPを定義する。
$$
\large
\begin{align}
y &= \mathrm{ReLU}(xw + \mathrm{bias}) v \quad (1) \\
w & \in \mathbb{R}^{d_{io} \times d_{h}}, \, v \in \mathbb{R}^{d_{h} \times d_{io}}, \, \mathrm{bias} \in \mathbb{R}^{b \times d_{h}}
\end{align}
$$

上記の$b$はバッチサイズ、$d_{io}$は$2$層MLPの入力層と出力層のベクトルの要素数、$d_{h}$は$2$層MLPの隠れ層のベクトルの要素数に対応する。このとき$(1)$式の演算をMesh-TensorFlowでは下記のように表現する。

batch = mtf.Dimension("batch", b)
io = mtf.Dimension("io", d_io)
hidden = mtf.Dimension("hidden", d_h)
# x.shape == [batch, io]
w = mtf.get_variable("w", shape=[io, hidden])
bias = mtf.get_variable("bias", shape=[hidden])
v = mtf.get_variable("v", shape=[hidden, io])
h = mtf.relu(mtf.einsum(x, w, output_shape=[batch, hidden]) + bias)
y = mtf.einsum(h, v, output_shape=[batch, io])

8行目と9行目で隠れ層の計算、出力層の計算がそれぞれ行われることに注意して上記は確認すると良い。

Mesh-TensorFlowの設定と活用

Data-Parallel Layout

Data-Parallel LayoutはMesh-TensorFlowでSPMD(Single-Program-Multiple-Data)処理を行う際のLayoutに対応する。Mesh-TensorFlowでは下記のような表記でData-Parallel Layoutを表す。

mesh_shape = [("all", n)]
computation_layout = [("batch", "all")]

Mesh-TensorFlowでは上記のcomputation_layoutbatchを指定することでData-Parallel処理を表す。

Model-Parallel Layout

Mesh-TensorFlowはバッチ分割ではなく、MLP(Multi Layer Perceptron)の演算の分割も行うことができる。前節で取り扱った$2$層MLPの例では入力層の$x$と出力層の$y$を全てのGPU/TPUに載せ、隠れ層の演算のみを分割すると分散処理が行える。

たとえば入力層・出力層の次元を$50$、隠れ層の次元を$100$に設定し、$5$つの演算ノードで分散処理を行う場合、通常では$50 \times 100$と$100 \times 50$の行列を用いて行列演算を行うが、$50 \times 20$と$20 \times 50$の行列演算を$5$つ行うことで全体の演算を実現できる。

このような処理を行うことで、MLP処理における隠れ層の次元が大きい場合も分割して処理を行うことができ、大規模モデルの構築も無理なく行うことができる。たとえば近年注目を集めるGPT$3$やPaLMなどのLLMでは$10{,}000$次元以上が用いられることがあるので、このような演算は有効な手段になり得る。

mesh_shape = [("all", n)]
computation_layout = [("hidden", "all")]

Mesh-TensorFlowでは上記のcomputation_layouthiddenを指定することでData-Parallel処理を表す。

前項のbatchと当項hiddenの対応に注意しておくと良い。

Data-Parallel, Model-Parallel Layouts

DataとModelの方向にそれぞれ対応する$r \times c$の$2$次元でメッシュ化を行う場合、Mesh-TensorFlowでは下記のように処理を表現する。

mesh_shape = [("rows", r), ("cols", c)]
computation_layout = [("batch", "rows"), ("hidden", "cols")]

上記はmesh_shaperowsrcolscを設定し、computation_layoutでそれぞれ辞書オブジェクトのように指定すると理解すればよい。

Mesh-TensorFlowとTransformer

Mesh-TensorFlowはTransformerにも活用することができる。

mesh_shape = [("all", n)]
computation_layout = [
  ("vocab", "all"), ("d_ff", "all"), ("heads", "all")]

上記はTransformerにModel-Parallel Layoutsを用いる際の表記である。n個のメッシュを用意し、語彙のサイズ$d_{model}$、隠れ層のサイズ$d_{ff}$、Attention_Headsの数にnを対応させる。

Model-Parallel LayoutsだけでなくData-Parallel Layoutも用いる場合は、下記のように$r \times c$個のメッシュを設定する。

mesh_shape = [("rows", r), ("cols", c")]
computation_layout = [("batch", "rows"), ("vocab", "cols"),
                      ("d_ff", "cols"), ("heads", "cols")]

Mesh-TensorFlowの活用①:Switch Transformer

Switch Transformerでは、Mesh-TensorFlowを用いる際の項を下記のように定義する。

Switch Transformer論文 Section.$5$より

Mesh-TensorFlowの活用②:Pathways・PaLM