機械学習 – 機械学習の基礎 – 検証集合

[ホールドアウト法]
全データを学習データとテストデータに分割する
何割ずつ割り当てるかが悩ましい

[交差検証法]
全データをn個のセットに分割し、その内の一つをテストデータ、他を学習データとする方法
テストデータとしたセットを、学習のサイクルごとに変更し、最後に各サイクルの結果の平均を求める
k個に分けるとk-分割交差検証法

[ブートストラップ法]
ある標本集団から母集団の性質を推定する方法
データから重複を許してサンプリングし、学習データとテストデータに分割する
サンプリングを何度も繰り返すことにより、テストに学習データが含まれることのバイアスを小さくする

機械学習 – 機械学習の基礎 – ハイパーパラメータ

モデルの中で、前提として設定するパラメータ (フリーパラメータ?)
学習させるパラメータ(重みなど)と違い、学習中には設定を変えない
選択肢が多くなり過ぎるからという理由の他に、訓練データを用いて学習させる事が適切ではないため、ハイパーパラメータとしている場合もある

ハイパーパラメータの学習にテスト集合は使えないので(過剰適合になる)、学習させる場合は訓練データを2つに分割し、検証集合(Validation set)を作成して、その汎化誤差を用いて学習させる

ニューラルネットワークのハイパーパラメータの代表例
– 隠れ層のノード数
– 重みの初期化方法
– 層の深さ
– アップデート関数や学習率
など

機械学習 – 機械学習の基礎 – 能力、過剰適合、過少適合

[機械学習の流れ]
1. 訓練データを用いた学習
2. 訓練誤差の算出 (Training error)
3. 新しいデータの入力
4. 汎化誤差の算出 (Generalization/Test error)

一般的な最適化は2を小さくする事
機械学習は4を小さくする事

汎化誤差を最小化するために、
1. 訓練誤差を小さくする事
2. 訓練誤差と汎化誤差の差を小さくする事
を同時に行う。
1が不十分な場合を過少適合
有限の訓練を繰り返しすぎて、2が乖離してきた場合を過剰適合という

2を最小化するために、敢えて1を最小化せず、早めに訓練を終えてしまう場合もある(早期終了)
過剰適合を起こさないように正則化項(Regularizer)を導入する場合もある
重み減衰(Weight decay)を用いた正則化が一般的
2次のノルムを用いた正則化 : \(L^2\)正則化 (リッジ回帰、ティホノフ回帰)
1次のノルムを用いた正則化 : \(L^1\)正則化 (LASSOモデル)
\(L^1\)と\(L^2\)の和を使用したものがElastic Net

ちなみにスパースモデリングとは、すかすかモデリングという意味で、少ない情報から全体像を的確に表現するモデリングの事を意味するそうです。

機械学習 – 機械学習の基礎 – 学習アルゴリズム

[タスクT]
解決したい、求めたい目的
分類、回帰、転写、翻訳、構造出力、異常検知、合成とサンプリング、欠損値補完、ノイズ除去、密度推定など
学習そのものはタスクではない点に注意

[性能指標P]
タスクをどのくらい達成できているかを測る指標
テスト集合を用いて評価
誤差率 (誤った出力を生成する割合) = 期待0/1損失 (0が正しく分類、1が誤って分類)

回帰問題の性能指標は\[R^2\]などが良く使用される

[経験E]
データ。機械学習においてはデータの事
教師あり学習と教師なし学習がある

Goodfellow著、深層学習、第五章によりますと、「コンピュータプログラムは、性能指標Pで測定されるタスクTにおける性能が経験Eにより改善される場合、そのタスクTのクラスおよび性能指標Pに関して経験Eから学習すると言われている。」との事です。

タスクTとか言われると「は?」てなりますが、整理してみるとほぅ…となりますね。
E試験ではタスクTについて、どんな設問が出るのだろう・・・

