深度强化学习输出值总是不变?

深度强化学习输出值总是不怎么变?

可能原因:

1.输入张量太小,导致网络梯度更新太慢,梯度消失;
2.奖励太小,梯度小,更新慢;
3.奖励太大,relu激活函数遇到大梯度会部分“失活”;

深度强化学习调试经验

1.设置专家经验,先进行模仿学习;
2.探索必须要全面,不然智能体止步不前;
3.探索范围也不要太大,不然垃圾经验太多导致智能体逐渐失去正确方向,经验池可以设定大一些,为开始训练经验大小的10 ~ 100倍即可。
5.要注意:深度强化学习也会陷入局部最优解,比如高维空间下的Q值可能有多个局部最优。
6.输入量必须归一化,Actor网络输出值也要归一化再送入Critic网络,比如Actor网络输出-1 ~ 1,送入Critic之前也是-1 ~ 1最好和Actor网络输出范围一致,对与环境的交互而言可以再做变换。
7.深度强化学习中的模仿学习:主要有行为克隆和逆向强化学习;行为克隆:专家经验做监督学习,也可以把专家经验放入经验池中进行学习,逆向强化学习:需要自学习奖励函数,专家和智能体同时做出动作,找到一种奖励函数(可以和环境相关,比如“学徒学习”:R(s) = w.T * S(t) ),奖励函数必须保证专家奖励大于智能体奖励,最终通过每次迭代,在这里插入图片描述
每次迭代时都使用当前的奖励函数进行强化学习,多次迭代后智能体会接近专家水平。

补充知识:

1.在深度学习中,没有绝对好的的优化器,只是对于大多数情况自适应优化器会好一些;
2.在深度学习中,引起局部最优的原因中鞍点要比局部最小点多得多,平坦区域大,而且难以克服,特别是对SGD而言;

你可能感兴趣的:(深度强化学习输出值总是不变?)