最小二乘法原理(后):梯度下降求权重参数

在上一篇推送中总结了用数学方法直接求解最小二乘项的权重参数,然而有时参数是无法直接求解的,此时我们就得借助梯度下降法,不断迭代直到收敛得到最终的权重参数。首先介绍什么是梯度下降,然后如何用它求解特征的权重参数,欢迎您的阅读学习。

1 梯度下降

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

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

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

2 梯度下降求参数

2.1 求梯度

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

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

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

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

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

如何用上节介绍的梯度下降来求权重参数的向量呢?

还是从概念入手,首先得求出梯度来吧,说白了就是求出代价函数的偏导数。为什么是偏导数呢?因为就像上面说的,如果有100个特征,那可是对应着100个权重参数的,自然要对每个theta求导数,也就是含有多个自变量的函数求导数,不就是叫做求偏导吗。

下面直接对代价函数求偏导,具体推导过程见【机器学习储备(4):最常用的求导公式推送消息】,结果为:

其中 θ j 表示第 j 个特征的权重参数,

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

2.2 参数迭代公式

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

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

θ j为第 t 个迭代时步的第 j 个特征的权重参数。

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

3 实战技巧

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

10万 * 10 * 1万 = 1 e 10,这个计算量不小呀。

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

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

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

明天就该实战了!手动编写python代码分别实现以上两种方法来实现线性回归吧。数据集还是经典的房屋面积价值dataset 。

当然,OLS算法在sklearn库中已经有了对应的实现,但是这并不妨碍我们手动编写代码,因为我们是为了从思想层面认识机器学习最基本也非常重要的最小二乘法吧,这也是入门机器学习的相对较好的方法吧。

谢谢您的阅读,期待您的到来!

原文发布于微信公众号 - 算法channel(alg-channel)

原文发表时间:2017-11-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

通道洗牌、变形卷积核、可分离卷积?盘点卷积神经网络中十大令人拍案叫绝的操作。

CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。我下面会对近几年一些具有变革性的工...

3848
来自专栏AI科技大本营的专栏

AI从入门到放弃:BP神经网络算法推导及代码实现笔记

作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍!

1832
来自专栏SIGAI学习与实践平台

流形学习概述

在很多应用中,数据的维数会很高。以图像数据为例,我们要识别32x32的手写数字图像,如果将像素按行或者列拼接起来形成向量,这个向量的维数是1024。高维的数据不...

1714
来自专栏AI科技大本营的专栏

技术 | 变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作

作者 | Professor ho CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量...

3235
来自专栏杂七杂八

梯度下降

梯度下降(Gradient Descent)是在求解机器学习算法的模型参数(无约束优化问题)时,最常采用的方法之一 代价函数 提到梯度下降就不得不说一下代价函...

3075
来自专栏技术翻译

用数学方法解密神经网络

在本文中,我们将讨论简单神经网络背后的数学概念。其主要目的是说明在建立我们自己的人工智能模型时,数学是如何发挥巨大作用的。

1760
来自专栏企鹅号快讯

机器学习算法实战

目 录 逻辑回归算法步骤简述 选择输入函数:sigmoid函数 选择优化算法:梯度上升法 观察数据集 批梯度上升训练 随机梯度上升训练 推荐阅读时间: 10m...

2315
来自专栏智能算法

初识支持向量机原理

支持向量机作为机器学习中最为难于理解的算法,小编将以三篇的篇幅去讲解小编自己理解的SVM算法。主要包括:初识支持向量机原理、SVM如何解决线性不可分、SVM实践...

3436
来自专栏机器学习算法工程师

特征工程最后一个要点 : 特征预处理

地址:https://www.cnblogs.com/pinard/p/9093890.html

1073
来自专栏人工智能头条

非科班出身,我是如何自己摸索研究卷积神经网络体系结构的

虽然很不愿意提起这件伤心事,但国庆假期确实结束了?。在这说长不长说短也不算短的7天里,不知道大家有没有吃好喝好玩好pia学好呢?

1503

扫码关注云+社区

领取腾讯云代金券