博主的github链接,欢迎大家来访问~:https://github.com/Sh-Zh-7
强化学习经典算法实现地址:https://github.com/Sh-Zh-7/reinforce-learning-impl
0. 前言
不得不说Github确实是一个社交网站,我在这个上面follow了其他人以后,就可以看到其他人最近的动向。这不,我在GitHub上follow了一个大三的学长,发现他正在搞这个,所以我也萌生了搞强化学习的主意。
经过一比对,我发现他的代码都是借(chao)鉴(xi)Morvan Zhou的。然而现在,2020年为止,Morvan Zhou的强化学习是使用tensorflow框架实现的,并没有对应pytorch的实现(讽刺的是,Morvan Zhou Github上star最多的反而是他pytorch的教程)。笔者此时并不会tensorflow,所以决定找其它的教程。
最后我找到了一个star3600+(截止2020年2月初)的repo,虽然他也使用tensorflow实现的(那没办法,目前能找到的pytorch强化学习教程很少),但是他的思路非常清晰。我就跟着这个教程用pytorch重新写了一遍这些算法。不过pytorch近年来越来越火热,AI搞得最火热的Stanford University近年来的深度学习框架也由tensorflow转变到了pytorch,相信以后高质量的pytorch强化学习教程会越来越多。所以本专栏并不是一个面向新手的教程,只不过是一个关于强化学习知识点的总结。
想要强化学习入门,我个人的建议是:台大李宏毅视频教程(没必要贴链接,这种东西每年都会有新的资源)-> Morvan Zhou强化学习tensorflow implementation(实在找不到好的pytorch教程了。。tensorflow凑合着看吧)-> 理论知识的学习,这里推荐Sutton的经典书籍
1. 强化学习基本要素
- state:又被称作是obersavation,我个人认为叫obersavation更为准确,因为它是我们agent对于environment的观测。举几个例子,比如在windy-world中它是agent所在位置的坐标,在cart-pole中,它是cart-pole的速度,位置,角度等信息。
- action: 这个就是agent所作出的动作。注意对于同一个state, 你做出相同的action,并不一定会跳转到下一个相同的state.