基于模型的方法与世界模型学习
1. 随机射击法与精英选择
首先,我们来看一个简单的寻找最佳动作的方法。通过随机生成一些动作,然后从中选择表现最好的动作。以下是相关代码:
# 假设存在 random_shooting 和 pick_elites 函数
n = 20
actions_to_try = random_shooting(n)
best_action, best_result = pick_elites(actions_to_try, 1)
# 要采取的动作
action_to_take = best_action[0]
这里只是简单地展示了概念,为后续更有趣的方法做铺垫。
2. 交叉熵方法(CEM)
2.1 基本思想
在寻找最优动作时,我们可以更聪明地进行搜索。以炮弹射击为例,我们可以先随机生成一些动作,观察哪些动作区域能得到更好的结果,然后在这些区域生成更多的动作。具体步骤如下:
1. 初始时生成一些动作(可以是均匀随机生成)。
2. 找出动作空间中似乎能产生更好结果的区域(如炮弹射击中约 45° 的区域)。
3. 在该动作空间部分生成更多动作。
2.2 形式化描述
- 初始化一个带有参数 ( v ) 的概率分布 ( f(A; v) )。
- 从 ( f ) 中生成 ( N ) 个样本(解决方案、动作),( A_1, \ldots, A_N )。
- 按奖励从高到低对解决方案进行排序,索引为 ( i_1
超级会员免费看
订阅专栏 解锁全文

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



