龙空技术网

神经网络入门知识(三)

AI技术咨询 257

前言:

眼前看官们对“步长算法又叫什么”大体比较关怀,咱们都需要知道一些“步长算法又叫什么”的相关文章。那么小编也在网络上收集了一些有关“步长算法又叫什么””的相关文章,希望咱们能喜欢,小伙伴们一起来了解一下吧!

梯度下降(Gradient Descent)

在机器学习的各种算法中常常会用到梯度下降来求解使得损失函数最小时的参数w(权重)和b(偏置)的值。

代数定义

在微积分里面,对多元函数的参数求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数 f(x,y) ,分别对x,y求偏导数,求得的梯度向量就是 (∂f/∂x, ∂f/∂y)^T ,简称 grad f(x,y) 或者 ▽f(x,y) 。对于在点 (x_0,y_0) 的具体梯度向量就是 (∂f/∂x_0, ∂f/∂y_0)^T ,或者 ▽f(x_0,y_0) ,如果是3个参数的向量梯度,就是 (∂f/∂x,∂f/∂y,∂f/∂z)^T,以此类推。

几何定义

函数上某一点的梯度是向量,几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数 f(x,y) ,在点 (x_0,y_0)沿着梯度向量的方向 (就是 (∂f/∂x_0, ∂f/∂y_0)^T )是 f(x,y) 增加最快的地方。或者说沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x_0, ∂f/∂y_0)^T 的方向,梯度减少最快,也就是更加容易找到函数的最小值。

算法调优

1、算法步长选择:梯度下降的步长决定了梯度下降的速度(也就是学习的速度),如果选择过小,会导致迭代次数过多,学习速度慢,如果选择过大或许错过最优解,所以步长需要反复尝试以获得最适合的步长。

2、初始值选择:因为有局部最优解的风险,初始值选择不同会导致获得不同的最优解,除非我们能让损失函数成为一个凸函数,否则都有可能存在多个局部最优解,所以需要多尝试几次以获得全局最优解。

3、归一化:由于样本不同特征值范围的不同,会影响迭代次数,可以将取值归一化处理,也就是对于每一个特征值X=(X-均值)/方差,这样处理后,新的特征值的均值为0,方差为1。

几大分类

1、批量梯度下降:更新参数(如w和b)时,采用所有的样本数据来更新。

2、随机梯度下降:与批量梯度下降相反,只选取第一个错误样本的数据来更新参数。

3、小批量梯度下降:结合批量梯度下降和随机梯度下降二者的优势,采用部分样本数据来更新参数。

其他算法

除了梯度下降算法以外还有最小二乘法、牛顿法和拟牛顿法来求解最优解的参数。

实例

下面以感知机为例用随机梯度下降法为大家演示具体做法。

假设正实例点x1=(3,3)^T, x2=(4,3)^T, 负实例点x3=(1,1)^T(其中^T表示转置,也就是数据点都用列向量表示,因为特征值范围不大,也为了简化计算,这里我们就不再对数值做归一化处理。),感知机模型分f(x)=y=sign(wx+b)(w和x都是向量,y=1 或 -1),我们在此的目标是要找到正确分开正负实例点的超平面s=wx+b,损失函数为 L(w,b)=-∑y(wx+b)(此公式只计算错误分类点,正确分类的点不计入损失)。

首先我们分别对损失函数关于w和b求偏导,

∂L/∂w=-∑yx

∂L/∂b=-∑y

这就是梯度方向,那么我们取梯度反方向,使得损失函数最小,就是我们更新参数w和b的方向,另外因为我们采用的是随机梯度下降法,所以只要碰到有一个错误分类的点时就更新参数,即当:

y(wx+b) <= 0 时,(正确分类时,y=1时,wx+b > 0;y=-1时,wx+b < 0)

更新

w = w + yx

b= b + y

我们取初值 w=0,b=0,

随机梯度下降

从上表可以看出,随着迭代次数的增加,最终找到超平面s=wx+b=(1,1)^Tx-3(当然因为w和b初始值的不同取值,会造成获得不同超平面,也就是说存在多个满足分类要求的超平面),损失函数最终收敛到最小值0。

标签: #步长算法又叫什么