我自己用SGD实现了一个算法,但是似乎陷入了局部最优。这种情况一般如何解决?
3个回答
可尝试随机地增大学习速率/学习步长。其想法是像模拟退火算法样,在优化时有一定概率接受非最优解,从而增大跳出局部最优的概率。
在每个epoch/iteration后需要把数据洗牌一遍,让每个batch的数据都不一样。我的理解是每个data point的loss funtion曲面不一样,一个batch的曲面是相关曲面的平均。如果每次batch中data不一样,也就是曲面都不一样,那就减小了停在局部最优的可能性。
SofaSofa数据科学社区DS面试题库 DS面经