ブログ

生成系・部分空間(subspace)からの基底(basis)の構成の流れ

いくつかのベクトルによって部分空間(subspace)が構成されている際に、部分空間を生成する線型独立(linearly independent)なベクトルの組を基底(basis)といいます。当記事では部分空間を構成するベクトルから基底を構成する一連の流れについて取りまとめを行いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$5.3$節「基底と次元」を主に参考にしました。

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

基底の構成

延長原理

ベクトル空間$V$の$1$次独立なベクトル$\{ \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} \}$が$V$を生成しない場合、部分空間$\left< \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} \right>$に属さない$V$上の任意のベクトル$\mathbf{v}_{k+1}$について$\{ \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n}, \mathbf{v}_{n+1} \}$は$1$次独立である。

具体的には、『$\mathbb{R}^{2}$上のベクトル$\displaystyle \mathbf{v}_{1} = \left( \begin{array}{c} 1 \\ 0 \end{array} \right)$がなす直線上にないベクトル$\displaystyle \mathbf{v}_{2} = \left( \begin{array}{c} 0 \\ 1 \end{array} \right)$について${ \mathbf{v}_{1}, \mathbf{v}_{2} }$が$1$次独立である』が延長原理の$1$例である。

基底の構成の流れ

基底を構成する条件

$n$次元ベクトル空間$V$上の$n$個のベクトルを$\{ \mathbf{v}_{1}, \, \cdots , \, \mathbf{v}_{n} \}$のように定義する。

また、行列$A$を下記のように定義する。
$$
\large
\begin{align}
A = \left( \begin{array}{ccc} \mathbf{v}_{1} & \cdots & \mathbf{v}_{n} \end{array} \right)
\end{align}
$$

このとき、「$\{ \mathbf{v}_{1}, \, \cdots , \, \mathbf{v}_{n} \}$が$V$の基底であり$\mathrm{dim} \, V = n$である」ことと下記の$[1]$〜$[3]$は同値である。
$[1] \,$ $\{ \mathbf{v}_{1}, \, \cdots , \, \mathbf{v}_{n} \}$が一次独立である。
$[2] \,$ $\{ \mathbf{v}_{1}, \, \cdots , \, \mathbf{v}_{n} \}$が$V$を生成する.
$[3] \,$ 行列$A$が正則行列である。

具体例の確認

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

基本例題$097$

$$
\large
\begin{align}
G = \left\{ \mathbf{v}_{1} = \left( \begin{array}{c} 0 \\ 0 \end{array} \right), \, \mathbf{v}_{2} = \left( \begin{array}{c} 1 \\ 0 \end{array} \right), \, \mathbf{v}_{3} = \left( \begin{array}{c} -3 \\ 0 \end{array} \right), \, \mathbf{v}_{4} = \left( \begin{array}{c} 1 \\ 2 \end{array} \right), \, \mathbf{v}_{5} = \left( \begin{array}{c} 0 \\ 2 \end{array} \right) \right\}
\end{align}
$$

$[0]$
$\mathbf{v}_{1}=\mathbf{0}, \, \mathbf{v}_{2}$より、$B={ \mathbf{v}_{2} }$とおく。

$[1]$
$B={ \mathbf{v}_{2} }$に対し$B \neq \mathbb{R}^{2}$であるので、$\mathbf{v}_{3}$以降を調べる。ここで$\mathbf{v}_{3} = -3 \mathbf{v}_{2}$であるので、$\mathbf{v}_{3} \in B$である。

次に、$\mathbf{v}_{4} \notin \left< B \right>$であるから$B = \{ \mathbf{v}_{2}, \mathbf{v}_{4} \}$とおくと、延長原理より$B$は線型独立である。

ここで$\mathrm{dim} \, \mathbb{R}^2 = 2$であるから$B = \{ \mathbf{v}_{2}, \mathbf{v}_{4} \}$は$\mathbb{R}^{2}$の基底である。

以上より、$\mathbb{R}^{2}$の基底は$B = \{ \mathbf{v}_{2}, \mathbf{v}_{4} \}$で構成される。

基本例題$099$

