强化学习第2版-导论-练习

1.1 左右互搏

假设上面的强化学习算法不是对战随机对手,而是以左右互搏的方式与自己对战来训练自己。你认为在这种情况下会发生怎样的事情?它是否会学习到不同的策略?

解:

个人想到了GAN技术(生成式对抗网络)中采取了类似的思路,GAN技术通过生成模型和判别模型进行对抗,从而提高模型的精度,主要的应用领域包括了图像生成、超分辨率、文本转图像等方面。一个完整的GAN模型包括了两个网络,G(Generator)和D(Discriminator)。其中G和D的功能分别为:

G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。

在GAN模型的训练过程中,**生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。**这样,G和D构成了一个动态的“博弈过程”。

最后博弈的结果是什么?在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。

这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

同时,参考AlphaGo模型的设计方案,我们可以看到为了实现获取更多数据以及避免过拟合的目的,AlphaGo引入了**左右互搏的思想用机器自己与自己对局来增加训练样本数。**按《Nature》原文的说法,他们通过自我博弈(self-play)产生了3000万个标注样本< s , z >,每个样本的局面s都来自不同的一局棋(each sampled from a separate game),以此来防止过拟合(这些挑出来的样本是否可能也是臭棋?)。注意,之前也是3000万个标注样本< s , z >,但它们只来自于16万局人类博弈的棋谱。

而根据上述内容的分析,如果一个强化学习算法的任务不再是对战随机对手,而是以左右互搏的方式与自己对战来训练自己。我认为随着训练次数的不断增加,整个模型会达到一个稳定状态,个人理解也就是通常博弈论中讲的均衡。参照GAN的理论,我认为整个模型在进行无限次的迭代后,能够达到模型中每一个影响因子充分考虑的一个稳态,与自己对战的获胜几率为50%。

如果以围棋任务为例,存在着一种“陷阱”的策略,即在短期来看收益并不高,但是可以达到战胜对手的方案。与自己对战,就类似与复盘操作,更方便地使模型对每一步进行更准确的评估,从而学习到一些不同的策略。

参考链接:

https://zhuanlan.zhihu.com/p/24767059

https://www.zhihu.com/question/319949451/answer/806981502?utm_source=qq&utm_medium=social&utm_oi=1051963960076648448

https://link.zhihu.com/?target=https%3A//blog.csdn.net/han_xiaoyang/article/details/50903562

https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_29176963/article/details/82776380%3Futm_source%3Dblogxgwz0

1.2 对称性

由于对称性,井字棋的很多位置看起来不同但其实是相同的。我们如何利用这一点来修改上面提到的学习过程呢?这种改变会怎样改善学习过程?假设对方没有利用对称性,那我们应该利用吗?对称相等的位置是否必然具有相同的价值呢?

解:

在井字棋游戏中,可以沿着x和y坐标中点进行横竖折叠,即左右,上下对称。这将有助于降低算法的空间复杂度,并且提升学习过程的效率。个人的理解就是如果一个相同的解空间下,有一些情况可以视作相同的解。在井字棋的解空间中即可以通过旋转棋盘就可以把一个解转化为多个解,所以说明这些解是相同的,所以可以利用这一个性质,将解空间进行缩减操作。

如果对手没有利用对称性,那么我们也不应该利用,因为我们无法从这样的优势(单方面利用对称性)中获得更有效的学习。这是因为如果我们使用了对称性,而对方未使用对称性,我们无法直接通过相似的方法降低解空间大小。例如,如果对手在一个状态空间中存在弱点但在另一个状态空间中没有(即使它们是对称的),则对称相似的状态应该具有相同的值是不正确的。

因此,对称相等的位置在博弈游戏中并不一定具有相同的价值。在井字棋游戏中,我将下棋动作看成一个在已有棋盘上重新进行对应的下棋的步骤,而已有棋盘作为一个前置条件,如果前置条件不同,即便是对称相等的位置也不会是相同价值的位置。

参考链接:

https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_29176963/article/details/82776380%3Futm_source%3Dblogxgwz0

1.3 贪心策略

假设强化学习的玩家是贪心的,也就是说,他总是把棋子移动到他认为最好的位置,而从不进行试探。比起一个非贪心的玩家,他会玩得更好,还是更差呢?可能会出现什么问题?

解:

一般而言,贪婪玩家的学的可能会更差。因为贪心策略的玩家不能够从长期的新的行为探索中获得更优的收益,而仅仅追求最大的即时价值。也就是说,贪心玩家通常往往只有一种想要暂时占优的策略,而不会学习到一些暂时价值低却可以得到高累计回报的策略。如果每一步都追求最好的动作,我们可能永远找不到最优解。因此,贪婪玩家更有可能会陷入局部最优点。

一个智能体学习过程是在探索新的行为以获得长期累积收益最大和每次仅做出对当前行为收益最大的二者之间的权衡,如原书图2-2所示。 但是如果贪心算法能够确定获得每一个状态的情况,那么贪心就能够直接获得最优收益,当前我们面对的实际问题大多都不是这样的情况。
图2-2
参考链接:

https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_29176963/article/details/82776380%3Futm_source%3Dblogxgwz0

1.4 从试探中学习

假设学习更新发生在包括试探动作在内的所有动作之后,如果步长参数随着时间而适当减小(试探的趋势并不减弱),那么状态的价值将收敛到一组概率。我们从试探性的行动中学习,或者不从中学习,计算出两组概率(从概念上说),分别会是什么?假设我们继续进行试探性的行动,哪一组概率对于学习来说可能更好?哪一组可能带来更大的胜率?

解:

一个状态的值是从一个状态开始直到获胜的可能性。随着步长的适当减少,且假设探索的概率是固定的,没有从探索中学习的概率集是给定从此采取的最佳行动的每个状态的值,而从探索中学习的概率集是包括主动探索策略在内的每个状态的期望值。

假设不从试探中学习,那么我们每一步都做出当前最优的决策,也就是我们说的贪心策略。如果我们从试探中学习,则在每一步中增加新动作的尝试的概率。通常在学习更新发生在包括试探动作在内的所有动作之后的情况下,从试探中学习的方法可能更好。因为它避免了算法一味地进行贪婪式的行动,可能到达一个一般来说我们永远不会到达的状态,进而减少了次优的未来状态的偏差(例如,如果你可以在一次移动中赢得一盘棋,但如果你执行另一次移动你的对手获胜,这不会使该状态变坏)。因此,从试探中学习的方法避免了动作收益曲线的波动,更容易带来更大的胜率。

参考链接:

https://link.zhihu.com/?target=https%3A//blog.csdn.net/qq_29176963/article/details/82776380%3Futm_source%3Dblogxgwz0

1.5 其他提升方法

你能想出其他方法来提升强化学习的玩家能力吗?你能想出更好的方法来解决井字棋的问题吗?

解:

由于井字棋小游戏太简单了,可以直接用暴力递归所有可能的走法,并且在每一步都选择已知的可能最优的步子。不过,从强化学习的角度来说,可能的更好的方法包括:

  • 如果对手的棋路是不断变化的,那么根据对手的动作来调整学习率,衰减更长时间之前的策略可能可以加快学习的速度。
  • 如果对手的棋路是固定的,那么探索新的策略并不能够带来更优的收益。这种情况可以考虑保存已知棋局的剧本库,每次遇到相似的情况时,选择“专家”决策认为比较好的动作,这样可以加快智能体学习的过程。

参考链接:

https://link.zhihu.com/?target=https%3A//github.com/bcmi/RL-Solutions/tree/main/%25E5%25AF%25BC%25E8%25AE%25BA

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值