🔙 Back to Top
計画
- [1704.07926] From Language to Programs: Bridging Reinforcement Learning and Maximum Marginal Likelihood
- 再実装する
- これは実質、自然言語から (単純な) プログラミング言語への翻訳とみなせる
- Interpreter が Oracle
- [1706.05125] Deal or No Deal? End-to-End Learning for Negotiation Dialogues
- 初めに人間の模倣をする事前学習
- Interpreter は互いに持ち合う
提案テーマ
- 人工言語を作る.
- 文法は LSTM でトークンの列を吐かせるだけで構成したいという制約のために大変簡単にする.
- 言語の解釈は [2] と同様に、仮想世界に対する操作でいい.
面白さ
- ゴールは2人が同じ解釈を持つこと
- Aさんが言いたかったことをBさんも正しく解釈できること
- これを以って言語が完成したと言う
- ただし2人は発言以外でコミュニケーションをしない.
ただこのゴールだと、NOP (なにも操作しない) といった単純な解釈に落ち着いてしまいそう (縮退). 単純のために発言はただただランダムなものをと考えてたが、言おうとしたことが在ってから、発言させることにする.
世界の状態を \(\mathrm{World}\) とする. 操作前の世界と後の世界の組みから発言をする.
生成系: \[G: \mathrm{World} \times \mathrm{World} \to Sentence\]
解釈系とはまさにこの逆写像に相当する: \[I: Sentence \to \mathrm{World} \to \mathrm{World}\]
学習方法
エージェントとして Aさんと Bさんとを用意する:
適用に用意した \(w_1, w_2 \in \mathrm{World}\) について、Aさんの発言 \(G_A(w_1, w_2)\) を生成する.
- 意図通りに自分自身が発言できていること
- \(I_A(G_A(w_1, w_2)) \approx w_2\)
- ここは end-to-end に NNs を更新して学習できる
- 意図通りに相手が解釈してくれること
- \(I_B(G_A(w_1, w_2)) \approx I_A(G_A(w_1, w_2))\)
- 或いは \(I_B(G_A(w_1, w_2)) \approx w_2\)
- ここは強化学習なりが出来たらいいな
- ここも end-to-end にしてしまうと面白みが半減する