1. 假设模型和损失函数
本文章是基于多元线形回归函数,最终目的是求出各个变量对目标值的影响,得到权重矩阵。
1.1假设模型
设一线形回归函数为:
其中,都是的向量,表示变量空间的维度。
1.2思路
在训练集中,随机选取(或者指定从某组训练集开始)一组训练值,并初始化。之后通过不同的思想,带入相应的迭代关系更新,最终输出在损失函数取最小值时的。
2.各类梯度下降法
2.1批量梯度下降法BGD
2.1.1损失函数
为使得整体的经验风险最小,在这我把该方程带入平方损失函数得能量函数:
这儿的表示样本集的大小,注意与1.1的方程n的区别,并且损失函数是只与有关的函数,(,)是已知数据。
2.1.2求梯度以及迭代关系
对损失函数求导,有:
由此,得到不同的迭代公式:
''在这表示赋值过程。
对于权重矩阵,有:
之后反复计算上面的过程,直至无限接近0,在这可以设置一个阈值,当两次迭代结果只差小于这个阈值可认为达到精度要求,输出。
优缺点分析:
- 全局最优解,代码容易实现。
- 当样本比较大时,计算量会变得非常大。
2.2随机梯度下降法SGD
2.2.1损失函数
对于本问题,损失函数不考虑使得每次迭代在整体都取得最满意的下降路径(即实际梯度),而是考虑得到在所选数据上的梯度。其关系如下
2.1.2求梯度以及迭代关系
求其梯度为:
因此得到迭代算法:
即:
之后反复计算上面的过程,直至无限接近0,在这可以设置一个阈值,当两次迭代结果只差小于这个阈值可认为达到精度要求,输出。
SGD计算的速度会远大于BGD,尤其是训练集很大是时候。但是,容易陷于局部最小值,且精度是低于BGD的。。
因此,通过多次选取不同的初值,对比结果,会在一定程度上优化陷于局部最小值问题。
2.3随机梯度下降法MBGD
该算法是介于SGD和BGD的。在样本中通过选取个数据集,
2.3.1损失函数
对于本问题,损失函数不考虑使得每次迭代在整体都取得最满意的下降路径(即实际梯度),而是考虑得到在所选数据上的梯度。其关系如下
2.3.2求梯度以及迭代关系
求其梯度为:
由此,得到不同的迭代公式:
''在这表示赋值过程。
对于权重矩阵,有:
同理,不断更新,从而使损失函数最小。