激活函数与Loss的梯度

一、梯度 1、导数、偏微分、梯度的区别:

  1)导数:是标量,是在某一方向上变化的效率

  2)偏微分,partial derivate:特殊的导数,也是标量。函数的自变量的方向,函数的自变量越多,偏微分就越多。

  

激活函数与Loss的梯度

  3)梯度,gradient:把所有的偏微分集合成向量,是向量。

  

激活函数与Loss的梯度

  梯度向量的长度代表函数在当前点变化的速率。

2、梯度的作用:

  1)作用通过梯度来找到函数的极小值

  2)如何找到极小值,通过以下公式:

  

激活函数与Loss的梯度

  学习步长就是学习率。

  不断更新自变量,当偏导(梯度)趋近于0的时候,函数值也就趋近于极小值。

  3)举例:

  

激活函数与Loss的梯度

 3、梯度的优化方法:

  

激活函数与Loss的梯度

  不同的优化方法具有不同的效率、准确率。有的快,有的准确率高。主要通过以下几个方向优化:

  1)初始化数据(initialization)

    初始状态的不同,对结果的影响可能有很大区别

    如果不清楚的话,就使用目前主流的初始化方法。

  2)学习率(learning rate)

    过大会导致数据不收敛,过小会导致计算量的增加。

  3)动量(monument)

    给数据一个惯性,当惯性达到一定程度后,可以减少数据陷入局部极小值的情况。

4、凸函数(convex function):

向一个碗一样,两点中点处,均值大于实际值,如下图所示

激活函数与Loss的梯度

5、局部极小值(local minima):

激活函数与Loss的梯度

局部极小值较多的情况的解决办法:

激活函数与Loss的梯度

6、鞍点(saddle point):

  一个点,在某一方向上是极小值,在另一方向上又是极大值。如下图中红点所示:

  

激活函数与Loss的梯度

二、激活函数 1、激活函数的点

  1)作用

  当函数值达到某一阈值后,激活函数将函数值设置为特定值(根据激活函数公式而定),从而达到激活的目的

  

激活函数与Loss的梯度

  2)激活函数均不可导

2、常用激活函数   1)sigmoid

  

激活函数与Loss的梯度

  * sigmoid导数(derivative):

  

激活函数与Loss的梯度

   * sigmoid用处:

   a)因为sigmoid输出的值是在0~1之间,所以适用于概率问题;也适用于图像的RGB问题,因为RGB值是0~255之间

  b)sigmoid的缺点:因为sigmoid函数在处于+∞和-∞时候,导数趋近于0,会使得数据处于更新非常缓慢(长时间loss保持不变的情况),即:梯度弥散问题。

  * sigmoid函数的pytorch实现

  

激活函数与Loss的梯度

  2)tanh

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjsww.html