零基础搞懂强化学习?这份视频攻略不算迟
发布时间:2018-04-29 | 发布者: 东东工作室 | 浏览次数: 次翻译 | 郑前 字幕| 凡江 整理| 吴璇
本期Arxiv Insights 将重点介绍机器学习中的子领域“强化学习”,也是机器人最具智能前景的方向之一。
强化学习解读视频
有监督学习 VS 强化学习
在常见的机器学习应用中,人们会运用有监督学习,也就是给神经网络模型一个输入,但模型输出结果已成定局。因此你可以利用反向传播算法计算梯度,以训练此网络产生结果。
在监督学习的情况下,如果要训练一个会玩吃鸡的神经网络,你需要找一个吃鸡高手玩好几个小时,然后获得一个数据集,包括了所有的帧。比如玩家看到的屏幕,以及他在游戏中的键盘操作(如,向上或向下)。随后将这些数据输入到一个非常简单的神经网络中,便可以输出向上或向下的行为。利用反向传播这类算法对人类玩家数据集进行训练,可以训练出模拟人类玩家操作的神经网络。
但这种方法有两种明显的缺陷。第一,如果你想进行监督学习,就必须有一个数据集来训练,但训练数据集本身就不容易了。另一方面,如果你训练的神经网络模型,仅仅是模仿人类玩家的操作,那么这个模型在玩游戏时,成绩肯定不会比人类选手高。
强化学习让智能体更聪明
想训练一个AlphaGo Zero,能够击败世界顶级选手?从理论上,不能运用监督学习。那么,有什么方法可以让智能体主动来玩游戏?这时候强化学习就有用了。
实际上,强化学习的框架与监督学习框架非常相似,仍旧有输入帧,并通过神经网络模型运行模型,输出各种人类操作。唯一的区别是,我们不知道目标标签是什么,不知道在什么情况下,要进行向上或向下的键盘操作,因为这里没有数据集去训练。
在强化学习中,将输入帧转换为输出动作的网络,被称为策略网络。一个最简单的训练策略网络的方法,被称为策略梯度。策略梯度中的方法是,从一个完全随机的网络开始,并向其提供游戏产生的一个帧,它随机产生操作,然后再将该动作输入到游戏中,游戏继续产生下一帧,如此循环下去。
用强化学习教智能体玩游戏
这个例子中的网络,可以是一个全连接网络,但可以在这里运用卷积,现在你的网络会输出两个数字向上和向下的概率。当你训练时,其实是在分布中抽样,你不需要总是重复特定的操作,智能体可以一定程度上随机地探索环境,并幸运地发现更高的回报和更好的行为。
现在我们想让智能体自主学习唯一的反馈是,我们在游戏中给它一个记分牌,当智能体击中目标时,它会获得+1的回报,如果未击中目标,它会收到-1的惩罚。智能体的目标就是优化策略,以尽可能多的获取回报。因此为了训练策略网络,我们首先要收集大量记录,然后将游戏的帧输入到网络中,再随机选取动作,重新反馈到游戏中,就产生了很多随机的游戏操作。
由于智能体没有经过训练学习,它在大多数时候都会失败,但是有时候智能体随机选取了一系列行为,并击中了目标,智能体将会获得奖励。重点是对于每一局游戏,无论想要正奖励还是负奖励,我们都可以计算梯度,它使智能机在后续更多的选择某些动作。
策略梯度要做的就是对于得到正回报的局,我们使用正的梯度,以增加该类操作未来发生的可能性,但当我们得到了负的回报,就会使用相同数值的负梯度,负号会使失败局采取的所有操作在未来发生的可能性下降。结果就是,在训练策略网络时导致负回报的行为,在未来会逐渐过滤掉,而导致正回报的行为会越来越多的出现。从某种意义上说,这就是智能体正在学习如何玩游戏的过程。
相关资料推荐:
- "Pong from Pixels - Karpathy":
- Concept networks for grasp & stack (Paper with heavy reward shaping): https://arxiv.org/abs/1709.06977 雷锋网雷锋网
雷锋字幕组正在招募中,扫描下方二维码,备注“雷锋字幕组+姓名”加入我们。雷锋网雷锋网
转载请标注:我爱技术网—— 零基础搞懂强化学习?这份视频攻略不算迟