E検定で使用する数学について

# 初めに
本記事ではE検定で使用する数学にざっくりまとめたものとなります。
具体的には、E検定のシラバスによると以下の3つの分野を抑える必要があるところのことなので、各分野で使用する数学について簡単にまとめてみました。
是非、E検定勉強のご参考になさってください。

* 線形代数
* 確率・統計
* 情報理論

## 線形代数
E検定における必要となる線形代数の知識は以下の通りで、ひとつづつ説明します。
* スカラーとベクトル
* 行列と行列の演算(和・差・積)
* 行列の積と連立方程式の解き方
* 逆行列と逆行列の求め方
* 行列式
* 固有値と固有ベクトル
* 固有値分解
* 特異値分解

### スカラーとベクトル

ベクトルとはいくつか要素をひとまとまりにしたもので、以下の例のような形式で書きます。

```math
\begin{pmatrix}
a\\
b\\
c
\end{pmatrix}
```

スカラーはベクトルと対比して一つの要素となるものです。

### 行列
平易にいうと数や文字を長方形に並べてカッコで囲んだものを行列を言います。
行列には縦と横にサイズがあり、以下の例だとそれぞれ左から3x2、2x2、2x3のサイズとなります。

```math
\begin{pmatrix}
a & b \\
c & d \\
e & f
\end{pmatrix}
,
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
,
\begin{pmatrix}
0.1 & 2.5 & 3.1\\
4.0 & 5.3 & 6.2
\end{pmatrix}

```

### 行列の演算(和・差・積)
サイズ2x2の行列を例に行列の演算方法を紹介します。なお、前提として行列の演算が出来る条件として、

* 和

各行列の要素ごとに足した結果が和の演算の結果となります。

```math
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
+
\begin{pmatrix}
e & f \\
g & h
\end{pmatrix}
=
\begin{pmatrix}
a + e & b + f \\
c + g & d + h
\end{pmatrix}
```

* 差

差に関しては以下の通り、和に比べ、+が-に変わったのみです。

```math
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
-
\begin{pmatrix}
e & f \\
g & h
\end{pmatrix}
=
\begin{pmatrix}
a - e & b - f \\
c - g & d - h
\end{pmatrix}
```

* 積

行列の和や差の様に各行列の要素ごとに掛け算...はしません。(なお、その様な積はアダマール積と呼ばれています)
以下の様に定義されます。

```math
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\times
\begin{pmatrix}
e & f \\
g & h
\end{pmatrix}
=
\begin{pmatrix}
a * e + b * g & a * f + b * h \\
c * e + d * g & c * f + d * h
\end{pmatrix}
```


例として2x2の行列の積は以下の通りに計算されます。

```math
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
\times
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
=
\begin{pmatrix}
1*1+2*3 & 1*2+2*4 \\
3*1+4*3 & 3*2+4*4
\end{pmatrix}
=
\begin{pmatrix}
7 & 10 \\
15 & 22
\end{pmatrix}
```

### 単位行列
単位行列Iは以下の通りです。つまり、行列の対角線上は1、それ以外は0となる行列です。

```math
I = 
\begin{pmatrix}
1 & 0 & ... & 0 \\
0 & 1 & ... & 0 \\
0 & 0 & ... & 0\\
0 & 0 & ... & 1
\end{pmatrix}
```

任意の行列Aに対して、単位行列Iを掛けると以下の通りとなります。

```math
A \times I = I \times A = A
```

### 逆行列
行列Aの逆行列とは以下の式を満たす行列$A^{-1}$となります。つまり、整数の世界でいえば逆数となるような行列です。

```math
A \times A^{-1} = A^{-1} \times A = I
```

### 行列式
行列式とは正方行列(縦横のサイズが同じ行列)に対して定義される量で、歴史的には連立方程式を解く際の解の存在を確認する際に用いられたそうです。
具体的には2x2の行列式の例であれば以下の通りです。

```math 
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
= a * d - b * c
```

#### 逆行列が存在しない場合
逆行列は任意の行列に対して常に存在するわけではありません。
逆行列が存在する条件として、その行列の行列式が0でない必要があります。
2x2の行列を例とすると以下の条件を満たす物となります。

```math 
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
\neq 0
```

### 逆行列の求め方
逆行列を求める方式としては、掃き出し法が一般的です。
掃き出し法は逆行列が存在する条件を満たす限り、機械的に求めることが出来ます。
具体的には以下の様に求めます。


### 連立方程式の解き方
連立方程式は行列とベクトルの形で表現できます。
例えば、以下の連立方程式を考えてみます。

```math
\left\{
\begin{array}{ll}
a_{1} x_{1}  + b_{1}  x_{2} = c_{1}\\
a_{2} x_{1}  + b_{2}  x_{2} = c_{2}
\end{array}
\right.
```

