Pybrain-reinforcement-learning-module
PyBrain-強化学習モジュール
強化学習(RL)は、機械学習の重要な部分です。 強化学習により、エージェントは環境からの入力に基づいて行動を学習します。
強化中に相互作用するコンポーネントは次のとおりです-
- 環境
- エージェント
- Task
- 実験
強化学習のレイアウトは以下のとおりです-
RLでは、エージェントは環境と繰り返し対話します。 各反復で、エージェントは報酬のあるオブザベーションを受け取ります。 次に、アクションを選択し、環境に送信します。 各反復での環境は新しい状態に移行し、毎回受け取った報酬は保存されます。
RLエージェントの目標は、できるだけ多くの報酬を収集することです。 反復の間、エージェントのパフォーマンスは、適切に機能するエージェントのパフォーマンスと比較され、パフォーマンスの違いは報酬または失敗のいずれかを引き起こします。 RLは基本的に、ロボット制御、エレベータ、通信、ゲームなどの問題解決タスクで使用されます。
PybrainでRLを操作する方法を見てみましょう。
迷路*環境*で作業します。これは、1が壁で0が自由フィールドである2次元のnumpy配列を使用して表されます。 エージェントの責任は、フリーフィールド上を移動してゴールポイントを見つけることです。
以下は、迷路環境での作業の段階的な流れです。
ステップ1
以下のコードで必要なパッケージをインポートします-
ステップ2
以下のコードを使用して迷路環境を作成します-
ステップ3
次のステップは、エージェントを作成することです。
エージェントはRLで重要な役割を果たします。 getAction()メソッドとintegratedObservation()メソッドを使用して、迷路環境と対話します。
エージェントには、コントローラー(状態をアクションにマップする)と学習者がいます。
PyBrainのコントローラーはモジュールのようなもので、入力はステートであり、アクションに変換されます。
次に、学習者を作成します。 エージェントで使用する学習者にSARSA()学習アルゴリズムを使用します。
ステップ4
この手順では、環境にエージェントを追加しています。
エージェントを環境に接続するには、タスクと呼ばれる特別なコンポーネントが必要です。 *タスク*の役割は、環境内の目標と、エージェントがアクションに対する報酬を得る方法を探すことです。
環境には独自のタスクがあります。 使用したMaze環境にはMDPMazeTaskタスクがあります。 MDPは*「マルコフ決定プロセス」*の略で、エージェントが迷路での位置を知っていることを意味します。 環境はタスクのパラメーターになります。
ステップ5
環境にエージェントを追加した後の次のステップは、実験を作成することです。
ここで、タスクとエージェントを相互に調整できるように、実験を作成する必要があります。
今、私たちは以下に示すように実験を1000回実行するつもりです-
次のコードが実行されると、環境はエージェントとタスクの間で100回実行されます-
各反復の後、新しい情報をタスクに返し、エージェントに渡す情報と報酬を決定します。 forループ内でエージェントを学習してリセットした後、新しいテーブルをプロットします。
ここに完全なコードがあります-
例
出力
自由フィールドの色は、反復ごとに変更されます。