Deep Energy: Using Energy Functions for Unsupervised Training of DNNsを読んだのでメモ
はじめに
Deep Energy: Using Energy Functions for Unsupervised Training of DNNsを読んだのでメモ.
気持ち
データセットの規模をスケールさせたいというモチベーション.ほぼほぼ完璧なアノテーションが自動で作れればデータセット作成に人手がほぼいらなくなりスケールさせることができ,ラベル付きデータが増えれば教師ありで学習したモデルも強くできる.そのためラベルなしデータを使ったアノテーション生成モデルの学習手法を提案するというもの.
今回はエネルギー関数を使ってsegmentationのモデルを学習するが,そもそもアノテーションではなくそのエネルギー関数を使ってsegmentationを行えばいいのではという疑問がある.この疑問に関する答えとしては実用においてはエネルギー関数を使ったsegmentationは実行速度がネックになる点が一つ.もう一つは学習ベースの方がデータごとの細かな正則化を考える必要がない点があげられる.
Deep Energy
ここでのゴールとしてはデータが与えられた時にと真のラベルと一致させること.一般的なエネルギー関数を使ったsegmentationはエネルギー関数をとすると次の最適化問題として記述できる.
この定式化は逆問題(超解像やノイズ除去など)の課題で広く用いられているものと同一で,上記で定式化された問題を効率的に解くことのできるモデルを学習するのが目標.そこでモデルのパラメータをとするとはと書くことができる.さらにラベルなしの学習データセットをとすると,モデルの学習は以下の最小化問題としてかける.
上記定式化は逆問題において広く適用できるが,この論文では以下の2つの応用について考える.
Seeded Segmentation
応用の一つとして,ユーザーが与えたseed(前景か背景かを点や線描きで示したもの)と画像を入力として出力がsegmentationとなるようなモデルの学習について考える.
まず,画像を重み付き無向グラフとして考える.ただし,は頂点で画像におけるピクセルを示し,はエッジを表し,今回は4近傍でのピクセルの接続を考える.エッジの重みはで与えられ,はグレースケール画像のピクセルの輝度値,はスケールパラメータとして定義される.
ここでを各ピクセルがクラスに所属する確率とし,をクラスに所属するseed画像とする(論文でが使われていたから同様の表記にしたが,おそらくではなく0,1の2値かと).そこでを全クラス数に関してvectorizedしたものとすれば目的関数は以下のように記述できる.
ただし,とする(クラスごとのseedで与えられた前景領域のピクセル数を対角成分に持つ行列).またはグラフラプラシアンを表す(ここでは).右辺第1項はsmoothnessを表し,第2項はseedラベルとの誤差を表す.上記関数を目的関数としてモデルを学習していく.論文では上記の目的関数をCNNの出力の形に合わせて書き換えていたが,基本的に何も変わらないので割愛.
Image Matting
もう一つの応用として,前景物体のピクセルのopacityとcolorを決定することによって背景と切り分けるImage Mattingの課題を考える.入力をRGB画像とし,前景画像を,背景画像を[etx:\mathbf{B}]とする.すると各ピクセルは以下のmatting equationによって記述される.
は各ピクセルのopacityを表し,alpha matteと呼ぶ.基本的にこのalpha matteを画像から推定することは不良設定問題になっている.そのためここでもseedを与えることで解くことを考える.seed画像をとすると目的関数は以下で表現される.
ここでのはラプラシアン的な行列となっていて,以下によって与えられる.
はピクセルを中心としたパッチ(ここではの領域)を表し,はパッチ内のピクセルの平均と分散,は単位行列を表す.こちらも論文にはCNN用に書き直した式が出てくるが割愛.
まとめ
データセットのアノテーション自動生成は産業応用的にも重要だなあと感じる日々.関連した研究もここ数年でかなり出てきているので色々と考えねばという気持ち.