図を記述するプログラム生成,Learning to Infer Graphics Programs from Hand-Drawn Images

Learning to Infer Graphics Programs from Hand-Drawn Images

f:id:e4exp:20200910084749p:plain

まとめ

  • どんなもの?
    • 手書き図をtexサブエットのgraphics programに変換するモデル.CNNで画像をspecと呼ぶ簡単な言語表現に変換し,それをもとにprogramを生成.生成されるprogramは変数バインディング,ループ,条件分岐のような構造を持つ.
    • 図 -> specと,spec -> プログラムの2段階に分かれている
  • 先行研究と比べてどこがすごい?
    • pix2code等のマークアップ言語生成に比べて,ループ等の構造を持った命令を生成できる
  • 技術や手法のキモはどこ?

    • 画像-> spec
      • Neurally GUided Procedural Model(Sequential Monte Carlo推定による訓練手法.プログラムの制御を学習する)とAtten-Infer-Repeat(画像を構成要素に分解)のアイデアを組み合わせている.また,spatial transformer(コマンド生成時に画像の異なる領域に注目できる)も使用
      • 入力画像をCNNを通したもの,およびspatial transformerで部分に着目した特長のそれぞれをMLPを通してspec(コマンド)に変換.変換されたspecはレンダリングして入力画像との差分を測る,またはさらなる改善として,入力画像とレンダリング画像からそれらを描画した元の2つのspec間の距離を予測するようなCNNを訓練し,これを誤差とする.
    • spec -> プログラム
      • specを満たしながら,短いプログラムを探索するため,sketchという最適化ツールを使用.
      • sketchでは探索に非常に時間がかかるので,サーチポリシーという制約を設ける(ex. 小さいプログラムから探索,loopのないものを優先,など).bias-optimal search algorithmを用いて探索する.具体的には,図とその解プログラムの学習コーパスを作成し,specを条件として解プログラムを発見するのにかかる時間を最小化し,その探索にかけられる時間を最大化するような誤差関数で小さいモデルを訓練
  • どうやって有効だと検証した?

    • spec生成はSequential Monte Carlo + NNやLSTM等のアブレーションスタディ,プログラム生成はsketch, deep coder, oracle(正解データ)との比較
  • 議論はある?
  • 次に読むべき論文は?

    • Daniel Ritchie, Anna Thomas, Pat Hanrahan, and Noah Goodman. Neurally-guided procedural models: Amortized inference for procedural graphics programs using neural networks. In NIPS, 2016.
      • 提案手法でspec推定に使用している
    • SM Eslami, N Heess, and T Weber. Attend, infer, repeat: Fast scene understanding with generative models. In NIPS, 2016.
      • 提案手法でspec推定に使用している
    • Max Jaderberg, Karen Simonyan, Andrew Zisserman, et al. Spatial transformer networks. In NIPS, 2015.
      • 提案手法でspec推定に使用している
    • Arnaud Doucet, Nando De Freitas, and Neil Gordon, editors. Sequential Monte Carlo Methods in Practice. Springer, 2001.
      • spec推定で,ネットワークの出力をsequential monte carloのproposalとして扱っている
  • その他