E試験(2024#2)学習記録～受験1週間前～

私がE試験(2024#2)を受験するにあたって学習した内容をまとめています。
受験直前だったため数学的な内容以外に記載できていないのでご了承ください。
ただの自分の学習記録ですがなにか参考になると嬉しいです。
もし間違いやより適切な表現・解釈等ありましたらコメントいただけると幸いです。
学習範囲は[JDLAのホームページ](https://www.jdla.org/certificate/engineer/)からシラバスをダウンロードしてご覧ください。

# 数学的基礎
深層学習の基礎となる数学的な内容についてのまとめです。
## パラメータ推定
### ベイズ則
ベイズ則（ベイズの定理）とは、条件付き確率 $P(Y|X)$ をYとXの周辺分布$P(Y),P(X)$と条件付き確率$P(X|Y)$を用いて表すための公式です（Xを説明変数、Yを目的変数と呼ぶことが多いです）。
具体的な公式は以下です。

```math

P(Y|X)P(X) = P(X|Y)P(Y) \iff P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)}

```

ここで、$P(Y|X)$や$P(X|Y)$はある事象Y,Xが起こったもとである事象X,Yが起こる確率であるため、 **事後確率** 、$P(Y)$や$P(X)$はそれに対して **事前確率** と呼ばれます。

### Naive Bayes

Naive Bayes（ナイーブベイズ）とは、上記のベイズ則を用いたその名の通り **Naive(単純)** な機械学習アルゴリズムです。
このアルゴリズムが単純であるのは各説明変数(X)が **独立である(互いに影響しない)** という仮定を置いている点です。この単純な仮定をし、取得したデータに上記のベイズ則を使用すると、Xが与えられたうえでのY(例えば、あるコメントが与えられたときのそのコメントがポジティブである確率)を簡単に求めることができます。

### MSE / RMSE / MAE
これらは、機械学習において頻繁に使用される評価指標です。

**MSE**： 予測値と正解値の差を二乗して平均をとった値

**RMSE**: MSEの値にルートをとったもの($=\sqrt{MSE}$) 
　　　 MSEと違い、予測値や正解値と単位を合わせられる
    
**MAE**：予測値と正解値の差の絶対値をとったもの
　　　 RMSEと同じく単位を合わせることが可能でさらに、外れ値の影響を受けにくい

### 対数尤度 / 最尤推定
尤度とは・・・ある確率密度関数において、手に入ったデータのもっともらしさ

手元のデータが例えば正規分布に従うと仮定した場合、ある値の出現しやすさは異なる。出現しやすい値がよく出ていれば、その正規分布はデータをよく表現できているし、逆に出現しにくい値ばかりが出ていればパラメータの変更や仮定する確率分布の変更が必要となります。
この表現の出来を評価する値を尤度と呼ぶ。尤度が高ければよく表現できている確率分布であるといえます。
$p$を仮定した確率分布、$x$を与えられたデータ、$θ$をパラメータとすると、尤度は次のような各確率の積で表されます。
```math
L(θ) = \prod_{X} p(x|θ)
```

このとき、積の形では各種計算が難しくなってしまいます(例えば微積分の難易度が高くなる)。そこで、この尤度の両辺に対数をとることで、尤度を和の形で表す。これを**対数尤度**といいます。

```math
log(L(θ)) = log(\prod_{X} p(x|θ)) = \sum_{X} log(p(x|θ))
```
この対数尤度関数をパラメータθについて微分することで与えられたデータのにおいて尤度が最大となるθ(=最もデータを表現できているパラメータ)を見つけることを**最尤推定**と呼びます。

### MAP推定 / ベイズ推定

上記の最尤推定では、取得したデータの偏りがそのままパラメータに反映されてしまいます。例えば、コインを3回投げて全て表が出た場合最尤推定ではそのコインは100%表が出るコインとして扱われます。この問題を解消するのが**MAP推定**です。これは先ほどの最尤推定の公式を次のように変更します。

```math
L(θ) = \prod_{X} p(x|θ)p(θ)
```

このように$p(x|θ)$に事前分布をかけることで、そもそものデータの得やすさを考慮することが可能となり、100%表が出るなどの極端な解釈を避けることができます。

次にベイズ推定についてですが、これは求めるパラメータθを確定させずに、θそのものを確率分布として幅を持たせて出力させる推定方法です。公式等については私自身が理解しきれていない部分が多いため現在は省略します。

### ダイバージェンス

数学においてダイバージェンスとは主に確率分布間の距離のようなものを表す指標です。
これには主に **KL(カルバック・ライブラー)ダイバージェンス** と **JS(イェンセン・シャノン)ダイバージェンス** の2種類が存在します。

・**KLダイバージェンス**

　ある二つの確率分布の類似性を表す。
 =>これは主に、目標となる(データから推定される)確率分布をもとに作成するモデルの確率分布を評価する際に使用され、値が小さい(=似通っている)程データ分布をよく表現できているモデルとされる。
 
　**非負性** と **非対称性** をもつ。
 =>非対称性は以下の公式から明らか。

 ```math
 D_{KL}(P||Q) = E_{x \sim P}\Bigg[log\frac{p(x)}{q(x)}\Bigg] = \sum_{X}p(x)log\frac{p(x)}{q(x)}
 ```
 注：本公式は離散確率分布の場合のKLダイバージェンス。連続の場合は積分となる

 非負性については[こちら](https://kino-3.github.io/ml-memo/math/KL_divergence/)の記事が分かりやすくまとめてくださっていましたので参照しました。

 ・**JSダイバージェンス**

 　ある分布間の類似性を表す点と、非負性についてはKLダイバージェンスと同様

  　KLダイバージェンスと異なる点は、対称性を持つ点。
   =>これについても後に記載する式から明らか。

 ```math
 D_{JS}(P|Q) = \frac{1}{2}\big(D_{KL}(P||\frac{P+Q}{2}) + D_{KL}(Q||\frac{P+Q}{2})\big)
 ```
 $P,Q$を入れ替えても、足し算の順序が変化するだけなので値は変わらないため、 **非負性** が成り立つ。


## 情報理論
情報理論については[工業大学生ももやまのうさぎ塾](https://www.momoyama-usagi.com/, "https://www.momoyama-usagi.com/")さんの「[うさぎでもわかる情報量・エントロピー・相互情報量（情報理論）](https://www.momoyama-usagi.com/entry/info-entropy, "https://www.momoyama-usagi.com/entry/info-entropy")」が参考になりましたので記載させていただきます。
大変お世話になりました。
### 自己情報量
自己情報量とは、ある事象の得られにくさ(≒価値)を表したものです。つまり、起こりやすい事象よりも起こりにくい事象のほうが実際に起こった時に得られる情報量が大きいと考えます。公式は以下です。

```math
I(x) = -logp(x)
```

$0 \leqq p \leqq 1$より、情報量の値域は、$0 \leqq I \leqq \infty$
さらに、対数関数の定義より、
```math
-logp(x)p(y) = (-logp(x)) + (-logp(y)) = I(X) + I(Y)
```
したがって、自己情報量には加法性がある。

### エントロピー
エントロピーとは、あるデータ集合においての情報量の期待値のことです。
公式としては以下です。

```math
H(X) = E_{x \sim p(x)}[-logp(x)] = - \sum_X p(x)logp(x)
```

### クロスエントロピー
クロスエントロピーとは得たデータの分布と、別の確率分布間でのエントロピーを求める際に使用されます。公式は以下です。

```math
H(X) = E_{x \sim p(x)}[-logq(x)] = - \sum_X p(x)logq(x)
```


補足になりますが、この公式をよく見ると先述のKLダイバージェンスの公式と似通っていることがわかると思います。これは以下の式変形からわかるように、KLダイバージェンスが確率分布$p,q$のエントロピーの差を計算しているためです(H_qについてはクロスエントロピーです)。

**KLダイバージェンスとエントロピー**
```math

\displaylines{
\begin{align*}
D_{KL}(P||Q) &= E_{x \sim P}\Bigg[log\frac{p(x)}{q(x)}\Bigg] \\
&= E_{x \sim P}\Bigg[-log q(x) - (-log p(x))\Bigg] \\
&= E_{x \sim P}\Bigg[-log q(x)\Bigg] - E_{x \sim P}\Bigg[-log p(x)\Bigg]\\
&= H_q(X) - H_p(X)
\end{align*}}

```



<br>
結局本記事には大した内容は書けませんでしたが、試験頑張ります。

記事を書くのって記憶には残りやすいですが1単元書くのに時間がかかりすぎました。今度同じようなことやるならせめて2か月前とかからちまちま書きます。

気が向いたら試験後にでも純粋なE資格対策用記事として続きを書きたいと思います(問題の情報を掲載するのが禁止なのでリークが無いようにするのが難しいかもですが)。