优化过程中是损失函数太小怎么办

798 阅读4分钟

1、局部最小值(local minima)与鞍点(saddle point鞍)

1.1 如何判断是局部最低点还是鞍点?

  • Critical Point 临界点,gradient为0(微分为0)的点,统称为critical point

  • 如果gradient很靠近零,卡在了某个critical point,我们有没有办法知道,到底是local minima,还是saddle point?其实是有办法的。只要算出海森矩阵hessian,这个矩阵里面元素就是L的二次微分,这个矩阵如果它所有的特征值eigen value都是正的,那就代表我们现在在local minima,如果它有正有负,就代表在saddle point

1.2 局部最低点和鞍点哪个更常见?

  • 从经验上看起来,其实local minima并没有那么常见,多数的时候,你觉得train到一个地方,gradient很小,然后不再update,往往是因为卡在了一个saddle point。从二维来看没有路可走,但是从三维来看可能就有路可走了;从三维的空间来看,没有路可以走的东西,在高维的空间中可能是有路可以走的,error surface可能也一样

2、批次(Batch)与动量(Momentum)

2.1 Small Batch v.s. Large Batch

  • 实际上在算微分的时候,并不是真的对所有 Data 算出来的 L 作微分,而是把所有的 Data 分成一个一个的 Batch,有的人是叫Mini Batch。遍历所有的Batch ,叫做一个 Epoch

  • 大的 Batch 跟小的 Batch,它们各自有它们擅长的地方,所以 Batch Size,变成另外一个 你需要去调整的 Hyperparameter。

2.2 Gradient Descent + Momentum

  • 在物理的世界裡,一个球如果从高处滚下来,从高处滚下来就算滚到 Saddle Point,如果有惯性,它从左边滚下来,因為惯性的关係它还是会继续往右走,甚至它走到一个 Local Minima,如果今天它的动量够大的话,它还是会继续往右走,甚至翻过这个小坡然后继续往右走。Momentum,这也是另外一个,有可能可以对抗 Saddle Point,或 Local Minima 的技术

3、自适应学习率

  • critical point其实不一定是你在训练一个Network的时候会遇到的最大的障碍。当我们说走到critical point的时候,意味著gradient非常的小,但是你有确认过,当你的loss不再下降的时候,gradient真的很小吗?

  • 如上图,虽然loss不再下降,但是这个gradient的norm of gradient的大小并没有真的变得很小。所以你要注意,当你今天训练一个network,train到后来发现,loss不再下降的时候,你不要随便说,我卡在local minima,我卡在saddle point,有时候根本两个都不是,你只是单纯的loss没有办法再下降
  • Adagrad:如果在某一个方向上,我们的gradient的值很小,非常的平坦,那我们会希望learning rate调大一点,如果在某一个方向上非常的陡峭,坡度很大,那我们其实期待,learning rate可以设得小一点

  • RMS Prop:就算是同一个参数同一个方向,我们也期待说,learning rate是可以动态的调整的

  • Adam:RMS Prop加上Momentum,是目前最常用的

4、损失函数可能也有影响

  • 从optimization的角度,相较于Mean Square Error,Cross-entropy是被更常用在分类上。
  • 概念区别:均方误差(MSE)的含义是求一个batch中n个样本的n个输出与期望输出的差的平方的平均值。Cross-entropy(交叉熵损失函数),用来评估当前训练得到的概率分布与真实分布的差异情况。它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。
  • 交叉熵相对MSE的优点:1、交叉熵loss权重更新更快;2、MSE是非凸优化问题而 Cross-entropy 是凸优化问题

5、批次标准化

  • 如果我们可以给不同的 dimension,同样的数值范围的话,那我们可能就可以制造比较好的 error surface,让 training 变得比较容易一点,这些方法统称为Feature Normalization
  • 在实作的时候,我们只对一个 batch 里面的 data做 normalization,叫做 Batch Normalization