「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
機械学習の理論
詳細 †
情報理論 †
- 情報理論は数学を用いて「情報」の本質を明らかにする学問。
- 応用先には効率の良い情報通信や通信時の情報誤りの訂正等がある。
- ココでは機械学習の習得に必要な範囲の情報理論の習得する。
- ランダムフォレスト
ランダムに選択された説明変数のエントロピーを最小化
するような閾値を決定し特徴量の重要度を自動で算出
- マルコフ確率場
画像内のノイズ除去等に用いるグラフィカルモデルとして利用される。
自己情報量 †
- 直感的に表現するとすれば「情報の珍しさ」の値
- 「ある事象が起きた時にどのくらい珍しい事象か」という尺度
- 確率を用いて表す。
- 珍しい=確率が低い事ほど情報量が多い。
- 実際、logのグラフで見ると明らか。
- 複数の事象が起こる確率は積で計算されるが情報量は和で計算
エントロピー †
- 「自己情報量」の拡張で「事象の予想のし難さ」
- グラフは予想の難しい事象時に最大で非一様分布の方がエントロピーが低い。
- 「平均情報量」や「シャノン・エントロピー」とも呼ばれる。
- ある事象 X が起こったと分かった時に得られる情報量の期待値を指 す。
- 複数の事象が起こる確率は積で計算されるが情報量は和で計算
- それぞれの事象の起こり易さを足し合わせた情報
- それぞれの事象の起こり難さの重み付けを行った上で計算
- 結合エントロピー
H(x, y) = Σ -P(xi,yi)logP(xi,yi) = -Σ P(xi,yi)logP(xi,yi)
x,y x,y
- 条件付きエントロピー
H(x|y) = H(x, y) - H(y)
ダイバージェンス †
- 「相対エントロピー」や「KLダイバージェンス」「KL情報量」とも呼ばれる。
- 異なる確率分布P(x), Q(x)にどれだけの差があるのか?を考える情報量の1種。
- 二つの確率分布が一致するなら値は 0 になる(確率分布の差なので確率分布が同じなら0)。
- この式は機械学習を行うときの損失関数として用いられる。
- その際、この式の第1項が常に一定だから第2項のみを用いる。
※ KL:カルバック・ライブラー
例題 †
細工されたサイコロの出る目の確率分布表
確率変数 X | 1 | 2 | 3 | 4 | 5 | 6 |
確率 P | 0.5 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 |
確率変数 Y | 0(X1≠X2) | 0.5 | 0.25 | 0.09 | 0.09 | 0.09 | 0.09 | 0.09 |
1(X1=X2) | 0.5 | 0.25 | 00.1 | 00.1 | 00.1 | 00.1 | 00.1 |
※ ビットでの回答になる場合は、logの底は2となる。
- X=4の情報量
log(1 / 0.1) = -log0.1
- エントロピー(H(Y))
= - (0.5 * log0.5)*5
統計的機械学習 †
- 機械学習のうちデータの確率的な生成規則を学習するもの
- 統計的機械学習のモデルは統計モデル・生成モデルとも呼ばれる。
統計モデル †
- 複数の変数同士の関係を定量的に表す。
- 統計モデルでよく使われるのは回帰モデル
確率的生成モデル †
- 生成モデル
データがある、ということは、そのデータを生成する原因がある、と考える。
- 確率的モデル
ある確率密度分布があって、その分布に従い、データが生まれてくるような、モデル。
識別関数、識別モデル、生成モデル †
機械学習で分類問題を解く場合、
- 識別関数
確率は関係なく、入力空間に識別面を直接引く方法
- パーセプトロン(PPN)、サポートベクターマシン(SVM)などは、線形判別関数を使用して分類する識別的アプローチ。
- 確率値が出力値でないので、クラスの評価がどの程度正しいか、間違っているのか知ることができない。
- SVMでは入力データの超次元空間に識別境界を描きクラスの分布を把握できる。
- 識別モデル
事後確率P(Ci|x)を直接モデル化する方法、識別の部分のみに確率の考え方が導入されたモデル。
- 条件付き確率(Xが観測されたときクラスYが実現する確率)を学習する。
- ロジスティック回帰分析ではSigmoid関数を使用している。
- DNN、CNNなどSigmoid関数、Softmax関数を使用している。
- 分類がどのように間違っているのかを知るすべが無い。
- 確率に基づいた識別境界を設定することが可能になる。
- 生成モデル
事前確率P(Ci)と確率密度関数P(x|Ci)をモデル化し、
それをベイズの定理を使って事後確率P(Ci|x)を計算し、
最も事後確率が高いクラスを識別したクラスとする方法
- 何らかの分布に基づいてデータが生成されると考える。
- 入力データの分布(生成モデル)を学習する。
- データは背後にある確率分布から生成されたものと仮定。
- データの背後にある同時確率分布は生成モデルと呼ばれる。
- 与えられているデータから未知の生成モデルを予測(モデル化)できる。
- 学習と生成の間の2つの確率分布間の差異を数理最適化で最小化するなど。
- 教師なし学習(外れ値検知、画像生成)などにも応用できる。
- 生成タスクとは
- 訓練データの分布を推論し、同じ分布のデータを生成する。
- 潜在的空間を学習することによって、様々な表現を取ることができる。
- 生成モデルにより(クラスに属する)擬似的データを生成できる。
- その他にも、ノイズ除去、異常検知などを行うことができる。
- 一方で、数学的な操作が面倒など、気楽に使えないデメリットもある。
- 基本的にナイーブベイズモデルなど、ベイズモデルは総じて生成モデル。
数理最適化 †
- 機械学習の最適化とは「経験損失最小化」で純粋な最適化とは異なる。
- 本来は訓練データではなくデータ集合全体
- 真のデータ分布を訓練データ集合の分布に置き換え損失関数の最小化にすり替える。
- 実用的な損失関数は簡単に最適化できないものもある。
- このため最適化が容易な代理損失関数を最適化する。
- 早期終了があるという点でも一般的な最適化と異なる。
- 以下のような方法で関数(的なモノ)のパラメタの更新(学習)をおこなう。
最小二乗法 †
サンプル・データとの誤差が最小になる平均値を探す。
最尤法 †
- サンプル・データが得られる確率(尤度)が最大になる平均値を探す。
- 最尤推定においては、ダイバージェンスの最小化を目的関数とする。
独立同時分布仮定 †
(IID仮定)
- 学習データに対して置かれた仮定。
- 各データのサンプルが互いに独立
- 訓練データとテストデータが同一の分布に従う
- 訓練データと検証データを同じモデルで扱うことができる。
- ただし、コレによって過学習が発生し得る。
参考 †
人工知能(AI)のモデル? †