零基础搞懂强化学习?这份视频攻略不算迟

▷ 强化学习解读视频

有监督学习 VS 强化学习

在常见的机器学习应用中,人们会运用有监督学习,也就是给神经网络模型一个输入,但模型输出结果已成定局。因此你可以利用反向传播算法计算梯度,以训练此网络产生结果。

在监督学习的情况下,如果要训练一个会玩吃鸡的神经网络,你需要找一个吃鸡高手玩好几个小时,然后获得一个数据集,包括了所有的帧。比如玩家看到的屏幕,以及他在游戏中的键盘操作(如,向上或向下)。随后将这些数据输入到一个非常简单的神经网络中,便可以输出向上或向下的行为。利用反向传播这类算法对人类玩家数据集进行训练,可以训练出模拟人类玩家操作的神经网络。

但这种方法有两种明显的缺陷。第一,如果你想进行监督学习,就必须有一个数据集来训练,但训练数据集本身就不容易了。另一方面,如果你训练的神经网络模型,仅仅是模仿人类玩家的操作,那么这个模型在玩游戏时,成绩肯定不会比人类选手高。

强化学习让智能体更聪明

想训练一个AlphaGo Zero,能够击败世界顶级选手?从理论上,不能运用监督学习。那么,有什么方法可以让智能体主动来玩游戏?这时候强化学习就有用了。

实际上,强化学习的框架与监督学习框架非常相似,仍旧有输入帧,并通过神经网络模型运行模型,输出各种人类操作。唯一的区别是,我们不知道目标标签是什么,不知道在什么情况下,要进行向上或向下的键盘操作,因为这里没有数据集去训练。

在强化学习中,将输入帧转换为输出动作的网络,被称为策略网络。一个最简单的训练策略网络的方法,被称为策略梯度。策略梯度中的方法是,从一个完全随机的网络开始,并向其提供游戏产生的一个帧,它随机产生操作,然后再将该动作输入到游戏中,游戏继续产生下一帧,如此循环下去。

用强化学习教智能体玩游戏

这个例子中的网络,可以是一个全连接网络,但可以在这里运用卷积,现在你的网络会输出两个数字向上和向下的概率。当你训练时,其实是在分布中抽样,你不需要总是重复特定的操作,智能体可以一定程度上随机地探索环境,并幸运地发现更高的回报和更好的行为。

现在我们想让智能体自主学习唯一的反馈是,我们在游戏中给它一个记分牌,当智能体击中目标时,它会获得+1的回报,如果未击中目标,它会收到-1的惩罚。智能体的目标就是优化策略,以尽可能多的获取回报。因此为了训练策略网络,我们首先要收集大量记录,然后将游戏的帧输入到网络中,再随机选取动作,重新反馈到游戏中,就产生了很多随机的游戏操作。

由于智能体没有经过训练学习,它在大多数时候都会失败,但是有时候智能体随机选取了一系列行为,并击中了目标,智能体将会获得奖励。重点是对于每一局游戏,无论想要正奖励还是负奖励,我们都可以计算梯度,它使智能机在后续更多的选择某些动作。

策略梯度要做的就是对于得到正回报的局,我们使用正的梯度,以增加该类操作未来发生的可能性,但当我们得到了负的回报,就会使用相同数值的负梯度,负号会使失败局采取的所有操作在未来发生的可能性下降。结果就是,在训练策略网络时导致负回报的行为,在未来会逐渐过滤掉,而导致正回报的行为会越来越多的出现。从某种意义上说,这就是智能体正在学习如何玩游戏的过程。

相关资料推荐:

http://karpathy.github.io/2016/05/31/rl/

https://arxiv.org/abs/1709.06977雷锋网雷锋网

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424C1AQPN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券