$$
\large
\begin{align}
\left\{ \mathbf{v}_{1} = \left( \begin{array}{c} 1 \\ 0 \\ 0 \end{array} \right), \, \mathbf{v}_{2} = \left( \begin{array}{c} 1 \\ 2 \\ 2 \end{array} \right), \, \mathbf{v}_{3} = \left( \begin{array}{c} -1 \\ -1 \\ -1 \end{array} \right), \, \mathbf{v}_{4} = \left( \begin{array}{c} 0 \\ 1 \\ 1 \end{array} \right), \, \mathbf{v}_{5} = \left( \begin{array}{c} 1 \\ 0 \\ 1 \end{array} \right) \right\}
\end{align}
$$

基底(basis)・標準基底の定義と基底であるかどうかの判定

いくつかのベクトルによって部分空間(subspace)が構成されている際に、部分空間を生成する線型独立(linearly independent)なベクトルの組を基底(basis)といいます。当記事では基底・標準基底の定義と基底であるかどうかの判定について取り扱いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$5.3$節「基底と次元」を主に参考にしました。

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

基底

基底の定義

下記の$[1], [2]$が成立するとき、ベクトル${ \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} }$がベクトル空間$V$の基底であるという。

$[1] \,$ ベクトル$\{ \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} \}$がベクトル空間$V$を生成し、$V=\left< \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} \right>$のように表せる。
$[2] \,$ ベクトル$\{ \mathbf{v}_{1}, \mathbf{v}_{2}, \cdots \mathbf{v}_{n-1}, \mathbf{v}_{n} \}$が$1$次独立である。

標準基底の定義

基底であるかどうかの判定

基底の定義の$[1], [2]$がそれぞれ成立するかに基づいて判定を行えばよい。

具体例の確認

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

基本例題$051$

基底の定義の$[1], [2]$が成立するかどうかについてそれぞれ確認を行う。

$[1]$
任意の複素数は実数$a, b$を用いて$z = a+bi$のように書けるので、$\mathbb{C}$は${ 1, i }$を元に生成できる。

$[2]$
$a+bi=0$のとき下記が成立する。
$$
\large
\begin{align}
(a+bi)(a-bi) &= 0 \\
a^2 – b^2i^2 &= 0 \\
a^2 + b^2 &= 0
\end{align}
$$

このとき$a, b$が実数であるので$a=b=0$である。よって${ 1, i }$は$1$次独立である。

$[1], [2]$より${ 1, i }$が基底を与える。

基本例題$052$

写像に関する基本用語と恒等写像(identity mapping)の定義

関数の一般化である写像には変換・定義域・終域・像・値域など、様々な関連用語があります。当記事では写像に関する基本の確認や写像の簡単な例である恒等写像(identity mapping)の定義について取りまとめを行いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$6.1$節「線形写像」を主に参考にしました。

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

写像・恒等写像まとめ

写像の定義

$2$つの集合$X, Y$について、$X$のどの要素にも$Y$の要素が$1$つずつ対応するとき、この対応を『集合$X$から集合$Y$への写像』といい、$f$などの記号を用いて下記のように表す。
$$
\large
\begin{align}
f: X \longrightarrow Y
\end{align}
$$

写像は関数を一般化した概念であり、関数は$f:\mathbb{R} \longrightarrow \mathbb{R}$に対応する。

写像の関連用語

$f: X \rightarrow Y$を写像とするとき、$X$は写像$f$の定義域、$Y$は写像$f$の終域という。また、$x \in X$のとき$f(x)$を$x$の像といい、$x$が$X$上を動く時の像の全体$\{ f(x) | x \in X \}$を写像$f$の値域という。写像$f$の値域は終域$Y$の部分集合である。

また、集合$T \subset Y$について$\{ x \in X | f(x) \in T \}$を写像$f$による$T$の逆像といい、$f^{-1}(T) = \{ x \in X | f(x) \in T \}$のように表す。

・参考
集合$X$から$X$自身への写像を$X$上の変換という。

恒等写像の定義

集合$X$と要素$x \in X$に関して恒等写像$\mathrm{id}_{X}$は下記のように定義される。
$$
\large
\begin{align}
\mathrm{id}_{X}: X \longrightarrow X, \quad x \longmapsto x
\end{align}
$$

