我们前面已经稍微地介绍了强化学习的内容,这一篇我们将简单地介绍一下使用TF和强化学习的方法解决CartPole问题。CartPole的环境中有一辆小车,在一个一维的无阻力轨道上运动,在车上绑着一个连接不太结实的杆,这个杆会左右摇晃。环境信息是一个有4个值的数组,包含了环境的各种信息,包括小车位置,速度,杆的角速度,速度。我们能采取的Action非常简单,就是给小车施加一个正向的或者负向的力。当小车偏离中心偏离中心2.4个单位的距离,或者杆的倾角超过15度时,我们的任务就自动结束。每坚持一步,我们就获得+1的reward。我们的模型要有远见,要考虑到长久的利益,而不是只学习到当前的reward。
看完这段程序,就会突然觉得一开始说的良好的数学基础有多么重要!在接触策略 络之前,最好还是把具体的算法和原理看一看,这样思路就比较清晰。无论是自动驾驶,还是AlphaGo,都是建立在深度强化学习的基础上的,而要学好它,良好的数学基础和严谨的思维逻辑实在太重要了!不过博主的研究领域不在强化学习这一块,因此也并不用过多地深究。做到这里,我强烈建议有条件的同学使用linux进行编程,因为博主本想介绍估值 络和tensorboard(可视化工具),但是由于软件和硬件方面的区别,在多个方面都遇到了比较麻烦的问题,这些问题我想等入学之后用实验室的电脑来处理,因此此处暂时不表。
TF中还有两个比较重要的组成部分,就是tf.learn和tf.contrib模块。learn模块可以理解为是类似于sklearn模块,用于更加简单地上手机器学习;contrib模块则集中了许多开源 区的成果,特别是一些比较新的功能,google将代码放在这里供用户们测试,根据反馈进行修改,等到API较为稳定的时候,就能被移到TF的核心模块。总之,TF是一个开源的模块,因此它的内容和知识点永远也学不完。我们选择我们所需要的进行学习即可。关于使用TF进行机器学习的篇幅到这里就结束了,我把所有涉及到的代码都放在下面链接中链接:http://pan.baidu.com/s/1hr9GO40 密码:krfk
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!