Paper: https://arxiv.org/abs/1803.08475
このリポジトリはWouterらの論文に多少の改変を加えて実装したリポジトリです。具体的には提案されているTransformerのアーキテクチャに含まれるBatchNormalizationをLayerNormalizationに変更しこちらの論文で指摘されているTransformer特有の学習開始時の不安定性に対処するためにPre-LayerNormalizationを採用しています。
これにより学習開始時に非常に小さい学習率で事前学習する必要がなくなります。
特に引数などを指定せずに
python reinforce_main.py
を実行すれば学習が開始されます。
tensorboard --logdir ./logs/
高速な学習のため学習及びデモはノード数14で行われる設定になっています。
単位正方形の中に一様乱数によって生成された14のノードを巡回する経路の経路長を最小にすることがこのデモの課題です。
学習がうまくいけばonline_rewardは4を切ることになります。
実際に学習したネットワークを使って作成した経路を確認するためには
python reinforce_demo.py
を実行すれば図のような結果が得られるはずです。