恒等写像は恒等変換と呼ばれる場合もある。また、記号$\mathrm{id}$はidentity mapping(恒等写像)の$2$文字を取ったものである。

具体例の確認

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

基本例題$103$

$[1]$
任意の$x \in X$について下記が成立する。
$$
\large
\begin{align}
\mathrm{id}_{X}(x) = x
\end{align}
$$

よって下記が成立する。
$$
\large
\begin{align}
(f \circ \mathrm{id}_{X})(x) &= f(\mathrm{id}_{X}(x)) \\
&= f(x)
\end{align}
$$

上記より$f \circ \mathrm{id}_{X} = f$が示される。

$[2]$
任意の$x \in X$について$f(x) = y \in Y$とおくと下記が成立する。
$$
\large
\begin{align}
\mathrm{id}_{Y}(y) = y
\end{align}
$$

よって下記が成立する。
$$
\large
\begin{align}
(\mathrm{id}_{Y} \circ f)(x) &= \mathrm{id}_{Y}(f(x)) \\
&= \mathrm{id}_{Y}(y) \\
&= y = f(x)
\end{align}
$$

上記より$\mathrm{id}_{Y} \circ f = f$が示される。

区間推定(interval estimation)|問題演習で理解する統計学【4】

下記などで取り扱った、区間推定(interval estimation)に関する問題演習を通した理解ができるように問題・解答・解説をそれぞれ作成しました。

・標準演習$100$選
https://www.hello-statisticians.com/practice_100

作成にあたっては「統計検定準$1$級 ワークブック」の第$9$章を主に参考にしました。

基本問題

区間推定の概要と母平均の区間推定

母分散の区間推定

発展問題

母分散の比の区間推定

多項分布の区間推定

・問題
多項分布では$K$値の起こる確率をそれぞれ$p_1, p_2, \cdots , p_K$のように定め、起こった回数を表す確率変数$N_1, N_2, \cdots , N_K$に関する同時確率の計算を行う。

確率変数$N_i$に対応する観測値を$n_i$とおくと、同時確率関数$P(N_1=n_1, N_2=n_2, \cdots , N_K=n_K)$は下記のように表される。
$$
\large
\begin{align}
P(N_1=n_1, N_2=n_2, \cdots , N_K=n_K) &= \frac{(n_1 + \cdots + n_K)!}{n_1! \cdots n_K!} p_1^{y_1} \cdots p_K^{y_K} \\
&= \frac{\displaystyle \left( \sum_{k=1}^{K} n_k \right)!}{\displaystyle \prod_{k=1}^{K} n_k!} \prod_{k=1}^{K} p_k^{n_k} \\
\sum_{k=1}^{K} n_k &= n
\end{align}
$$

この問題では以下、観測値$n_1, n_2, \cdots , n_K$が得られたときの確率パラメータ$p_i$の区間推定に関して以下取り扱う。下記の問いにそれぞれ答えよ。
i) $N_i$や$n_i$に対応する$i$番目の事象が起こるかに着目するとき、多項分布は「$i$番目の事象が起こるかどうか」の二項分布に帰着して考えることができる。このことに基づいて期待値$E[N_i]$と分散$V[N_i]$を二項分布の式を元に答えよ。
ⅱ)

・解答
i)
期待値$E[N_i]$と分散$V[N_i]$は下記のように表せる。
$$
\large
\begin{align}
E[N_i] &= n p_i \\
V[N_i] &= n p_i (1-p_i)
\end{align}
$$

・解説

多項分布の差の区間推定

単射・全射・全単射と逆写像(inverse mapping)の性質

線形写像(linear mapping)を取り扱う際に、全単射と逆写像(inverse mapping)は重要なトピックです。当記事では全単射を構成する単射・全射や逆写像に関して、概要の取りまとめや演習を通した具体例の確認を行いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$6.1$節「線形写像」を主に参考にしました。

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

線形写像の概要

単射

任意の$x \in X, \, x’ \in X$に対し『$x \neq x’ \implies f(x) \neq f(x’)$』が成立するとき、写像$f: X \longrightarrow Y$は単射である。単射は『$1$対$1$の写像である』と解釈すれば良い。

