在神经网络的一部分中每 n 次迭代进行反向传播是否有意义

Does it make sense to do backpropagation every n iteration in parts of a neural network

我有一个神经网络,它在某个点分支到两个子网络。

当我分别训练子网络时,我获得了相当不错的准确性。但是,当我同时训练它们时,似乎其中一项任务正在劫持公共层中的权重,因此造成一种情况,即我的一项任务准确度非常高,而另一项任务准确度很差。

为了减少更强大任务的影响,我正在考虑允许定义每 n 次迭代的权重更新。

你觉得有道理吗?

一项任务的数据是否多于另一项任务的数据?这可以解释为什么具有更多数据的任务被赋予更重要的权重——如果有更多数据需要拟合。

如果是这种情况,请尝试平衡数据。 无论哪种方式,我都会尝试使用损失函数而不是更新次数。当你定义损失函数时,让第二个任务更有价值..

这样做的一种骇人听闻的方法是对表现不佳的任务中的数据进行过度采样。所以让网络在转移到另一个任务之前读取相同的数据几次,从而使网络适合更重要。

另外,我会玩转任务之间的时间安排。如果你在这两个任务上都有大量数据,那么当你在任务 A 上训练时,网络将学习如何做好它,然后当你在任务 B 上训练很长时间时,网络将改变权重并且 "forgot" 当它在任务 A 上学习,因为这些权重对解决任务 B 没有帮助。即使你将这两个任务重复几次,网络完成训练的任务最终将是 "worth more"。所以确保你在每个时期混合任务(理想情况下,从任一任务中随机抽取每批)