您的位置:首页 > 其它

1.线性回归的推导--梯度下降法

2017-09-22 13:18 162 查看
1.在线性回归问题中,我们通常使用下面公式来拟合训练集:



其中

,为特征向量的个数;
2.如图假设x是二维的,则有





3.  我们可以将损失函数表示为:



4.  我们将目标函数转成求损失函

的最小值,该问题已经转换成了最小二乘问题,因此我们可以使用梯度下降法对

求最小值。

      1) 首先,为了简化问题,我们假设只有一组样本,即m=1,对

求偏导有:



2).其梯度下降的迭代公式可表示为:



其中,a表示学习率,这里做一个不严谨的类比,假设你在爬山,这会儿正在下山的图中,那么你朝着哪个方向下降速度会最快呢?答案显然是,梯度方向(本例为

),a就是你要迈的步子长度。注意:通常a是手动设置的,若a值设的太小,会导致步子迈的太小,你将花较长的时间下山,也就是函数要花很长的时间才能收敛;若a值设的过大,你的算法可能会迈过最小值,因为你的步子太大了。

5. 我们将3中所求的梯度下降算法推广到n维,则其可以写成:



6.注意:当你使用梯度下降的时候,当你接近局部最小值的时候,步子会越来越小,最终直到收敛,原因是你在更新的时候,

你会减去乘以梯度,当你达到局部最小值的时候,梯度也减为0,当你接近局部最小值的时候,在局部最小值处梯度是0,

也就是当你梯度下降的每一步都会自动的变得越来越小。

以上所讲述的算法称为批梯度下降算法

7.该算法的缺陷:每次计算都需要遍历整个训练集合 ,因为你需要对你的m个训练样本进行求和,当我们遇到非常大的 训练集

合的时候,这种算法就显得的不合适了。所以当你有一个很大的训练集合的时候,那么你应该使用另外一个称之为随机梯度下降的算法,

亦称为增量梯度算法,可表示为:



随机梯度下降算法的优点:你不需要在遍历所有的样本,提升了收敛速度。所以对大规模的训练集合,建议使用随机梯度下降算法。

随机梯度下降算法的缺点:随机梯度下降算法,不会精确的收敛到全局的最小值,但是会逼近最小值,通常达到这个精度就可以了。

8. 现在我们回到我们的问题,我们要计算的问题已经转化成了损失函数最小化,因此下面我们将开始证明线性回归问题:

8.1  回顾下几个概念:



所以,可以将梯度下降表示为:



若f表示矩阵到实数的映射,则有:



8.2矩阵迹的性质:
1)     设A是n*n方阵,则A的迹为对角阵之和:





8.2.定义一个设计矩阵x,将其定义成包含了训练集中所有输入的矩阵:



1.1  定义 

代表所有的训练集合中数据的目标值



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息