全射

任意の$y \in Y$に対し、$y=f(x)$となる$x \in X$が少なくとも$1$つ存在するとき、写像$f: X \longrightarrow Y$は全射である。全射は「$Y$のいかなる要素も$X$のなんらかの要素の像であること」や「写像$f$の値域と終域が一致する」のように言い換えることもできる。

全単射と逆写像

写像$f: X \longrightarrow Y$が単射かつ全射であるとき、写像$f$は全単射である。『写像$f$が全単射である $\iff$ 写像$f$が逆写像を持つ』が成立する。関数$y=f(x)=x+1$のような逆関数を持つ関数を元に直感的に理解しておくとよく、写像$f$が全単射であるときは$X$の要素$x \in X$と$Y$の要素$y \in Y$がそれぞれ$1$対$1$対応する。

また、写像$f: X \longrightarrow Y$と$g: Y \longrightarrow X$について下記が成立するとき写像$g$は写像$f$の逆写像$f^{-1}$である。
$$
\large
\begin{align}
g \circ f &= \mathrm{id}_{X} \\
f \circ g &= \mathrm{id}_{Y}
\end{align}
$$

具体例の確認

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

基本例題$104$

基本例題$105$

基本例題$106$

写像$g: Y \longrightarrow X$が写像$f: X \longrightarrow Y$の逆写像であるとき、下記が成立する。
$$
\large
\begin{align}
g \circ f &= \mathrm{id}_{X} \\
f \circ g &= \mathrm{id}_{Y}
\end{align}
$$

上記より写像$f: X \longrightarrow Y$は写像$g: Y \longrightarrow X$の逆写像である。

線形写像(linear mapping)であるかの判定と行列写像の取得

線形写像(linear mapping)は関数を一般化した概念であり、線形代数の主要なトピックの一つです。当記事では線形写像の定義・判定や行列写像の取得について、概要の取りまとめや演習を通した具体例の確認を行いました。
作成にあたっては「チャート式シリーズ 大学教養 線形代数」の第$6.1$節「線形写像」を主に参考にしました。

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

線形写像の概要

線形写像の定義

$K$上のベクトル空間$V, W$における写像$f: V \to W$に関して下記が成立するとき、写像$f$は$K$上の線形写像である。
$[1] \,$ 任意の$\mathbf{v}_1 \in V, \, \mathbf{v}_2 \in V$に対して$f(\mathbf{v}_1 + \mathbf{v}_2) = f(\mathbf{v}_1) + f(\mathbf{v}_2)$
$[2] \,$ 任意の$\mathbf{v} \in V, \, a \in K$に対して$f(a \mathbf{v}) = a f(\mathbf{v})$

上記の$K$は基本的には実数体$\mathbb{R}$もしくは複素数体$\mathbb{C}$に対応し、$[2]$では任意のスカラー$a$を表すにあたって用いた。

線形写像であるかの判定

線形写像であるかの判定にあたっては前項「線形写像の定義」の$[1]$と$[2]$が成立するかを確認すれば良い。

行列写像

$n$次元数ベクトル空間$K^{n}$から$m$次元数ベクトル空間$K^{m}$への写像$f_{A}:K^{n} \to K^{m}$を$f_{A}(\mathbf{v})=A\mathbf{v}, \, \mathbf{v} \in K^{n}$で定義できるとき、$f_{A}$は「行列写像」である。

具体例の確認

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

基本例題$107$

$[1]$
$$
\large
\begin{align}
f(x) = -3x
\end{align}
$$

$x_1 \in \mathbb{R}, x_2 \in \mathbb{R}$に対し、下記が成立する。
$$
\large
\begin{align}
f(x_1 + x_2) &= -3(x_1 + x_2) \\
&= -3x_1 – 3x_2 \\
&= f(x_1) + f(x_2)
\end{align}
$$

また、$x \in \mathbb{R}, a \in \mathbb{R}$に対し、下記が成立する。
$$
\large
\begin{align}
f(ax) &= -3ax \\
&= a \cdot -3x \\
&= a f(x)
\end{align}
$$

上記より写像$f$は線形写像である。