ところで、この定義であれば良くなれば学習、改善しなければ学習とは言わない事になります。以前高校の生物の教師に、「進化」の反対は「退化」ではなく、「進化しない事」だと習った記憶があります。突然変異により今より不利な形質に移行したとしても、それは退化ではあるが進化でもあるそうです。学習の場合は、常に良くならなければ学習とは言わないようですね。
…まあ、そこは大して重要ではありませんが…

応用数学 – 情報理論

[自己情報量]
\( I(x)=-\ln P(x)\)
\(\log \)を自然対数と常用対数で区別していない教科書がありますが、自然対数で正しいようです(どっちかにして欲しい)。
起こりやすい事象ほど情報量が少なく、起こりにくい事象ほど情報量が多い。
(意訳 : 珍しい事象には”意味”がある。)

[平均情報量(エントロピー)]
\( H(x)=-\Sigma P(x)\ln P(x)\)
エントロピーは常に非負の値をとる。
決定的な分布のエントロピーは低く、一様分布に近い分布のエントロピーは高い。

[カルバックライブラー]
\( D_{KL}(P||Q)=-\Sigma _i P(x)\ln {P(x)}{Q(x)}\)
2つの確率分布がどのように異なるかを知る指標。
非負である。PとQが同じ分布であれば0になる。

応用数学 – 確率・統計 – 一般的な確率分布

[ベルヌーイ分布]
確率関数 : \( f(k;p)=p^k(1-p)^{1-k} \)
期待値 : \( E(X) = p \)
分散 : \( V(X) = p(1-p) \)
結果が\(k=0\)か\(k=1\)である事象を表した分布。

[二項分布]
\( f(k)=p^k(1-p)^{n-k} \)
\( E(X) = np \)
\( V(X) = np(1-p) \)
互いに独立したベルヌーイ試行をn回行った時の確率分布。
\( n=1 \)だとベルヌーイ分布と等しいですね。

[マルチヌーイ分布]
\( f(k)=\frac{n!}{x_1! … x_k!}p_1^{x_1}…p_k^{x_k} \)
\( E(X_i) = np_i \)
\( V(X_i) = np_i(1-p_i) \)
多項分布。二項分布とは違い、各試行の結果はk個の値をとり、それぞれの値を取る確率も個別に異なる。

[ガウス分布]
\( f(x)=\frac{1}{\sqrt{2\pi \sigma ^2}} \exp \left( -\frac{(x-\mu)^2}{2\sigma ^2} \right) \)
\( E(x)=\mu \)
\( V(x)=\sigma ^2 \)
正規分布。\( \mu =0\)、\( \sigma ^2=1\)の時は標準正規分布と呼ばれる。
独立な同一の分布に従う確率変数の平均の分布は、元の分布の形状に関係なく正規分布に収束する(中心極限定理)。
\( \pm 1\sigma\)以下の範囲に含まれる確率は68.27%
\( \pm 2\sigma\)以下の範囲に含まれる確率は95.45%
\( \pm 3\sigma\)以下の範囲に含まれる確率は99.73%

[ポアソン分布]
\( f(k)=\frac{\lambda ^k}{k!}\dot e^{-\lambda} \)
\( E(x)=\mu \)
\( V(x)=\mu \)
与えられた時間中に平均\(\lambda \)回発生する事象が、ちょうど\(k \)回発生する確率。
\(\lambda \)が十分大きいならば、平均\(\lambda \)、標準偏差\(\sqrt{\lambda} \)の正規分布はポアソン分布の近似になる。

二項、ベルヌーイ、ポアソンは離散分布。
正規分布、t分布は連続分布。

応用数学 – 線形代数 – 特異値分解

最も広く使われる行列の分解方法は二つ — 固有値分解と特異値分解。

[固有値分解]
\( {\it Av} = \lambda {\it v} \)
\( {\it v} \)が固有ベクトル、\( \lambda \)が固有値。\( {\it A} \)は正方行列。

