梯度下降法的代数方式描述
1. 先决条件: 确认优化模型的假设函数和损失函数。
比如对于线性回归,假设函数表示为
, 其中
(i = 0,1,2... n)为模型参数,
(i = 0,1,2... n)为每个样本的n个特征值。这个表示可以简化,我们增加一个特征
,这样
。
同样是线性回归,对应于上面的假设函数,损失函数为:
2. 算法相关参数初始化:主要是初始化
,算法终止距离
以及步长
。在没有任何先验知识的时候,我喜欢将所有的
初始化为0, 将步长初始化为1。在调优的时候再 优化。
3. 算法过程:
1)确定当前位置的损失函数的梯度,对于
,其梯度表达式如下:
2)用步长乘以损失函数的梯度,得到当前位置下降的距离,即
对应于前面登山例子中的某一步。
3)确定是否所有的
,梯度下降的距离都小于
,如果小于
则算法终止,当前所有的
(i=0,1,...n)即为最终结果。否则进入步骤4.
4)更新所有的
,对于
,其更新表达式如下。更新完毕后继续转入步骤1.
:
下面用线性回归的例子来具体描述梯度下降。假设我们的样本是
,损失函数如前面先决条件所述:
。
则在算法过程步骤1中对于
的偏导数计算如下:
由于样本中没有
上式中令所有的
为1.
步骤4中
的更新表达式如下:
从这个例子可以看出当前点的梯度方向是由所有的样本决定的,加
是为了好理解。由于步长也为常数,他们的乘机也为常数,所以这里
可以用一个常数表示。