Artificial-intelligence-with-python-reinforcement-learning
PythonとAI –強化学習
この章では、Pythonを使用したAIの強化学習の概念について詳しく学習します。
強化学習の基礎
このタイプの学習は、批評家の情報に基づいてネットワークを強化または強化するために使用されます。 つまり、強化学習の下で訓練されているネットワークは、環境からのフィードバックを受け取ります。 ただし、フィードバックは評価的であり、教師あり学習の場合のように有益ではありません。 このフィードバックに基づいて、ネットワークは重みの調整を実行して、将来的により適切な批評情報を取得します。
この学習プロセスは教師あり学習に似ていますが、情報が非常に少ない場合があります。 次の図は、強化学習のブロック図を示しています-
ビルディングブロック:環境とエージェント
環境とエージェントは、AIの強化学習の主要な構成要素です。 このセクションでは、それらについて詳しく説明します-
エージェント
エージェントとは、センサーを通じて環境を認識し、エフェクターを通じてその環境に作用するものです。
- *人間のエージェント*には、目、耳、鼻、舌、皮膚などの感覚器官がセンサーと平行であり、その他の器官(エフェクター、手、脚、口など)があります。
- *ロボットエージェント*は、センサー用のカメラと赤外線距離計、およびエフェクター用のさまざまなモーターとアクチュエータに取って代わります。
- *ソフトウェアエージェント*は、プログラムおよびアクションとしてビット文字列をエンコードしています。
エージェントの用語
次の用語は、AIの強化学習でより頻繁に使用されます-
- エージェントのパフォーマンス測定-これは、エージェントの成功度を決定する基準です。
- エージェントの行動-これは、エージェントが特定の知覚シーケンスの後に実行するアクションです。
- 知覚-特定のインスタンスでのエージェントの知覚入力です。
- 知覚シーケンス-これは、エージェントが日付まで知覚したすべての履歴です。
- エージェント機能-教訓シーケンスからアクションへのマップです。
環境
一部のプログラムは、キーボード入力、データベース、コンピューターファイルシステム、および画面上の文字出力に限定された完全に*人工的な環境*で動作します。
対照的に、ソフトウェアロボットやソフトボットなどの一部のソフトウェアエージェントは、豊富で無制限のソフトボットドメインに存在します。 シミュレータには、非常に詳細な、*複雑な環境*があります。 ソフトウェアエージェントは、さまざまなアクションからリアルタイムで選択する必要があります。
たとえば、顧客のオンライン設定をスキャンし、興味深いアイテムを顧客に表示するように設計されたソフトボットは、*実際の*環境と*人工の*環境で動作します。
環境の特性
以下に説明するように、環境には複数のプロパティがあります-
- 離散/連続-明確に定義された環境の状態の数が限られている場合、環境は離散的であり、そうでない場合は連続的です。 たとえば、チェスは個別の環境であり、運転は継続的な環境です。
- 観測可能/部分的に観測可能-知覚から各時点で環境の完全な状態を判断できる場合、それは観測可能です。それ以外の場合は、部分的にしか観察できません。
- 静的/動的-エージェントの動作中に環境が変化しない場合、それは静的です。それ以外の場合は動的です。
- 単一エージェント/複数エージェント-環境には、エージェントと同じまたは異なる種類の他のエージェントが含まれる場合があります。
- アクセス可能/アクセス不能-エージェントの感覚器が環境の完全な状態にアクセスできる場合、そのエージェントは環境にアクセスできます。それ以外の場合はアクセスできません。
- 決定性/非決定性-環境の次の状態が現在の状態とエージェントのアクションによって完全に決定される場合、環境は決定性です。それ以外の場合は、非決定的です。
- エピソード/非エピソード-エピソード環境では、各エピソードはエージェントが知覚してから行動することで構成されます。 アクションの品質は、エピソード自体に依存します。 後続のエピソードは、前のエピソードのアクションに依存しません。 エージェントは先を考える必要がないため、エピソード環境ははるかに単純です。
Pythonで環境を構築する
強化学習エージェントを構築するには、次のコマンドを使用してインストールできる OpenAI Gym パッケージを使用します-
pip install gym
OpenAIジムには、さまざまな目的に使用できるさまざまな環境があります。 それらのいくつかは、 Cartpole-v0、Hopper-v1 、および MsPacman-v0 です。 異なるエンジンが必要です。 OpenAI Gym の詳細なドキュメントは、https://gym.openai.com/docs/#environmentsにあります。
次のコードは、cartpole-v0環境のPythonコードの例を示しています-
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
同様の方法で他の環境を構築できます。
Pythonを使用した学習エージェントの構築
強化学習エージェントを構築するには、次のように OpenAI Gym パッケージを使用します-
import gym
env = gym.make('CartPole-v0')
for _ in range(20):
observation = env.reset()
for i in range(100):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(i+1))
break
カートポールがそれ自体のバランスを取ることができることを確認します。