讲透机器学习中的梯度下降

本文始发于个人公众号:TechFlow,原创不易,求个关注


在之前的文章当中,我们一起推导了线性回归的公式,今天我们继续来学习上次没有结束的内容。

上次我们推导完了公式的时候,曾经说过由于有许多的问题,比如最主要的复杂度问题。随着样本和特征数量的增大,通过公式求解的时间会急剧增大,并且如果特征为空,还会出现公式无法计算的情况。所以和直接公式求解相比,实际当中更倾向于使用另外一种方法来代替,它就是今天这篇文章的主角——梯度下降法。

梯度下降法可以说是机器学习和深度学习当中最重要的方法,可以说是没有之一。尤其是在深度学习当中,几乎清一色所有的神经网络都是使用梯度下降法来训练的。那么,梯度下降法究竟是一种什么样的方法呢,让我们先从梯度的定义开始。


梯度的定义


我们先来看看维基百科当中的定义:梯度(gradient)是一种关于多元导数的概括。平常的一元(单变量)函数的导数是标量值函数,而多元函数的梯度是向量值函数。多元可微函数 f {\displaystyle f} f在点 P {\displaystyle P} P上的梯度,是以 f {\displaystyle f} f P {\displaystyle P} P上的偏导数为分量的向量。

这句话很精炼,但是不一定容易理解,我们一点一点来看。我们之前高中学过导数,但是高中时候计算的求导往往针对的是一元函数。也就是说只有一个变量x,求导的结果是一个具体的值,它是一个标量。而多元函数在某个点求导的结果是一个向量,n元函数的求导的结果分量就是n,导数的每个分量是对应的变量在该点的偏导数。这个偏导数组成的向量,就是这个函数在该点的梯度。

那么,根据上面的定义,我们可以明确两点,首先梯度是一个向量,它既有方向,也有大小。


梯度的解释


维基百科当中还列举了两个关于梯度的例子,帮助我们更好的理解。

第一个例子是最经典的山坡模型,假设我们当下站在一个凹凸不平的山坡上,我们想要以最快的速度下山,那么我们应该该从什么方向出发呢?很简单,我们应该计算一下脚下点的梯度,梯度的方向告诉我们下山最快的方向,梯度的大小代表这点的坡度。

第二个例子是房间温度模型,假设我们对房间建立坐标系,那么房间里的每一个点都可以表示成 ( x , y , z ) {\displaystyle (x,y,z)} (x,y,z),该点的温度是 ϕ ( x , y , z ) \phi(x,y,z) ϕ(x,y,z)。如果假设房间的温度不随时间变化,那么房间里每个点的梯度表示温度变热最快的方向,梯度的大小代表温度变化的速率。

通过这两个例子,应该很容易理解梯度的方向和大小这两个概念。


举例


假设f是一个定义在三维空间里的函数,那么,f在某一点的梯度,可以写成:

∇ f = ( ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z ) = ∂ f ∂ x i + ∂ f ∂ y j + ∂ f ∂ z k \nabla f=(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z})=\frac{\partial f}{\partial x}i+\frac{\partial f}{\partial y}j + \frac{\partial f}{\partial z}k f=(xf,yf,zf)=xfi+yfj+zfk

这里的 i , j , k i, j, k i,j,k都是标准单位向量,表示坐标轴 x , y , z x, y, z x,y,z的方向。

我们举个例子:

f = 3 x 2 +

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值