文档章节

tensorflow强化学习之打乒乓球(Reinforcement Learning)

m
 martinwei1982
发布于 2017/11/03 16:04
字数 737
阅读 167
收藏 1

深度学习大部分是监督学习,而且需要海量,高质量的数据对。这在现实世界,是非常难的事情。人类的学习过程里,不可能让一个孩子,看一亿张图片,才学会识别一只猫。

 

强化学习则更像人类的学习过程,这次3天达到世界顶尖高手水平的alpha zero也是基于强化学习的算法,从0开始。连接主义学习里,有监督学习,非监督学习,还有强化学习,强化学习靠环境提供的强化信号对动作的优劣做评价。

 

下面这篇文章对RL做了很好的总结:

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

OpenAI gym提供一个很好的强化学习的工具箱:

https://github.com/openai/gym

我们看看强化学习能做什么有意思的事情。

Atari是一个古老的打乒乓球的游戏。

再看一个MDP决策:

我们就让RL做类似的事情,本文先介绍让计算机从像素开始学会打乒乓球。

乒乓球的游戏规则就不多介绍,直接看系统如何实现,我们不只针对这个游戏做系统设计,我们设计尽量通过的系统,能完成更多任务,看如下的策略网络。

pip install gym,这个强化学习的开发包是需要的。atari_py这个包也是需要的。

t_states = tf.placeholder(tf.float32, shape=[None,80,80])
# policy network
network = InputLayer(t_states, name='input')
network = DenseLayer(network, n_units=H, act=tf.nn.relu, name='hidden')
network = DenseLayer(network, n_units=3, name='output')
probs = network.outputs
sampling_prob = tf.nn.softmax(probs)

t_actions = tf.placeholder(tf.int32, shape=[None])
t_discount_rewards = tf.placeholder(tf.float32, shape=[None])
loss = tl.rein.cross_entropy_reward_loss(probs, t_actions, t_discount_rewards)
train_op = tf.train.RMSPropOptimizer(learning_rate, decay_rate).minimize(loss)

这里损失函数,我们仍然使用交叉熵损失

cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, targets=actions)

但在这个基础上,乘以环境反馈的回报reward

loss = tf.reduce_sum(tf.multiply(cross_entropy, rewards))
action = tl.rein.choice_action_by_probs(prob.flatten(), [1,2,3])
observation, reward, done, _ = env.step(action)

每一次行动,系统会给出一个reward,奖励或惩罚,然后训练最优的行动方案。

强化还可以做很多很酷的事情,后续继续更新。

 

关于作者:魏佳斌,互联网产品/技术总监,北京大学光华管理学院(MBA),特许金融分析师(CFA),资深产品经理/码农。偏爱python,深度关注互联网趋势,人工智能,AI金融量化。致力于使用最前沿的认知技术去理解这个复杂的世界。

扫描下方二维码,关注:AI量化实验室(ailabx),了解AI量化最前沿技术、资讯。

© 著作权归作者所有

m
粉丝 2
博文 16
码字总数 15898
作品 0
朝阳
产品经理
私信 提问
加载中

评论(1)

红薯
红薯
图片都无法访问
TensorFlow应用实战-18-Policy Gradient算法

Policy Gradient算法 policy Gradient算法不止一种。 有兴趣的话: 深度增强学习之Policy Gradient方法1 https://zhuanlan.zhihu.com/p/21725498 A3c实现3d赛车游戏: 成果展示 numworkders是 ...

天涯明月笙
2018/06/15
0
0
写给人类的机器学习 六、最好的机器学习资源

六、最好的机器学习资源 原文:The Best Machine Learning Resources 作者:Vishal Maini 译者:飞龙 协议:CC BY-NC-SA 4.0 用于制定人工智能、机器学习和深度学习课程表的资源概览。 制定课...

apachecn_飞龙
2017/10/21
0
0
强化学习——Q-Learning SARSA 玩CarPole经典游戏

Image from unsplash.com by Ferdinand Stöhr 前文我们讲了如何用Q-learning 和 SARSA 玩推小车上山的游戏,这篇文章我们探讨一下如何完成Carpole平衡杆的游戏。 同样的,为了方便与读者交流...

Hongtao洪滔
07/08
0
0
Q-Learning—可操控动作大小的小车爬山游戏

image from unsplash.com by Pietro De Grandi 上篇文章我们用强化学习的方法玩了小车爬山,平衡车的游戏。两个游戏有一个共同点,即动作空间(Action Space) 是非连续的。也就是说只能控制动...

Hongtao洪滔
07/19
0
0
2018 AI、机器学习、深度学习与 Tensorflow 相关优秀书籍、课程、示例链接集锦

DataScienceAI Book Links | 机器学习、深度学习与自然语言处理领域推荐的书籍列表 人工智能、深度学习与 Tensorflow 相关书籍、课程、示例列表是笔者 Awesome Links 系列的一部分;对于其他...

王下邀月熊
2018/05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
245
5
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部