本周DQN实验报告
周一
周一尝试修改Reward,将奖励由原来的按具体时间给奖励,变为方差等给值方法,没有使得网络偏向理想的方向,还是出现了局部动作集中化。
周二
周二尝试修改网络,由原来的Net和Net2衍生了Net3作为迟滞网络,并尝试将Net1设置为逐步的网络(只接受非结果的所有步骤信息),将Net2设置为结果网络(只接受所有工序做完时的结果信息)。当store满时,对Net进行覆盖传值接着每一次反向传递前,运用Net3进行进行DQN传统公式计算。当store2满时,也进行相似操作。结果虽然并非只卡在一个点,但依旧集中。
周三
周三尝试修改传递函数,经过Debug发现,q_next的传值出现集中化现象(最大值经常出现在相同位置),out在取值的时候会出现累加的状况,导致永远是某几个点是max的结果,所以导致结果集中化。请教了师兄们和同学修改网络,进行了以下尝试:
-
q_next传递后进行均值初始化。结果失败,结果依然为局部集中,实际观测数据上发现为在第一次传值后,后期传递进网络的值全部都是一样的,导致所有点累加的值都是一样的,所以结果自然会选择第一次出现最大值的那个点为最大值。
-
out参数的处理:
a.out参数进行和上一次计算的out参数进行相减处理,取其中网络变化的差值来进行计算。结果失败,还是会陷入局部最大值
b.out参数在运行结束后,对网络进行初始化。结果失败,这样会导致网络失效
接下来要做的事
验证网络的正确性,在其他的案例面前进行测试,如果有可改动的可能性,则再次进行修改,否则去找其他案例框架进行修改使用,不再闭门造车。