17 探索与利用的权衡

在上一篇中,我们详细探讨了Q学习的基本原理和算法流程。本篇将重点讨论Q学习中的一个重要思想——探索与利用的权衡。在强化学习中,智能体必须在探索新策略和利用已知最佳策略之间进行权衡,合理的权衡机制对于学习策略的收敛速度和最终性能至关重要。

探索与利用的概念

在任何强化学习任务中,智能体面临两个主要任务:

  • 探索:尝试新的行动以获取更多信息,发现潜在的更优策略。
  • 利用:选择已知的最佳行动,从而采用目前最优的策略以最大化奖励。

探索和利用的矛盾可以用下述公式来表示:

$$
\text{总奖励} = \text{利用奖励} + \text{探索奖励}
$$

理想的策略应该同时兼顾这两者,然而在实际应用中,总会存在某种程度的取舍。

探索策略

ε-greedy 策略

最常用的探索策略之一是 ε-greedy 策略。该策略以概率 ε 选择一个随机动作(探索),以概率 1 - ε 选择目前的最佳动作(利用)。

例如,假设我们定义 ε = 0.1,这意味着在10%的时间里,智能体会随机选择一个行动,而在90%的时间里,选择当前Q值最高的行动。

1
2
3
4
5
6
7
import numpy as np

def epsilon_greedy_action(Q, state, epsilon):
if np.random.rand() < epsilon:
return np.random.choice(range(len(Q[state]))) # 随机选择一个动作
else:
return np.argmax(Q[state]) # 选择当前Q值最高的动作

Decaying ε-greedy 策略

随着训练的进行,逐步减少 ε 的值可以更加有效地平衡探索和利用。这称为 Decaying ε-greedy 策略。初期较高的探索率可以帮助智能体较好地了解环境,而后期较低的探索率则能使其更专注于利用已学得的知识。

1
2
3
4
5
6
7
8
9
epsilon = 1.0  # 初始 epsilon
epsilon_min = 0.01 # 最小 epsilon
decay_rate = 0.995 # 衰减速率

while training:
action = epsilon_greedy_action(Q, state, epsilon)
# 执行动作并更新Q值
# ...
epsilon = max(epsilon_min, epsilon * decay_rate) # 衰减 epsilon

Softmax 策略

另一种探索机制是 Softmax 策略,其中每个动作被分配了一个概率,概率与其Q值成正比。这种方法允许所有动作都有一定的概率被选择,有助于避免过早收敛于次优策略。

$$
P(a|s) = \frac{e^{Q(s,a) / \tau}}{\sum_{a’} e^{Q(s,a’) / \tau}}
$$

其中 τ 是温度参数,控制探索的程度。当 τ 较大时,所有动作概率趋于均匀,增强探索;当 τ 较小时,更偏向于利用。

探索与利用的权衡案例

假设我们在一个简单的格子世界中,智能体的目标是找到从起点(0, 0)到终点(4, 4)的路径。原因是环境较为复杂,Q值更新需要良好的探索。

使用 ε-greedy 策略的案例

在这个例子中,我们使用Q学习和ε-greedy策略来求解问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np

grid_size = 5 # 5x5的格子
Q = np.zeros((grid_size, grid_size, 4)) # 状态数和动作数
# 动作 [上, 下, 左, 右]
num_episodes = 1000
epsilon = 1.0

for episode in range(num_episodes):
state = (0, 0) # 每个episode从起点开始
done = False

while not done:
action = epsilon_greedy_action(Q, state, epsilon)
# 执行动作并获取新状态和奖励
# (
# new_state, reward, done
# ) = environment.step(state, action) # 这是伪代码

# 更新Q值
q_max = np.max(Q[new_state]) # 下一状态的最大Q值
Q[state][action] += alpha * (reward + gamma * q_max - Q[state][action])

state = new_state # 移动到新状态
epsilon = max(epsilon_min, epsilon * decay_rate) # 衰减epsilon

通过上述代码和方法,智能体将逐渐学会在格子世界中找到最佳路径和行动策略。

总结

在Q学习中,探索与利用的权衡是极其重要的。选择合适的探索策略可以有效地帮助智能体学习更优的策略,而不同的环境和任务可能需要不同的探索机制。在下一篇中,我们将探索“近似Q学习”,并讨论如何在高维状态空间中应用Q学习以解决实际问题。通过不断理解和优化探索与利用的方式,我们可以使智能体的学习过程更加高效和准确。

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

学习下节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论