Reinforcement-learning-with-tensorflow icon indicating copy to clipboard operation
Reinforcement-learning-with-tensorflow copied to clipboard

使用DDPG探索范围很小

Open YingxiaoKong opened this issue 4 years ago • 4 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会不会好一些?

YingxiaoKong avatar Feb 25 '20 16:02 YingxiaoKong

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

Dr-Tuski avatar Feb 26 '20 00:02 Dr-Tuski

演员网络指的是critic还是actor?actor我用的是tanh, critic貌似也是tanh. 我的variance设置的是动作空间的十分之一,但是会随着episode逐渐递减。而且它经常会选择一个错误的方向一直向下探索,虽然最后也会收敛,但是收敛的state很差。不知道用PPO会不会好一点?

另外我的reward function可能也需要改变。不知道你对设置reward function有没有什么建议?我试了不同的reward function,感觉不是很有帮助。

在 2020年2月25日,下午6:57,Dr-Tuski [email protected] 写道:



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

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMorvanZhou%2FReinforcement-learning-with-tensorflow%2Fissues%2F162%3Femail_source%3Dnotifications%26email_token%3DAIMGH4VF7GWWR6COB24TSVDREW5ARA5CNFSM4K3OHVR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM6KOPQ%23issuecomment-591177534&data=02%7C01%7Cyingxiao.kong%40vanderbilt.edu%7C4d66ded58ae84e6885cf08d7ba56e48e%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C0%7C637182754676242837&sdata=UAl6SIBa4ZPvng4mdszgvPMGyt6XOVfAsvWmIc3agVs%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAIMGH4QSCWODTNEVPKFPCKTREW5ARANCNFSM4K3OHVRQ&data=02%7C01%7Cyingxiao.kong%40vanderbilt.edu%7C4d66ded58ae84e6885cf08d7ba56e48e%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C0%7C637182754676252826&sdata=ztab4YmzExQaSwalFaN2zRLOdCxwdwHs4nJBQ5e4JX8%3D&reserved=0.

YingxiaoKong avatar Feb 26 '20 01:02 YingxiaoKong

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

Dr-Tuski avatar Feb 26 '20 01:02 Dr-Tuski

谢谢!我的reward 是用前一步距离目标点的距离减去下一步距离目标点的距离。但是我没有设置达到目标点的reward。不知道这样有没有帮助。。。

在 2020年2月25日,下午7:27,Dr-Tuski [email protected] 写道:



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

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMorvanZhou%2FReinforcement-learning-with-tensorflow%2Fissues%2F162%3Femail_source%3Dnotifications%26email_token%3DAIMGH4UWYFRJU6RLIU6V3T3REXAOXA5CNFSM4K3OHVR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM6M4YQ%23issuecomment-591187554&data=02%7C01%7Cyingxiao.kong%40vanderbilt.edu%7C11ce4cc23e2c4ca4f04508d7ba5aff20%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C0%7C637182772298566319&sdata=QoAJuCj51luwaGCPlMxmF%2BK9npTPbiMTJhq5QPOiBM8%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAIMGH4TITMNOUSNAYFPK5U3REXAOXANCNFSM4K3OHVRQ&data=02%7C01%7Cyingxiao.kong%40vanderbilt.edu%7C11ce4cc23e2c4ca4f04508d7ba5aff20%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C0%7C637182772298576315&sdata=q%2F%2BwFlLJKgxpYOHfJNEDsOyebHeRIGdE7ivNrL3HddM%3D&reserved=0.

YingxiaoKong avatar Feb 26 '20 01:02 YingxiaoKong