上記の連立方程式を行列とベクトルの形に直すと以下の様になります。

```math
\begin{pmatrix}
a_{1} & b_{1} \\
a_{2} & b_{2}
\end{pmatrix}
\times
\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
= \begin{pmatrix}
c_{1}\\
c_{2}
\end{pmatrix}\\
```

上記の行列をA、$\begin{pmatrix}x_{1} x_{2}\end{pmatrix}$をx、$\begin{pmatrix}c_{1} c_{2}\end{pmatrix}$をcとすると以下の形式となります。

```math
A \times x = c
```

連立方程式を解くということは上記の式のAとcの値は決まっており、xの値を求めたいわけですが、Aの逆行列を左からかけることで以下のような式となります。

```math
x = A^{-1}c
```

つまり、連立方程式を解くことはAの逆行列を求めてcに左から掛け算した値を求めるということになります。
逆行列の求め方は機械的に求めることができるため、プログラムでも簡単に連立方程式を解けるということですね。

### 固有値と固有ベクトル
行列Aに対して、以下を満たす様なベクトルv、スカラー$\lambda$があるとき、ベクトルvを固有ベクトル、スカラー$lambda$を固有値といいます。
つまり、行列Aは特定のベクトルの掛け算において、そのベクトルのスカラー倍と同じ結果となるわけです。

```math
A v = \lambda v
```

固有値の求め方に関しては、2x2の行列を例に求めるとまずは、以下の行列式から$\lambda$の2次方程式の解を求めることで定まります。

```math 
\begin{vmatrix}
a - \lambda & b \\
c & d - \lambda
\end{vmatrix}
= (a - \lambda)(d - \lambda) - b * c
```

具体例としては以下の通り求めます。

```math 
\begin{vmatrix}
1 - \lambda & 4 \\
2 & 3 - \lambda
\end{vmatrix}
= (1 - \lambda)(3 - \lambda) - 8 = \lambda ^{2} + 4 \lambda - 5, \lambda = -1 または 5
```

固有ベクトルはAと固有値$\lambda$が求まったため、Aの逆行列を計算し、以下の計算を行えば求まります。

```math
v = \lambda A^{-1} v
```


### 固有値分解
固有値$\lambda_{1},\lambda_{2},...$と固有ベクトル$v_{1},v_{2},...$から以下の行列を作ってみます。

```math
\Lambda =
\begin{pmatrix}
\lambda_{1} & 0 & ... & 0 \\
0 & \lambda_{2} & ... & 0 \\
0 & 0 & ... & 0\\
0 & 0 & ... & \lambda_{n}
\end{pmatrix} 
,V =
\begin{pmatrix}
v_{1},v_{2},...
\end{pmatrix}

```

上記の行列を考えた時、固有値、固有ベクトルの定義から以下の等式が成り立つことがわかります。

```math
A V = V \Lambda
```

ここで、Vの逆行列を求めて両辺に右側からかけると以下のような式になりますが、この右辺のことを固有値分解と呼びます。

```math
A = V \Lambda V^{-1}
```

固有値分解をすることでAのべき乗が簡単に行えます。

```math
A^{n} = V \Lambda^{n} V^{-1}
```



### 特異値分解
固有値分解は正方行列のみが対象でしたが、正方行列ではない行列に対しても固有値分解に似た方法は実現できます。
正方行列ではない行列Bを考えます。その時、以下の固有値$\sigma$、固有ベクトル$v,u$を持つとき$B = USV^{-1}$の形に記載でき、これを特異値分解といいます。

```math
B v = \sigma u\\
B^{T} u = \sigma v\\
B^{T}は転置行列(行列の縦横を入れ替えた行列)
```

## 確率・統計
E検定における必要となる線形代数の知識は以下の通りで、ひとつづつ説明します。

* 確率とは
* 独立事象での同時確率
* 条件付確率
* ベイズ測
* 期待値
* 分散と共分散
* 分散と標準偏差
* 確率分布

### 確率とは？
確率は以下の種類があります。
頻度確率・・・起きる出来事がどのくらいの頻度で起きるか(例えばサイコロを1回ふって1の目が出る確率は1/6など)
ベイズ確率・・・その出来事が起きる見込みの度合い(例えば明日雨がふる確率は20%など)

頻度確率は基本的に以下の式で求まります。

```math
P(その試行によって起きる特定の事象) = (その試行によって起きる特定の事象)/(その試行によって起きるすべての事象)
```

例えば、52枚のトランプ(ジョーカー抜き)から1枚引いて、それがハートである確率は以下の通りです。

```math
P(ハートである)=(ハートのトランプの枚数)/(トランプを全枚数) = 13/52 = 1/4(=25%)
```

### 同時確率(独立事象)
事象A,Bがあり、A,Bお互い因果関係がない場合、独立事象といい、独立事象A,Bが同時発生する確率はそれぞれの確率の積で求まります。

