ホーム » Dopamine » TensorFlow : Dopamine 概要

TensorFlow : Dopamine 概要

TensorFlow : Dopamine 概要 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 08/31/2018

* 本ページは、Dopamin レポジトリ の以下のページを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

Dopamine 概要

どのように (Dopamine で) 実験して Dopamine を拡張するかについてのサンプルと指針を与えます。

各モジュールに対するドキュメントを API ドキュメント のコードベースで見つけることができます。

 

ファイル構成

Dopamine は次のように構成されます :

  • agents はエージェント実装を含みます。
  • atari は、実験を実行するコードと前処理コードを含む、Atari 固有コードを含みます、
  • common はロギングやチェックポインティングを含む、追加のヘルパー機能を含みます。
  • replay_memory は Dopamine で使用されるリプレー・メモリ・スキームを含みます。
  • colab はサンプル colab ノートブックに加えて、実験結果を調べるために使用されるコードを含みます。
  • tests は総てのテストファイルを含みます。

 

エージェントを configure する

Dopamine の全体は gin configuration フレームワーク を使用して簡単に configure できます。
エージェントの各々に対して多くの configuration ファイルを提供します。

各エージェントに対する主要な configuration ファイルは同一条件での比較に対応し、そこではエージェント間で標準化されたパフォーマンス比較を与えるためにハイパーパラメータが選択されています。これらは :

これらのパラメータの裏の正確な選択についてのより詳細は baselines ページ で与えられます。

論文で以前に使用した設定に対応する configuration ファイルもまた提供します。これらは :

これらの総ては Arcade Learning Environment (ALE) の決定論的バージョン、そして僅かに異なるハイパーパラメータを使用しています。

 

チェックポインティングとロギング

Dopamine は実験を遂行するための基本的な機能を提供します。この機能は 2 つの主要なコンポーネントに分解されます : チェックポインティングとロギングです。両者のコンポーネントはコマンドライン・パラメータ base_dir に依拠します、これは実験データをどこにストアするべきかを Dopamine に知らせます。

 

チェックポインティング

デフォルトでは、Dopamine は総ての反復で実験チェックポイントをセーブします : 1 訓練と 1 評価フェイズで、Mnih et al による標準的なセットに従っています。チェックポイントは base_dir 下のチェック checkpoints サブディレクトリに保存されます。高位には、以下がチェックポイントされます :

興味があれば、チェックポインティング・コード自身は dopamine/common/checkpointer.py にあります。

 

ロギング

各反復の最後に、訓練の間と (有効であれば) オプションの評価フェイズの間の両者で、Dopamine はまたエージェントのパフォーマンスを記録します。ログファイルは dopamine/atari/run_experiment.py で、より具体的には、dopamine/common/logger.py で生成され、そしてそれは iteration キー (e.g., “iteration_47”) をデータを含む辞書にマッピングする辞書を含む pickle ファイルです。

複数の実験からログデータを読む単純な方法は colab/utils.py の提供されている read_experiment メソッドを使用することです。

実験からどのようにスタッツをロードしてそれらを提供された baseline 実行に対してプロットできるかを示すために colab を提供します。

 

エージェントを修正して拡張する

Dopamine はアルゴリズム的な研究を単純にするように設計されています。この点を考慮して、抽象基底クラスなしに、比較的フラットなクラス階層を保持することを決めました ; 単純化と使いやすさの追加された利益を伴い、研究目的ではこれで十分であることを見出しました。最初に、貴方の研究目的に適合するようにエージェント・コードを直接的に変更することを勧めます。

DQN エージェントをどのように拡張できるか、スクラッチから新しいエージェントをどのように作成できるか、そして提供された baseline に対する実験結果をどのようにプロットするかを示すために colab を提供しています。

 

DQN

DQN エージェントは 2 つのファイルに含まれます :

The DQN agent is contained in two files:

エージェントのクラスは DQN ネットワーク、更新ルール、そしてまた RL エージェントの基本的な演算 (epsilon-greedy アクション選択、遷移のストア (= storing transitions)、エピソード記録 (= episode bookkeeping) , etc.) を定義します。例えば、DQN で使用される Q 学習更新ルールは 2 つのメソッド, _build_target_q_op と _build_train_op で定義されます。

 

Rainbow と C51

Rainbow エージェントは 2 つのファイルに含まれます :

C51 エージェントは Rainbow エージェントの特定のパラメータ化で、そこでは update_horizon は 1 に設定されて uniform リプレー・スキームが使用されます。

 

Implicit quantile networks (IQN)

IQN エージェントは一つの追加ファイルで定義されます :

 

ダウンロード

全部で 60 ゲーム上の 4 つのエージェント総てのための一連のファイルを提供します。これらは総て *.tar.gz ファイルで解凍する必要があります :

  • 生ログは ここ で利用可能です
    • それらをどのようにロードして可視化するかの手順についてはこの colab を見ることができます。
  • コンパイルされた pickle ファイルは ここ で利用可能です
  • Tensorboard イベントファイルは ここ で利用可能です
    • ngrok を使用した colab から直接 TensorBoard を開始できる colab を提供します。提供されたサンプルで TensorBoard はこのようなものに見えます :

       

       
      ◇ 貴方のマシン上でこれらを TensorBoard で見ることもできます。例えば、ファイルを解凍後に次を実行できます :

      tensorboard --logdir c51/Asterix/
      

      Asterix 上で C51 のための訓練実行を表示するために :

       

     

  • 全部で 60 ゲーム上の 4 エージェントの 5 つの独立した実行のための TensorFlow チェックポイント・ファイルは下で利用可能です。Note: これらのファイルは非常に巨大で、それぞれ 15 GB を超えます。
 

以上



AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com