$[2]$
$$
\large
\begin{align}
f(x) = x+1
\end{align}
$$

$x_1=1, x_2=1$のとき、下記が成立する。
$$
\large
\begin{align}
f(x_1+x_2) &= f(1+1) = (1+1) + 1 = 3 \\
f(x_1) + f(x_2) &= f(1) + f(1) = 1+1 + 1+1 = 4
\end{align}
$$

上記より$x_1=1, x_2=1$のとき$f(x_1+x_2) \neq f(x_1)+f(x_2)$であるので、写像$f$は線形写像ではない。

$[3]$
$$
\large
\begin{align}
f(x) = x^2
\end{align}
$$

$x_1=1, x_2=1$のとき、下記が成立する。
$$
\large
\begin{align}
f(x_1+x_2) &= f(1+1) = (1+1)^2 = 4 \\
f(x_1) + f(x_2) &= f(1) + f(1) = 1^2 + 1^2 = 2
\end{align}
$$

上記より$x_1=1, x_2=1$のとき$f(x_1+x_2) \neq f(x_1)+f(x_2)$であるので、写像$f$は線形写像ではない。

$[4]$
$$
\large
\begin{align}
f(x) = 2^{x}
\end{align}
$$

$x_1=0, x_2=0$のとき、下記が成立する。
$$
\large
\begin{align}
f(x_1+x_2) &= f(0+0) = 2^{0} = 1 \\
f(x_1) + f(x_2) &= f(1) + f(1) = 2^0 + 2^0 = 2
\end{align}
$$

上記より$x_1=0, x_2=0$のとき$f(x_1+x_2) \neq f(x_1)+f(x_2)$であるので、写像$f$は線形写像ではない。

・参考
この問題における写像は$f:\mathbb{R} \to \mathbb{R}$のように表せる。

基本例題$108$

$[1]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} x+2y \\ y \end{array} \right]
\end{align}
$$

$\displaystyle \mathbf{v}_1 = \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] \in \mathbb{R}^{2}, x_2 = \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \in \mathbb{R}^{2}$に対し、下記が成立する。
$$
\large
\begin{align}
f(\mathbf{v}_1 + \mathbf{v}_2) &= f \left( \left[ \begin{array}{c} x_1+x_2 \\ y_1+y_2 \end{array} \right] \right) \\
&= \left[ \begin{array}{c} (x_1+x_2)+2(y_1+y_2) \\ y_1+y_2 \end{array} \right] \\
&= \left[ \begin{array}{c} x_1+2y_1 \\ y_1 \end{array} \right] + \left[ \begin{array}{c} x_2+2y_2 \\ y_2 \end{array} \right] = f(\mathbf{v}_1) + f(\mathbf{v}_2)
\end{align}
$$

また、$\mathbf{v} = \left[ \begin{array}{c} x \\ y \end{array} \right] \in \mathbb{R}^{2}, a \in \mathbb{R}$に対し、下記が成立する。
$$
\large
\begin{align}
f(a \mathbf{v}) &= f \left( \left[ \begin{array}{c} a x \\ a y \end{array} \right] \right) \\
&= \left[ \begin{array}{c} ax+2ay \\ ay \end{array} \right] \\
&= a \left[ \begin{array}{c} x+2y \\ y \end{array} \right] = a f(\mathbf{v})
\end{align}
$$

上記より写像$f:\mathbb{R}^{2} \to \mathbb{R}^{2}$は線形写像である。

$[2]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} 2x+1 \\ 2x \end{array} \right]
\end{align}
$$

$x_1=1, x_2=1$のとき、下記が成立する。
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] + \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \right) &= f \left( \left[ \begin{array}{c} 1+1 \\ y_1+y_2 \end{array} \right] \right) = \left[ \begin{array}{c} 2 \cdot 2 + 1 \\ 2 \cdot 2 \end{array} \right] = \left[ \begin{array}{c} 5 \\ 4 \end{array} \right] \\
f \left( \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] \right) + f \left( \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \right) &= f \left( \left[ \begin{array}{c} 1 \\ y_1 \end{array} \right] \right) + f \left( \left[ \begin{array}{c} 1 \\ y_2 \end{array} \right] \right) = \left[ \begin{array}{c} 2 \cdot 1 + 1 \\ 2 \cdot 1 \end{array} \right] + \left[ \begin{array}{c} 2 \cdot 1 + 1 \\ 2 \cdot 1 \end{array} \right] = \left[ \begin{array}{c} 6 \\ 4 \end{array} \right]
\end{align}
$$

