python epsilon-greedy policy
时间: 2024-09-06 18:04:43 浏览: 47
在强化学习中,Epsilon-Greedy Policy是一种常用的探索与 exploitation (贪婪) 平衡策略。它在选择动作时,会在已知最优的动作(greedy action)基础上加入一定程度的随机性(exploration)。"epsilon"是一个超参数,通常设置为一个小于1的正数,代表了探索的概率。
具体来说,当epsilon等于0时,策略完全贪婪,总是选择当前看起来收益最高的动作;而当epsilon大于0时,算法有一定的概率(epsilon)随机选取一个动作进行尝试,这种随机性有助于避免陷入局部最优,促进对环境的全面了解。
Python中,你可以使用像`numpy.random.choice()`这样的函数来实现ε-greedy策略。比如,在每个时间步(episode step),你可以做如下:
```python
import numpy as np
def egreedy_policy(q_values, epsilon):
if np.random.rand() < epsilon:
# 随机选择一个动作
action = np.random.randint(0, len(q_values))
else:
# 按照Q值最大化选择动作
action = np.argmax(q_values)
return action
# 示例
epsilon = 0.1
available_actions = [0, 1, 2] # 假设有三个可用动作
q_values = np.array([0.8, 0.6, 0.9]) # 对应动作的Q值
selected_action = egreedy_policy(q_values, epsilon)
```
阅读全文