强化学习:实践出真知
1. 重复采样与概率分布裁剪
在一些场景中,我们需要从概率分布中进行重复采样。比如在石头剪刀布的例子里,我们可以使用 np.random.choice 函数进行采样。以下是一个简单的示例代码:
import numpy as np
def repeated_rps():
return np.random.choice(
['rock', 'paper', 'scissors'],
size=3,
replace=False,
p=[0.5, 0.3, 0.2])
这个函数会从 ['rock', 'paper', 'scissors'] 中按照给定的概率 [0.5, 0.3, 0.2] 进行不重复的采样,得到一个半随机的有序列表。高概率的元素更有可能出现在列表的前面,但仍保留一定的多样性。
在强化学习过程中,概率分布可能会出现不稳定的情况。特别是在学习初期,智能体可能会对一些偶然的胜利反应过度,从而给一些实际上并不太好的动作赋予较高的概率。为了避免某个动作的概率被推到 1 或 0,我们需要对概率分布进行裁剪。以下是实现裁剪的代码:
def clip_probs(original_probs):
min_p = 1e-5
max_p = 1 - min_p
clipped_probs = np.cl
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