上記より$x_1=1, x_2=1$のとき$\displaystyle f \left( \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] + \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \right) \neq f \left( \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] \right) + f \left( \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \right)$であるので、写像$f:\mathbb{R}^{2} \to \mathbb{R}^{2}$は線形写像ではない。

$[3]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} 1 \\ x \end{array} \right]
\end{align}
$$

$x=1$のとき、$a \in \mathbb{R}$について下記が成立する。
$$
\large
\begin{align}
f \left( a \left[ \begin{array}{c} x \\ y \end{array} \right] \right) &= f \left( \left[ \begin{array}{c} ax \\ ay \end{array} \right] \right) = \left[ \begin{array}{c} 1 \\ ax \end{array} \right] \\
af \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) &= a \left[ \begin{array}{c} 1 \\ x \end{array} \right] = \left[ \begin{array}{c} a \\ ax \end{array} \right]
\end{align}
$$

上記より$x=1$のとき$\displaystyle f \left( a \left[ \begin{array}{c} x \\ y \end{array} \right] \right) \neq a f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right)$であるので、写像$f:\mathbb{R}^{2} \to \mathbb{R}^{2}$は線形写像ではない。

$[4]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} 0 \\ y \end{array} \right]
\end{align}
$$

$\displaystyle \mathbf{v}_1 = \left[ \begin{array}{c} x_1 \\ y_1 \end{array} \right] \in \mathbb{R}^{2}, x_2 = \left[ \begin{array}{c} x_2 \\ y_2 \end{array} \right] \in \mathbb{R}^{2}$に対し、下記が成立する。
$$
\large
\begin{align}
f(\mathbf{v}_1 + \mathbf{v}_2) &= f \left( \left[ \begin{array}{c} x_1+x_2 \\ y_1+y_2 \end{array} \right] \right) \\
&= \left[ \begin{array}{c} 0 \\ y_1+y_2 \end{array} \right] \\
&= \left[ \begin{array}{c} 0 \\ y_1 \end{array} \right] + \left[ \begin{array}{c} 0 \\ y_2 \end{array} \right] = f(\mathbf{v}_1) + f(\mathbf{v}_2)
\end{align}
$$

また、$\mathbf{v} = \left[ \begin{array}{c} x \\ y \end{array} \right] \in \mathbb{R}^{2}, a \in \mathbb{R}$に対し、下記が成立する。
$$
\large
\begin{align}
f(a \mathbf{v}) &= f \left( \left[ \begin{array}{c} a x \\ a y \end{array} \right] \right) \\
&= \left[ \begin{array}{c} 0 \\ ay \end{array} \right] \\
&= a \left[ \begin{array}{c} 0 \\ y \end{array} \right] = a f(\mathbf{v})
\end{align}
$$

上記より写像$f:\mathbb{R}^{2} \to \mathbb{R}^{2}$は線形写像である。

基本例題$111$

前項で取り扱った基本例題$108$の解答より、線形写像は$[1], [4]$であるので、以下では$[1]$と$[4]$の行列写像に対応する$2$次正方行列$A$を表す。

$[1]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} x+2y \\ y \end{array} \right]
\end{align}
$$

写像$f$は下記のように表せる。
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) &= \left[ \begin{array}{c} x+2y \\ y \end{array} \right] \\
&= \left[ \begin{array}{c} 1 & 2 \\ 0 & 1 \end{array} \right] \left[ \begin{array}{c} x \\ y \end{array} \right]
\end{align}
$$

よって行列写像に対応する$2$次正方行列$A$は下記のように表せる。
$$
\large
\begin{align}
A = \left[ \begin{array}{c} 1 & 2 \\ 0 & 1 \end{array} \right]
\end{align}
$$

$[4]$
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) = \left[ \begin{array}{c} 0 \\ y \end{array} \right]
\end{align}
$$

