擅长:python、mysql、java
<p>我想说一个我认为在以前的回答中没有提到的微妙的观点。</p>
<p>如果您使用类似gradientdescentomoptimizer的操作,这些操作将非常相似。这是因为取梯度是一个线性运算,和的梯度和梯度之和是一样的。</p>
<p>但是,亚当做了一件特别的事:不管你的损失有多大,它都会按你的学习速度来调整梯度。如果你把你的损失乘以1000,它不会影响亚当,因为变化会被标准化。</p>
<p>所以,如果你的两次损失大致相同,那就没什么区别了。如果其中一个比另一个大得多,那么请记住,在最小化之前求和基本上会忽略小的一个,而两个操作将花费相同的努力来最小化两者。</p>
<p>我个人喜欢把它们分开,这样你就可以更好地控制在一个或另一个损失上。例如,如果是多任务学习,并且一个任务比另一个任务更重要,那么两个学习率不同的操作大致可以完成这一任务。</p>