梯度下降(Gradient Descent)

分别求解损失函数L(w,b)wb的偏导数,对于w,当偏导数绝对值较大时,w取值移动较大,反之较小,通过不断迭代,在偏导数绝对值接近于0时,移动值也趋近于0,相应的最小值被找到。

η选取一个常数参数,前面的负号表示偏导数为负数时(即梯度下降时),w向增大的地方移动。

对于非单调函数,可能会陷入局部最优的情况,可以通过设定不同的w初始值,来对比不同参数下的损失函数值。梯度下降法未必是最优的计算权重参数的方法,但是作为一种简单快速的方法,经常被使用。

 

过拟合(overfitting):

模型过于复杂(所需要的参数较多),而样本数较少时就会出现过拟合的现象,表现为模型在training dataerror很小,而在testing data上出现很大的error,个人认为,过拟合现象过度的拟合了training data的曲线,导致训练过程中用到了过多的非共性特征(即模型学习到training data特有的一些特征,而这些特有特征并非整个分类需要的共性特征),导致模型过度依赖training data,不具备通用性。

 

学习率(Learning Rate):

前面梯度下降中的η就是学习率,学习率的大小决定了网络找到最优解需要迭代的次数,学习率越大,需要迭代的次数越少,但是可能越过最优值;学习率越小,优化效率较低,长时间可能无法收敛。

针对不同的数据量、损失函数等一些具体情况,学习率需要做相应的调整,有如下几种方式:

1、η/N,表示随着样本数量的增加,需要的学习率越小,因为偏导数会随着训练数据的增多而变大(样本越多,损失函数越大),因此学习率相应的设置更小的值

2、选择一个不被训练集样本个数影响的成本函数,如均方平均值

3、在每次迭代中调节不同的学习率

基本思路:离最优值越远,需要朝最优值移动的就越多

解决方法:每次迭代后,使用估计的模型参数检查误差函数值,如果相对一上一次迭代,错误率减少了,就可以增大学习率;如果增大了,就重新设定上一轮的w值,并减少学习率到之前的一半。

4、归一化输入向量:mix-max归一化、zscore归一化

 

分析梯度大小:

由前面可知,梯度大小 = 学习率*一次偏导,反映了偏导数绝对值越大,w取值离最小L函数越远,梯度可设置越大;但并非完全如此,偏导数变化的快慢也影响了其与最优解的距离,即同样的偏导数值,偏导数变化越快,说明离最优解越近,因此,梯度大小还与偏导数的变化率有关系,即二次偏导,二次偏导越大,距离越小。此时,学习率 =η/二次偏导。Adagrad给出一个近似的二次偏导式子,可减少计算量

 

Feature Scaling

梯度下降的过程中,由于w1w2loss函数的影响程度不同,表现为椭圆形,梯度下降的过程中不是朝着圆心走,效率会低一些,通过Feature Scaling,使得各权重占比一致,梯度朝着圆心走。