写像$f$は下記のように表せる。
$$
\large
\begin{align}
f \left( \left[ \begin{array}{c} x \\ y \end{array} \right] \right) &= \left[ \begin{array}{c} 0 \\ y \end{array} \right] \\
&= \left[ \begin{array}{c} 0 & 0 \\ 0 & 1 \end{array} \right] \left[ \begin{array}{c} x \\ y \end{array} \right]
\end{align}
$$

よって行列写像に対応する$2$次正方行列$A$は下記のように表せる。
$$
\large
\begin{align}
A = \left[ \begin{array}{c} 0 & 0 \\ 0 & 1 \end{array} \right]
\end{align}
$$

【Julia入門】Juliaのコレクション⑤ 共通の関数とイテレーション

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年Juliaも注目を集めています。そこで当シリーズではJuliaの基本構文からライブラリの用い方などについて取りまとめます。当記事ではJuliaのコレクションの共通の関数やイテレーションについて取りまとめを行いました。

Julia入門
https://www.hello-statisticians.com/julia

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

共通の関数

関数の一覧

関数 概要
isempty 要素があるかないかの判定
empty! 要素を取り除く
length 要素の数を出力
eltype 要素の型を出力

実行例

isempty関数は下記のように用いることができます。

x = []
println(x)
println(isempty(x))

println("===")

push!(x, 1)
println(x)
println(isempty(x))

・実行結果

Any[]
true
===
Any[1]
false

上記では空のリストに要素を追加するとisemptyの結果がfalseになることが確認できます。ここでempty!関数を実行するとisemptytrueになることも合わせて確認しておくと良いです。

x = [1, 2, 3]
println(x)
println(isempty(x))

println("===")

empty!(x)
println(x)
println(isempty(x))

・実行結果

[1, 2, 3]
false
===
Int64[]
true

また、length関数やeltype関数はそれぞれ下記のように実行することができます。

x = [1, 2]
println(x)
println(length(x))

println("===")

push!(x, 3)
println(x)
println(length(x))

println(eltype(x))

・実行結果

[1, 2]
2
===
[1, 2, 3]
3
Int64

イテレーション

for文にリストを用いることで下記のようにイテレーション(繰り返し処理)を行うことができます。

x = [1, 3, 5, 7, 9]

for i in x
    println(i)
end

・実行結果

1
3
5
7
9

同様に下記のように辞書を用いて繰り返し処理を実行することができます。

d = Dict("x" => 1, "y" => 2, "z" => 3)

for (key, value) in d
    println("key: $key, value: $value")
end

・実行結果

key: x, value: 1
key: z, value: 3
key: y, value: 2

参考

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

【Julia入門】Juliaのコレクション④ 集合型オブジェクト

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年Juliaも注目を集めています。そこで当シリーズではJuliaの基本構文からライブラリの用い方などについて取りまとめます。当記事ではJuliaの集合型オブジェクトについて取りまとめを行いました。

Julia入門
https://www.hello-statisticians.com/julia

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

集合型オブジェクト

辞書型オブジェクトの概要

集合は『キー(key)』のみを保持する辞書です。重複する要素を格納することができないので、ユニークな要素の取り扱いの際によく用いられます。

辞書の初期化・値の追加

集合の初期化は下記のようにSetを用いることで行うことができます。

s = Set([1, 2])
println(s)
println(typeof(s))

・実行結果

Set([2, 1])
Set{Int64}

集合への値の追加はpush!関数を用いて下記のように行うことが可能です。

s = Set([1, 2])

push!(s, 3)
println(s)

push!(s, 3)
println(s)

・実行結果

Set([2, 3, 1])
Set([2, 3, 1])

push!(s, 3)の実行は二度行いましたが、集合に格納される値はユニークであることから二度目の操作によって集合の要素が変化しないことを確認しておくと良いです。

和集合・積集合

集合の和集合はunion、積集合はintersectを用いて下記のように得ることができます。

s1 = Set([1, 2, 3, 4, 5])
s2 = Set([1, 3, 5, 7, 9])

println(s1)
println(s2)
println("===")
println(union(s1, s2))
println(intersect(s1, s2))

・実行結果

Set([5, 4, 2, 3, 1])
Set([5, 7, 9, 3, 1])
===
Set([5, 4, 7, 2, 9, 3, 1])
Set([5, 3, 1])

参考

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

JSダイバージェンス(Jensen-Shannon divergence)の定義と対称性

KLダイバージェンス(Kullback-Leibler divergence)は確率分布の類似度を取り扱う指標である一方で、KLダイバージェンスには対称性が成立しません。そこで当記事ではKLダイバージェンスと類似の指標かつ対称性の成立するJSダイバージェンス(Jensen-Shannon divergence)について取りまとめました。

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

JSダイバージェンスの定義

KLダイバージェンスの式の確認

$2$つの確率分布$P(X=x)$と$Q(X=x)$について$P$から見た$Q$のKLダイバージェンスを$KL(P||Q)$とおくと、$KL(P||Q)$の式は下記のように表される。
$$
\large
\begin{align}
KL(P||Q) &= – \int P(X=x) \ln{Q(X=x)} dx – \left[ – \int P(X=x) \ln{P(X=x)} dx \right] \\
&= – \int P(X=x) \ln{\frac{Q(X=x)}{P(X=x)}} dx
\end{align}
$$

JSダイバージェンスの式定義

$2$つの確率分布$P(X=x)$と$Q(X=x)$についてJSダイバージェンスを$JS(P||Q)$とおくと、$JS(P||Q)$の式は下記のように表される。
$$
\large
\begin{align}
JS(P||Q) &= \frac{1}{2} (KL(P||R) + KL(Q||R)) \\
R(X=x) &= \frac{1}{2}(P(X=x) + Q(X=x))
\end{align}
$$

JSダイバージェンスの対称性

KLダイバージェンスでは$KL(P||Q) \neq KL(Q||P)$であり、対称性は成立しないが、JSダイバージェンスでは下記のように対称性が成立する。
$$
\large
\begin{align}
JS(P||Q) &= \frac{1}{2} (KL(P||R) + KL(Q||R)) \\
&= \frac{1}{2} (KL(P||(P+Q)/2) + KL(Q||(P+Q)/2)) \\
&= \frac{1}{2} (KL(Q||(P+Q)/2) + KL(P||(P+Q)/2)) \\
&= \frac{1}{2} (KL(Q||R) + KL(P||R)) \\
&= JS(Q||P)
\end{align}
$$

参考

【Julia入門】Juliaのコレクション③ 辞書型オブジェクト

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年Juliaも注目を集めています。そこで当シリーズではJuliaの基本構文からライブラリの用い方などについて取りまとめます。当記事ではJuliaの辞書型オブジェクトについて取りまとめを行いました。

Julia入門
https://www.hello-statisticians.com/julia

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/

辞書型オブジェクト

辞書型オブジェクトの概要

辞書(dictionary)は『キー(key)』と『値(value)』の二つをセットで格納する形式です。辞書の基本的な使い方は『キーを検索し値を取得を行う』と抑えておくと良いです。

辞書の初期化・値の追加・値の取得

辞書の初期化は下記のようにDict{String, Int}()を用いることで行うことができます。

d = Dict{String, Int}()
println(d)
println(typeof(d))

・実行結果

Dict{String, Int64}()
Dict{String, Int64}

辞書への値の追加と値の取得は下記のように行うことが可能です。

d = Dict{String, Int}()

d["apple"] = 1
d["orange"] = 2
d["grape"] = 3

println(d)
println(d["apple"])

・実行結果

Dict("orange" => 2, "apple" => 1, "grape" => 3)
1

キーの検索・判定

辞書の活用にあたっては『キーが辞書に含まれる場合に値を返し、含まれない場合は別の処理を返す』ような処理がよく用いられます。この際に『キーが辞書に含まれるかの判定』はhaskey関数を用いることで行うことができます。

d = Dict{String, Int}()

d["Python"] = 1
d["R"] = 2
d["Julia"] = 3

println(haskey(d, "Julia"))
if haskey(d, "Julia")
    println("Found")
else
    println("Not Found")
end

・実行結果

true
Found

参考

Julia 1.8 Documentation
https://docs.julialang.org/en/v1/