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

Learning to generate combinatorial action sequences utilizing the initial sensitivity of deterministic dynamical systems #60

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

Comments

@kzmssk
Copy link
Member

kzmssk commented Oct 1, 2020

RNNの初期値にシーケンス生成のバリエーションを埋め込む

論文本体・著者

解きたい問題

  • 有限オートマトン(Finite State Machine, FSM)の振る舞いをモデル化する
  • 組み合わせを含むような振る舞いのバリエーションをニューラルネットによる力学システムでモデル化することは可能か?
    • できたとしたらそのシステムはどのような性質をもっているのか?

新規性

  • Recurrent Neural Network(RNN)の隠れ層の初期状態に生成されるシーケンスのバリエーションを埋め込む
    • 決定論的カオスの初期値鋭敏性を利用する

実装

  • FSM
    1. Aからスタート
    2. 状態を受けて行動{0, 1}を選択
    3. 行動が不正(遷移先がない)でなければ次の状態に遷移。不正であればそこで終了
    4. {D, F, G}のいずれかに到達して行動1を選択するとAに戻る
  • 途中で終了しないシーケンスはA->...->{D, F, G}の3通り。Aに戻って1周とカウントすると、3周で3^3=27通りのバリエーション。この内21通りを学習データとする。
  • RNN(Jornal型)を勾配法で学習
    • 学習したRNNに時刻tにおける状態、行動から、次の時刻の状態、行動を予測する
    • 損失は予測値と正解データの二乗誤差
    • 隠れニューロン(Context neuron)の初期時刻における状態(初期値)も勾配法の学習対象とする
    • 初期値は2次元ベクトル
image
論文 Fig. 1 より FSMの遷移図

実験・議論

  • 学習済みRNNの重みを固定しまま、初期値を与えてFSMとインタラクションさせる

    • 初期値は2次元なので[0, 1]を細かく区切ってそれぞれの値での振る舞いを見る
  • シーケンスのバリエーションをどのくらい表現できているか?

    • 3周のすべての組み合わせ27通りの内、21通りのみを学習しているのにも関わらず27通りすべて3周まででカバーしている
    • 周回が増えるとhaltingが増えていくが、未学習の4周目でもほとんど全ての組み合わせをカバーできている
image
論文 Table 4 より 周回ごとのありうる組み合わせとのどのくらいを生成してカバーしうるかの割合、haltingになる割合
  • 初期値空間はどのような性質をもっているか?
    • 1周したときの状態({D, F, G, halting})で色分け
    • 1周目(Cycle 1)のときのhaltingでない領域が2周目では小さい領域にさらに分割されており、3、4周目でさらに小さく分割されている
    • FSMの行動生成における組み合わせバリエーションは初期値のフラクタルな構造でコーディングされている
image
論文 Fig. 4 より 初期値と1周ごとの最終状態を色分けした図
  • RNNのダイナミクスがどうなっているのか?
    • 学習途中のRNNの隠れニューロンの振る舞いをphase plotでみた
    • 同じ重みでも初期値によってストレンジアトラクターやリミットサイクル(点の数が少ない)になったりする
    • 関連研究によるとFSMの確率論的な分離の振る舞い(branching)を決定論的システムでコーディングする場合、カオスの性質を持つ必要がある
      • 対して実験結果ではリミットサイクルになっていたりするのはなぜ?
      • 49900iteration(Fig.4の(d))の振る舞いをみてみたら、リミットサイクルの軌道へと向かう長いTrasientな軌道に組み合わせ表現がコーディングされていた
image
論文 Fig. 6 より さまざまなIterationにおける隠れニューロンの平均値のphase plot。(e)は同じiterationだが初期値が異なる

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

  • Generative Adversarial Network(GAN)の潜在空間の解析にも役立ちそう
    • 多層のGANによる画像生成をこの枠組みに当てはめると初期値が潜在表現に相当するのではないか
    • 潜在表現のDisentangledな性質を考える際に生成される画像や損失が安定していても、潜在表現空間の性質は学習中に大きく変化することがありうるのではないか?

関連論文

@kzmssk
Copy link
Member Author

kzmssk commented Oct 1, 2020

やってみた

実験方法

  • データセット:論文と同じ
  • モデル
    • Elman型RNN 隠れ層30次元 活性化関数はSigmoid
    • 初期値は2次元 初期時刻のみFully-connected layerで30次元に拡大
    • Optimizer: AdamOptimizer(lr=0.001)
image
学習曲線 横軸は学習ステップ(Iteration) 縦軸はロスの平均値
  • 初期値空間と隠れニューロンのPhase plotを見てみた

結果

  • 左:初期値のマップを可視化
    • 初期値空間を100x100分割
    • それぞれのピクセルを<D:赤、F:青、G:緑, halting: 黒>で塗った
  • 中:隠れニューロンのPhase plot
    • 左の初期値マップを作図する際の隠れニューロン状態の平均値をプロット
    • Average 1: 時刻t, Average 2: 時刻 t+1
    • 色はそのシーケンスが{D, F, G}のどれで終わるかに対応している
  • 右:初期値マップにおける{D, F, G}の割合
    • 横軸はFSMの周回数
image
50k Iterationのときの重みを使った結果
  • 初期値空間のSensitivityを可視化
     * 初期値空間を100x100のセルに分割
     * すべてのセル(=初期値)について100ステップ生成
     * 生成時は前時刻の予測結果を次時刻の入力とした(Closed loop)
     * あるセルと、その1セル近傍との行動予測の二乗誤差を正規化した
image
50k Iterationのときの重みを使った結果
  • データを減らしてみた
    • 学習データを21 -> 5本に減らした
    • haltingが全くなくなった(リミットサイクルになっている?
    • 収束する初期値マップは一見、一様乱数のようだが偏りがある
image
学習データを減らした場合の結果

感想

  • 論文と同様に初期値空間にフラクタルな構造がみられた
    • 論文の初期値マップはFSMとのインタラクションを行うOpen loopだった
    • Closed loopで生成した場合もOpen loopのマップと似たようなパターンがみられた
  • データを減らすことでhaltingがなくなったのは意外だった
    • 教師データの選択にもRNNのダイナミクスに影響がありそう

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