サンプルコードかいて

以下は、Pythonでの強化学習のサンプルコードです。ここでは、OpenAI GymのCartPole環境を使用して、Q学習アルゴリズムを実装します。このコードは、CartPoleのバランスを取るエージェントを訓練します。

python
import gym import numpy as np # Q学習のパラメータ alpha = 0.1 # 学習率 gamma = 0.99 # 割引率 epsilon = 0.1 # ε-greedy法のε # CartPole環境の設定 env = gym.make('CartPole-v1') num_states = env.observation_space.shape[0] num_actions = env.action_space.n # Qテーブルの初期化 Q = np.zeros((num_states, num_actions)) # エピソード数 num_episodes = 1000 # Q学習の実行 for episode in range(num_episodes): state = env.reset() done = False while not done: # ε-greedy法による行動選択 if np.random.rand() < epsilon: action = env.action_space.sample() # ランダムに行動選択 else: action = np.argmax(Q[state]) # Q値が最大となる行動を選択 # 行動の実行と状態遷移の観測 next_state, reward, done, _ = env.step(action) # Q値の更新 Q[state, action] += alpha * (reward + gamma * np.max(Q[next_state]) - Q[state, action]) state = next_state # 状態の更新 # 学習したQテーブルを使ってエージェントの振る舞いをテスト state = env.reset() done = False total_reward = 0 while not done: env.render() action = np.argmax(Q[state]) state, reward, done, _ = env.step(action) total_reward += reward print("Total Reward:", total_reward) env.close()

このコードでは、CartPole環境を使ってQ学習を行い、エージェントのバランスを取る能力を学習します。最初にQテーブルを初期化し、環境との相互作用を通じてQ値を更新します。学習が終了したら、学習されたQテーブルを使用してエージェントの動作をテストします。

未分類

Posted by ぼっち