先日、TokyoWebminig#49にて発表させていただいたので、その時のことを書こうと思います。
階層ディリクレ過程とマルコフ確率場を利用した教師なし画像領域分割
画像領域分割問題をクラスタリング問題として解く場合に用いる確率モデルの提案です。
画像をマルコフ確率場という確率モデルを使ってモデリングしました。事前分布に階層ディリクレ過程を導入し、ノンパラメトリックモデルとして定式化しています。
資料はこちら。
以下詳細です。
マルコフ確率場
画像は空間的な依存関係を持つデータです。隣り合うピクセルの出力(色や輝度など)は似ています。
領域分割を解く際も、この性質を利用しない手はありません。
マルコフ確率場は格子状に広がる無向グラフで、エッジの存在する近傍同士でのみ依存関係を持ちます。結果として、隣のピクセルと同じ領域に属しやすくなるような力がかかります。
ディリクレ過程
画像領域分割問題では、1枚の画像を何個の領域に分割するかが課題になります。2~3分割で済むものから20以上の領域が必要なものまで、画像によって様々です。
ディリクレ過程を導入すると、領域数をデータから自動的に求めてくれます。
わざわざ手で領域数を入力する必要がないので、非常に便利です。
モデルの話題からは逸れますが、ディリクレ過程は連続分布を離散分布に変換する操作です。定義から入ろうとすると意味が分からないですが、結局は離散分布を生成することしかやっていません。
ディリクレ過程によるノンパラメトリックモデルに興味のある方がもしいれば、事前分布が連続ではなく離散であることで得られる効果を徹底的に考え抜くことが、ディリクレ過程混合モデルの理解につながるのではと思います。
階層ディリクレ過程
ディリクレ過程事前分布モデルはは画像1枚に対するモデルでしたが、階層ディリクレ過程事前分布モデルは画像複数枚(画像データセット)を表現するモデルです。
画像データセットは似た様な画像を複数枚含んでいることが多いです。街の画像なら大抵人や車が写り込んでいますし、海の画像は海や砂浜などのパーツで構成されています。
撮影場所や時間帯が画像に影響すると考えると、画像データセットの画像は撮影条件である程度グルーピングできそうです。
このようなデータをgrouped dataと呼ぶそうですが、grouped dataの性質を考慮する工夫が階層化です。
学習の対象が画像単体から画像データセットになったので、ディリクレ過程も階層化して階層ディリクレ過程になったのである。ということです。
階層ディリクレ過程事前分布マルコフ確率場
結局どういうモデルかというと、
- マルコフ確率場のおかげで空間的依存関係を考慮できます
- ディリクレ過程のおかげで領域数を自動的に決めてくれます
- 階層化のおかげで画像の撮影条件の様なばらつきを吸収してくれます
ということです。
頂いたコメントなどをいくつか
深層学習による画像認識と比較したときのメリットは何か
完全教師なし学習なので、正解画像やタグがいっさい必要ありません。
深層学習と条件付き確率場を組み合わせたモデルがあるよ
CRF as RNN
知りませんでした。かなり正確に分割できているように見えます。発想も面白いですし、気になります。
分割がうまくいく場合と失敗する場合の傾向と改善案
特徴量に色を使っているので、色が明確に異なる境界は分割できますが、色が似ているとなかなか難しいです。
色以外の特徴量を検討する必要があります。
画像をグレースケールにすると境界が見つけやすくなることがありますよ
特徴量の表現能力を大きくする為に次元を大きくすることばかり考えていたので、逆にグレースケールに落とすという発想はなかったです。とても参考になります。
所感
識別モデルがちやほやされる時代に生成モデルの話しても、興味を持ってもらえないのではと心配していましたが、実際は想像を遥かに上回る反応を頂けて驚きました。
質問コメント等くださった方、熱心に聞いてくださった方にとても感謝してます。