◆ CNTK ( Microsoft Cognitive Toolkit ) 2.2 の Python API 解説第7弾です。
今回は強化学習がテーマで、OpenAI gym の CartPole を題材にして DQN と Policy Gradient アプローチで CNTK で実装します。
◆ CNTK v2.3 リリース
本題に入る前に、(もうご存知の方も多いかと思いますが、)
待望の CNTK v2.3 が 11月22日にリリースされました ので、簡単にリリースノートを見ておきましょう :
このリリースのハイライト
- より良い ONNX サポート。
- 分散トレーニングにおけるより良いパフォーマンスのために NCCL2 へスイッチしています。
- 改良された C# API。
- OpenCV は CNTK をインストールするために必要ではありません、それは Tensorboard 画像特徴と画像リーダーのために必要なだけです。
- 各種パフォーマンス改良。
- ネットワーク最適化 API の追加。
- スパースのためのより高速な Adadelta。
チュートリアルも新たに追加されていました。是非トライしてみてください。
◆ さて、強化学習は行動主義心理学により触発された機械学習の領域です。
ソフトウェア・エージェントが報酬を最大化するために、与えられた環境においてどのように行動を取るべきかに関心を寄せます。
ある種の機械学習の設定では正解ラベルへのアクセスを持ちませんので、教師あり学習のテクニックに頼ることはできません。
けれども、相互作用可能な何かがあり、そしてそれが教えてくれる何某かのフィードバックを得られる場合には、
動作をどのように改良するかを学習するために強化学習が利用できます。
定番ですが題材として OpenAI gym シミュレーターからの CartPole 環境を使用します。これはカートにポールのバランスを取ることを教えます。
詳細 : CNTK 2.2 Python API 解説 (7) – 強化学習の基礎: DQN, Policy Gradient / CNTK v2.3 リリース