上一篇:基于Transformer的路径规划 - 第三篇 Attention Is All You Need
在上一篇中提到:一个由7层Transformer Decoder组成的GPT路径生成模型(10M多的参数量),生成策略采用贪心搜索,在随机生成的测试集上,有接近1%的失败率。生成路径失败的原因几乎都是与障碍物发生了碰撞。在这一篇中我希望对这一问题进行改进,提升生成路径的成功率。
比较容易想到的是将生成路径失败的样本加入训练集,这个方法在工程上应用广泛,但随着指标的提升,其效果会逐渐降低,因此我先不使用该方法。 我先尝试训练更长的时间,期待会有奇迹发生,几天过去后,训练损失降了一点点,但指标没有明显提升。
我又尝试优化损失函数,添加label_smoothing,发现依然没什么效果。
myloss = torch.nn.CrossEntropyLoss(label_smoothing=0.32)
连续实验失败让我开始觉得“GPT模型以及对应的训练方法”存在着一些无法消除的缺陷:我们在使用ChatGPT对话模型时,针对同一个问题,ChatGPT能够生成多个答案,这些答案中有的是对的,有的是错的。如果系统是完美的,理论上当生成策略采用贪心搜索时,得到的路径相对于其它生成策略就应该是最好的。那为什么在3位整数乘法上使用贪心搜索能够达到很高的测试准确率呢?我觉得是因为多位整数乘法只存在唯一解,而路径规划问题一般存在多个非唯一解。