### 条件付確率
ある事象Aが起きた条件で、ある事象Bが発生する確率を条件付確率といい、以下の式で求まります。

```math
P(B|A) = P(A \cap B) / P(A)
```

### ベイズ則
条件付確率を利用し、ある事象の結果からその事象の原因を推定することが出来ます。
具体的にはある事象Aが原因で事象Bの結果が起きる可能性があった時に事象Bが起きた際、その原因が事象Aである確率は以下の通り求まります。
これをベイズ則といいます。

```math
P(A|B) = P(A)P(B|A) / P(B)
```

### 期待値
期待値は、確率の取り柄そうな値を指します。
具体的には以下のような式となります。

```math
\sum_{n=1}^{k} P(x_{n})f(x_{n})
```

例えば、サイコロを1回降って得る値の期待値は以下の通りです。

```math
\sum_{n=1}^{k} P(x_{n})f(x_{n}) = 1*1/6+2*1/6+3*1/6+4*1/6+5*1/6+6*1/6 = 3.5
```

### 分散と共分散
分散は得られたデータが平均からどのくらいばらついているか確認するものです。
具体的には、データから平均を引いた値の2乗和にデータ数で割った値となります。

共分散は2種類のデータの関係を示す指標となるようなもので相関関係と似たものです。

### 分散と標準偏差
分散は定義から2乗和で計算しているため、もとのデータと単位が異なります。
そのため、分散の平方根を取ることでデータの単位を戻すことが出来ます。これを標準偏差といいます。

### 確率分布

確率分布とは、各事象が起きるときの確率の分布を指します。

#### ベルヌーイ分布
ベルヌーイ分布は2種類の事象しか起きない試行の確率分布となります。
具体的には以下の式で表されます。

```math
p^{k}(1-p)^{(1-k)}\\
kは試行回数\\
pはその事象が起きる確率
```

このベルヌーイ分布の特徴として、期待値は$p$、分散は$p(1-p)$となります。

#### マルチヌーイ分布
マルチヌーイ分布はベルヌーイ分布の複数種類の事象を取り扱えるようにした確率分布となります。

#### 二項分布
ベルヌーイ分布において、複数回試行した場合、その事象が起きる回数ごとに確率分布が出来、その分布を二項分布と呼ばれます。

#### ガウス分布
別名正規分布とも呼ばれ、鐘形曲線を描く確率分布です。
以下の関数で曲線を描きます。

```math
f(x) = 1/(\sqrt{(2 \pi)} \sigma)exp(-(x- \mu)^{2}/2\sigma^{2})\\
\mu は期待値\\
\sigma は分散
```

## 情報理論
E検定における必要となる情報理論の知識は以下の通りで、ひとつづつ説明します。

* 自己情報量
* シャノンエントロピー
* カルバック・ライブラー・ダイバージェンス
* 交差エントロピー

### 自己情報量
自己情報量とは事象の起きにくさを定量的に求めるもので、起きる確率Pの事象Aの自己情報量$I$は具体的には以下の式で表されます。

```math
I = -log(P)
```

その事象が起きにくければ情報量は大きくなり、逆に起きやすいものであれば0に近づいていきます。
logの手前にマイナスがついているのはPが1以下のため、log(P)が常に-であるため、マイナスをかけてIを正の値としています。

例えばサイコロを1回ふって1の目が出た時の情報量は$-log(1/6)=log(6) \approx 0.77$となります。(自然対数の場合のため、単位はnatとなります。2を底として場合は単位はbitとなります)

### シャノンエントロピー
シャノンエントロピーとはすべての事象に対して、その情報量の期待値を指し、Hをエントロピーとした場合、数式的には以下の通りです。

```math
H = - \Sigma{P log(P)}
```

例えばサイコロを1回ふった場合はシャノンエントロピーは$ 1/6*log(6) + 1/6*log(6) + 1/6*log(6) + 1/6*log(6) + 1/6*log(6) + 1/6*log(6) = log (6) \approx 0.77$となります。

### カルバック・ライブラー・ダイバージェンス
カルバック・ライブラー・ダイバージェンスとは2つの確率分布がどのくらい似ているかを定量的に求めます。
具体的には以下の数式で求めます。

```math
D_{KL}(P||Q) = E_{x～P}[log P(x) - log Q(x)]
```

P,Q共に同じ確率分布の場合、$log P(x) - log Q(x)$は常に0となるため、$D_{KL}(P||Q)=0$となります。
また、分散を取っているため、常に$D_{KL} >= 0$となります。

### 交差エントロピー
交差エントロピーとは2つの確率分布の間の情報量の違いを定量的に求めるものです。
具体的には以下の数式で求めます。

```math
H(P, Q) = H(P) + D_{KL}(P||Q)
```