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 定义
代表所有的训练集合中数据的目标值