机器学习(3)——回归算法:最小二乘法(梯度下降法)

转载自:微信公众号  算法channel


1 梯度下降概念


梯度是函数在某点处的一个方向,并且沿着该方向变化最快,变化率最大。


沿着梯度这个方向,使得值变大的方向是梯度上升的方向,沿着使值变小的方向便是下降的方向。


综上,梯度下降的方向就是在该点处使值变小最快的方向。



2 梯度下降求参数


2.1 求梯度

最小二乘项的代价函数(不好理解的话,可以理解为极大似然估计时,某个部分必须取得极小值,它被称为代价函数):

其中,m 代表样本个数,y(i) 表示第 i 个样本的标签值(就是我们高中数学的因变量),theta的转置表示各个特征的权重参数的矩阵,x(i)表示各个特征的取值(就是自变量)。


我们知道可以用数学方法直接求出代价函数的极小值,进而求出权重参数为,

上式中的参数 theta 别以为只有一个值,它实际上是特征的权重参数向量,如果有5个特征,它就对应着5个元素,如果它有100个特征,对应着100个元素。


在用梯度求解时的代价函数与直接求法有一点小区别,代价函数要除以样本个数,言外之意,我们的代价函数不会因为样本个数太多,而变得越大吧,应该不受样本个数的影响吧,因此,微调后的代价函数为:

为什么是偏导数呢?因为就像上面说的,如果有100个特征,那可是对应着100个权重参数的,自然要对每个theta求导数,也就是含有多个自变量的函数求导数,不就是叫做求偏导吗。结果为:

其中 表示第 j 个特征的权重参数,表示第 i 个样本的第 j 个特征的权重参数。


2.2 参数迭代公式

每次调整一点点,不能一次调整太多,调整的系数,我们称为学习率,因此每次参数的调整迭代公式可以写为如下所示:

其中表示第 t+1 个迭代时步的第 j 个特征的权重参数,为第 t 个迭代时步的第 j 个特征的权重参数。


上式的减去,是因为梯度下降,沿着求出来的导数的反方向。


3 实战技巧

注意观察上式,权重参数的迭代公式,如果我们参与计算的所有样本为 m 个,如果样本个数为10万个,共有10个特征,共需要迭代1万步,你想想这个计算量得多大呀?10万 * 10 * 1万 = 1 e 10,这个计算量不小呀。


因此,在实际的应用中,往往选取10万个样本中的一小批来参与本时步的迭代计算,比如每次随机选取20个样本点,再乘以一个学习率,即下面的公式:

这样的计算量就小很多了吧,因此在机器学习中,每个时步要想让所有的样本都参与计算,往往是不可取的,相对应的,是随机选取一小批数据来参与当前时步的迭代计算,才是上策。


小结:

最小二乘项的两种求解方法:直接法和梯度下降法都阐述了一遍。直接法只是一种求解权重参数的巧合,现实中往往更复杂的模型是不大可能直接求出权重参数的,更可能是通过梯度下降做法求权重参数吧。这两种方法都相同的是建立模型得到目标函数,求解样本的似然函数,然后极大对数似然估计求参数,最后都得到了一个代价函数吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值