人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。パラレルデータの作成(2015/3/10)の続き。今回は、いよいよ声質変換モデルを混合ガウスモデルで学習しよう!と思ったのだけれど、その前にscikit-learnのGMMライブラリの使い方を簡単にまとめることにした。本格的に使う前に簡単なデータで使い方を確認しておこうというのが趣旨。scikit-learnは最近使い始めたので使ったことがない機能がまだたくさんある。混合ガウスモデル(GMM)GMMは、データxの生成される確率を複数のガウス分布の重み付き和で表すモデルである。すべてのkについて足し合わせると1になる。GMMの学習は、データセットXを用いて、尤度がもっとも高くなる混合係数と平均ベクトルと共分散行列を推定することを指す。GMMでは、混合係数と平均ベクトルと共分散行列がパラメータに当たる。ガウス分布の個数Kは自分で決め打ちする必要がある(これも推定する方法あるのかな?)。その最尤推定は、GMMの場合、解析的に解けないのでEMアルゴリズムという繰り返し最適化手法を使いましょうという流れになる。以前、PRMLの勉強(2010/8/29)をしていたときに混合ガウスモデルの学習をEMアルゴリズムで解く記事を書いたことがあった。今回は、自分で書いたアルゴリズムではなく、scikit-learnの混合ガウスモデルを学習するライブラリを使って同じ結果になるか確認してみたい。PRMLのサンプルデータ今回は、PRMLでも使われていたfaithful.txtのデータを使って確認しよう。散布図を書いてみるとデータは2つの山にわかれていることがわかる。ガウス分布が2つあればうまくモデル化できそうなのでK=2としてGMMを学習する。は行方向にサンプル、列方向に特徴量が並んだ行列形式で表される。n_componentsはガウス分布の個数Kのこと。次に、gmmオブジェクトを生成し、fit()に学習データを与えるだけでパラメータ推定できる。推定したパラメータは、gmmオブジェクトに格納されている。混合係数はweights_、平均ベクトルはmeans_、共分散行列はcovars_に格納される。0.18407749]]]出力されたグラフはこれ。平均ベクトルと共分散行列はデータに重なり、きちんと推定できていることがわかる。前に自分で実装した結果とも同じになった。やったね!次回は、いよいよパラレルデータを使って声質変換モデルをGMMで学習してみよう。»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。