音素ごとにMFCCの範囲を決めるという話をします。
十二次元空間を扱う前に、まず、一次元の話からします。
一次元空間上で範囲を決めるときには、
一番簡単なのは下の図のように下限と上限を決めてしまうことです。
ただ、この場合、少しでも範囲をはみ出すと、
範囲外と認識されてしまうので、
下の図のように確率の関数にします。
図に示したのは、ガウス分布と呼ばれる確率の関数です。
下の図のように、入力がaの値のとき出力の確率はbの値となります。
ガウス分布の式は一次元の場合は下の式のようになります。
ただし、σは分散、mは平均、xは入力を表すものとします。
この上の式を単純に多次元に拡張すると、
下の式のようになります。
ただし、Kは入力の次元を表すものとします。
二次元の場合を図にすると、以下のような感じになります。
山が一つある感じです。
先ほど単純に多次元に拡張した式を行列表現すると、
下の式のようになります。
ただし、xは入力ベクトル、Σは分散行列(対角成分以外は0)、
mは平均ベクトルを表すものとします。
この式の分散共分散行列の対角成分以外の成分を埋めたものが、
多次元のガウス分布となります。
ただし、一つきりのガウス分布では、
範囲を決める性能が不十分であることがあるので、
いくつかを足しあわせます。
二次元の場合を図にすると下のようになります。
足しあわせた場合の式は下のようになります。
ただし、Nはガウス分布の数、a_nは重みを表し、a_nの合計は1とします。
このような感じで、MFCCの範囲を決めています。
大雑把にいえば、分散と平均を学習によって決める必要があります。