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