ichou1のブログ

主に音声認識、時々、データ分析のことを書く

確率分布の推定

これまで、モデルを表現するための要素である「確率分布の形」(確率密度関数)が分かっているものとして考えてきた。

確率分布の形が分からないケースを考えてみる。
(現実世界で推定しようとする対象は、こっちの方が多いと思われる)

以前、多変量混合正規分布のパラメータ推定の際に使った3000個の2変量データがあるとする。
f:id:ichou1:20181117082202p:plain

以下のことが分かっているので、対数尤度関数を決められた。

  • 混合分布であり、混合数は2
  • 各分布は正規分布に従う

ここで、(混合分布ではない)多変量正規分布と仮定してたらどうなるか。

3000個の標本の基本統計量を求めると以下のとおり。

# 平均
mean(data[,1])  # 変量x
[1] 3.827617
mean(data[,2])  # 変量y
[1] 5.80732

# 標本分散
variance(data[,1])  # 変量x
[1] 5.8918
variance(data[,2])  # 変量y
[1] 8.044347

# 標本共分散
covariance(data[,1],data[,2])  # 変量xと変量y
[1] 2.895581

これを最尤パラメータとして、標本の対数尤度を求めてみると(前回作った自作関数を使用)、対数尤度は「-14009.41」

log_likelihood_Bivar_norm(c(3.827617, 5.80732, 5.8918, 8.044347, 2.895581), data)
          [,1]
[1,] -14009.41

一方、「2変量混合正規分布(混合数2)」としての標本の対数尤度は「13616.7956」
f:id:ichou1:20181117083137p:plain

標本からモデルを決めるときは、対数尤度が最大になるような分布を選べばよい。

分布を推定するには大きく3つの方法に分けられる模様。

  1. パラメトリックモデルを用いる手法(モデルを関数型と仮定して、関数のパラメータを調整)
  2. ノンパラメトリックモデルを用いる手法(モデルを関数型と仮定しない)
  3. セミパラメトリックな手法(モデルを関数型と仮定、パラメータの数を系統的に増やせるようにする)

混合分布モデルや階層型ニューラルネットワークは、3つの手法に該当。

(参考サイト)
確率密度分布の推定

音声認識で言うと、出力確率を前者に当てはめたのが「GMM-HMM」、後者に当てはめたのが「DNN-HMM」


続いて、モデルが決まった後の話。
ある点についての確率密度を求めたいとする。

左図が混合分布モデル、右図は混合分布ではないモデル。
f:id:ichou1:20181117095457p:plain

2つのモデルに対して、任意の変量xとyを与えたときの確率密度。
f:id:ichou1:20181117110126p:plain

x=3、y=5で誤差が大きくなっている(混合分布の2つの山に挟まれる部分)
混合分布モデルでは確率密度が「0.0133」になる点が、混合分布ではないモデルにおいては「0.0238」と確率が高くなっており、想定とは違う方向に「尤もらしい」を押し上げるように作用している。