1、SGD对训练集的输入顺序敏感。
之前没注意这个问题,训练集前一部分全是label=1的,后面部分全是label=0,导致分类结果全部一边倒。一直没找到问题,以为是数据或者模型出错了,后来偶然画损失函数图的时候,发现loss在中间部分会突增,才意识到跟训练集输入有关。
之所以模型敏感导致分类结果一边倒,这就好像训练one-class模型一样;梯度先沿着某个轴下降,然后等到输入为label=0的时候,梯度又沿着某个轴下降,导致陷入局部最优解。

原文:https://www.cnblogs.com/vincent-vg/p/10502492.html