Q-learning
base代码
1 | # 老是说我没有权限就很烦... |
ε-decay和ε-start还有ε-end是耦合的,第一个感觉比较难调整,就调后面两个好了
先用默认参数跑了下,发现其实100步已经妥妥收敛了(右边),所以me果断设置100 ,确实还不错(见下)
最短路径是15步,所以gamma我取了个1-1/15,约等于0.95
目前看效果还不错(如上),肯定是train好了,接着调
ee 调到0.99,希望一开始探索多一点
可以看到一开始探索多了以后,学习得居然也快了,说明探索到了好的方法
再分别试试调大学习率(0.15)和调小学习率(0.05)
学习率大了以后果然学的就是快hhh
DQN
环境配置
游戏:CartPole-v0,action是两维度(左和右,分别用0和1表示), state是四维的($x,\overset{·}x,\theta,\overset{·}\theta$)(位置,速度,杆子与竖直方向的夹角,角度变化率);左移或者右移小车的action之后,env会返回一个+1的reward。其中CartPole-v0中到达200个reward之后,游戏也会结束,而CartPole-v1中则为500。最大奖励(reward)阈值可通过前面介绍的注册表进行修改。
错误记录 & 修正
1 | Traceback (most recent call last): |
choose_action在eval的时候默认选择了CPU,但是模型可能load在GPU上..
- ==?==我想问下这里使用CPU进行evaluation是必须的么?是考虑到不想把变量转移到GPU上增加开销才写死到CPU上进行evaluation的吗?写死的话…就会出现问题….