\( \Lambda \)を\( n\)個の\( \lambda \)を対角に配置した対角行列とし、\( {\it Q}\)を\( {\it A} \)の固有ベクトルから成る直交行列とすると、
\( {\it AQ} = Q\Lambda \)
であるので、右から\( Q\)の逆行列をかければ、
\( {\it A} = Q\Lambda Q^{-1} \)
となる。\( {\it A}\)をk乗する際は
\( {\it A}^k = Q\Lambda Q^{-1}Q\Lambda Q^{-1}…Q\Lambda Q^{-1} = Q\Lambda ^kQ^{-1} \)
となる。\( \Lambda \)は対角行列なのでk乗が計算しやすいため、\( {\it A}\)のk乗が比較的容易に計算できる。

[特異値分解]
任意の行列をユニタリ行列と対角行列に分解する。
\( \it{A=U\Sigma V^*} \)
\( \it{\Sigma}\)の対角成分で0でないものを特異値という。

– ユニタリ行列 : \( {\it U^* U} = {\it UU^*} = {\it I} \)
\( \it I\)は単位行列、\( {\it U^*}\)は随伴行列 (\( \it {U^*} = \it{\bar{U^T}} \))

固有値分解は正方行列のみ。特異値分解は長方行列にも定義可能。
\( \it{A} \)が対称行列であれば\( \it{A} \)の固有値と特異値は一致する。

E資格試験対策 – 教科書

JDLA認定 E資格試験対策のための教科書です
JDLAからはいくつか推薦図書が提示されていますが、私は下記の本を買いました

Ian Goodfellow著
深層学習 (Deep learning)
ASCII dwango

近くの書店に在庫がある事を確認して出かけていったのにありませんでした
店舗にある在庫検索マシーンで再度検索すると在庫ありになっていましたので、秒速で売れた事になります(予測)

和訳版ですので、ところどころ読みにくいところがあります
また専門的すぎて(細かすぎて)実装するだけであればここはあまり詳しくなくてもいいのでは?と思うところもあります
一方でこれを一通りやっておけば、E資格で60点とるくらいの情報は十分得られると思いますので、受験するには必携かと思います

Deep Learningのモデルを実装するには、こちらの本も定番です。

斎藤 康毅 著
ゼロから作るDeep Learning, Pythonで学ぶディープラーニングの理論と実装
O’Reilly

サンプルコードもGitHubからダウンロード出来るようになっています。この本に書いてある通りに読み進め、手を動かして実装していけば、一通りのディープラーニングモデルが構築できます。素晴らしい。

ディープラーニングの凄いところは、特徴量やモデルの構築まで機械に学習させる事でユーザーは入力と教師データさえ用意すれば何となく動くものが作れてしまう事ですよね。
しかしながら、これを現場でいかに活かして行くかは、まだまだ一筋縄ではいかないようです。

E資格試験対策

2012年ごろから急速に注目を浴びるようになった機械学習 (AI)
最近では本当に至る所をでその単語を聞くようになりました

同時に良く耳に入ってくるのは、
「日本は機械学習分野で国際的に大きなおくれをとっている」
です
まあ事実なんでしょうが、そう思ったら自ら率先して投資するなり勉強するなりすればよいと思うのです
何故人は、現状を嘆いていれば、いつか誰かが解決してくれると思うものなのでしょうか

そんな中で、現状を打破すべく結成されたのが、一般社団法人 日本ディープラーニング協会です
日本におけるディープラーニングを中心とする技術による日本の産業競争力の向上を目的とされています

ホームページはこちら
一般社団法人 日本ディープラーニング協会

本協会が認定する資格が2つ
G(ジェネラリスト)検定とE(エンジニア)資格です
私はエンジニアですので、E資格を受験しようと思っています

とは言え私は素人さんですから、テストのシラバスを眺めながら、イチから勉強しているところです
なかなか更新は進みませんが、勉強した事を少しずつまとめていく予定です
特徴としましては、専門的な議論は他所にまかせて、なるべく難しくて長い説明を、簡潔にまとめていこうと思います

テスト対策というものは、凡そ、広く浅くが効果的ですから

誤った記載などあるかもしれませんが、そういうまとめブログだとご容赦いただければと思います

…しかしこれだけ流行るのなら、私ももっと前からやっておけば良かった (小物)