MorvanZhou / Reinforcement-learning-with-tensorflow

Simple Reinforcement learning tutorials, 莫烦Python 中文AI教学

Home Page:https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用DDPG探索范围很小

YingxiaoKong opened this issue · comments

Hi 莫凡,非常感谢你的视频,我的程序终于运行了。但是我发现state 的范围很大的时候,agent 并不能学习很好。
我要解决的问题是: 在一个N*N 的空间内,一个小车从【N,N】 出发,想要走到【0,0】,速度可取值范围是【0,0】。速度是水平和竖直方向的。
当N为5的时候,学习到的概率很大,当N过大的时候,他的学习就很难了,很容易陷入局部最优。我把它探索的所有的位置都画出来了。
position_dis_7

position_dis_6

然后后来我又换了另外一套速度: 角度和速度。水平和竖直方向的速度就成了速度的分量。但是这一种表现更差。最优的方式是45度,但我的角度可取值范围是【-90,90】,然后它每次都会取极值,不会取中间值。

是不是DDPG不太适合做这种学习?用PPO会不会好一些?

试试把演员网络的激活函数改成sigmoid或者tanh?
或者调一下DDPG的噪声?

一直往一个方向探索的话试试OU过程,调一下参数试试。OU过程可以在一定程度上避免连续一直往一个方向探索,具体可以看DDPG的论文或谷歌一下。
你这个问题的reward的话,也许可以试一下每一步过后往目标靠近了多少距离,靠近目的地就为正,远离为负数