没有reward,训练很难。
因为一开始机器什么都不知道,就靠随机。如果随机一个概率特别小的才有reward,reward非常稀疏,就非常难学习,因为做什么动作都一样糟糕。
1.reward shaping
环境有一个固定的reward。我们还可以设计一些reward,这些不是真正的reward,但是可以引导机器去做一些你想要他做的事情。
增加好奇心:
鼓励冒险,真实的s与network1(另外训练出来的)预测的s越不同,reward越大。这样可以探索更多的未知。
问题:有些state很难预测,但是并不重要。
所以再学一个特征提取,把一些没有意义的东西过滤掉。
学习network2,让预测的a和真实采取的动作a越像越好。这样排除无关特征的影响。
2. curriculum learning
为机器的学习做规划,从简单到难。 帮机器规划一下课程。
学习目标的state,找附近的state学习,去掉过难或者过简单的state。找到难度适中的state,再在其附近找相似的state。
3. Hierarchical Reinforcement Learning
有很多agent,有的负责定目标,把它分配给其他的agent完成。
如果低层agent做不到,上层agent就会收到惩罚。
如果agent做到了一个错误的目标,把上层的目标给改成这个错误的。(这样动作不会被浪费。)