Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Growing Neural Cellular Automata #61

Open
kzmssk opened this issue Oct 6, 2020 · 1 comment
Open

Growing Neural Cellular Automata #61

kzmssk opened this issue Oct 6, 2020 · 1 comment

Comments

@kzmssk
Copy link
Member

kzmssk commented Oct 6, 2020

セルオートマトンの世代更新をRNNをつかって微分可能にする

論文本体・著者

上記リンクに遊べるデモあり

解きたい問題

  • 多細胞生物のMorphogenesis(形態生成)には分からないことが多い
    • ロバスト:外乱に対して頑強である(例:トカゲの尻尾が再生する
    • Plasticity(可塑性)を持っている
      • 個々の機能はシンプルなのに集まって複雑な機能をもつ器官となる(例:眼
  • ロバストかつ可塑性をもつような多細胞の自己組織化を調べたい

新規性

  • ニューラルネットを使ってセルオートマトンの自己組織化をモデル化
    • 一般的なセルオートマトン(Cellular Automata, CA)の状態は離散だが、連続値とする
    • 世代の更新ルールを微分可能な計算で書くことで勾配法を適用できるようにする

実装

  • セル群の形態=画像表現とする

    • 1つのセルが画像ピクセルに相当。16次元(RGBA + 12次元の隠れ状態)を持つ。
    • Alphaチャンネルは透過の他、セルの生存度合いを示す特別な値として用いる
  • セルの世代交代ルール

    • あるセルの1セル近傍の状態に畳み込み演算を行いPerception Vectorを得る
      • 重みはSobel filter, identity filterで固定
    • Pereception Vectorを結合してDense layer2層を通し状態の更新分(図中のδS)を得る
    • Stochastic update: ランダムに世代交代を起こすセルを選ぶ。つまりδSをランダムにドロップアウト
    • Alive masking: Alpha(生存度合い)が低いものを強制的にKillする(状態を0にリセット)
  • 上記の世代交代ルールはConvoloution層+Dense層からなるresidual connection、dropout付きRecurrent Neural Network(RNN)として捉えることができる

image
論文図より
  • 世代交代ルールの更新
    • セルの初期化:すべて0でリセット、中央の1つのみ状態を1にする(seedになる)
    • [48, 64]の範囲でランダムステップ長、世代交代を繰り返す
    • 全てのセルの初め4次元(RGBA)と教師画像データとの二乗誤差をとってBack propagation through time(BPTT)
      • この実験では教師画像はemoji画像(1つの学習につき1種類)

実験・議論

  1. シンプルなBPTTの適用
    • 教師画像の表現が生成されるように学習できるが、そのまま世代交代を繰り返すと発散し不安定
image
論文図より
  1. 初期状態の敵対的なサンプリングによる安定化

    • 教師データの表現に収束するようなアトラクタにしたい
    • 最初の学習では初期状態を毎回同じ表現にしていたが、前Iterationの生成結果をプールしておき初期状態として使う
    • プールからの初期状態サンプリングは学習ロスが大きいものを優先的に使う
    • 長いステップ数世代交代をしても形を安定して保てるようになった
  2. 欠損に対するロバスト性の向上

    • 形は安定するようになったが、消しゴムで消すようにセル群の一部を強制的に書き換える(消しゴムで消す)と元の形に戻れなくなる
    • 初期状態のサンプリングに加えて、一部を消すData augumentationを行う

読んだ中での不明点などの感想

  • 2つ目以降の実験はTruncated BPTTに相当しており、初期状態データのサンプリングやノイズ負荷は他のSequentialな生成タスクに使えそう
    • 強化学習における"Distributional shift"との関係しているかも
  • 背景で目指しているような形態の発生やロバスト性の獲得を再現するために教師画像を使うのはありなのか?
    • なぜ教師画像が必要になるのかの実装面以外での議論が欲しかった

関連論文

@kzmssk
Copy link
Member Author

kzmssk commented Oct 6, 2020

やってみた

実験方法

  • 論文の実験1(Learning to grow)を再現
  • 64x64個のセルで「🤔」の画像を学習
  • その他の設定は論文と同じ
  • 学習が不安定

result2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants