一、梯度 1、导数、偏微分、梯度的区别:
1)导数:是标量,是在某一方向上变化的效率
2)偏微分,partial derivate:特殊的导数,也是标量。函数的自变量的方向,函数的自变量越多,偏微分就越多。
3)梯度,gradient:把所有的偏微分集合成向量,是向量。
梯度向量的长度代表函数在当前点变化的速率。
2、梯度的作用:1)作用通过梯度来找到函数的极小值
2)如何找到极小值,通过以下公式:
学习步长就是学习率。
不断更新自变量,当偏导(梯度)趋近于0的时候,函数值也就趋近于极小值。
3)举例:
3、梯度的优化方法:
不同的优化方法具有不同的效率、准确率。有的快,有的准确率高。主要通过以下几个方向优化:
1)初始化数据(initialization)
初始状态的不同,对结果的影响可能有很大区别
如果不清楚的话,就使用目前主流的初始化方法。
2)学习率(learning rate)
过大会导致数据不收敛,过小会导致计算量的增加。
3)动量(monument)
给数据一个惯性,当惯性达到一定程度后,可以减少数据陷入局部极小值的情况。
4、凸函数(convex function):向一个碗一样,两点中点处,均值大于实际值,如下图所示
5、局部极小值(local minima):局部极小值较多的情况的解决办法:
6、鞍点(saddle point):一个点,在某一方向上是极小值,在另一方向上又是极大值。如下图中红点所示:
二、激活函数 1、激活函数的点
1)作用
当函数值达到某一阈值后,激活函数将函数值设置为特定值(根据激活函数公式而定),从而达到激活的目的
2)激活函数均不可导
2、常用激活函数 1)sigmoid* sigmoid导数(derivative):
* sigmoid用处:
a)因为sigmoid输出的值是在0~1之间,所以适用于概率问题;也适用于图像的RGB问题,因为RGB值是0~255之间
b)sigmoid的缺点:因为sigmoid函数在处于+∞和-∞时候,导数趋近于0,会使得数据处于更新非常缓慢(长时间loss保持不变的情况),即:梯度弥散问题。
* sigmoid函数的pytorch实现2)tanh