梯度下降算法

梯度下降是机器学习的优化算法中的一种,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型。

梯度的引入

在这里插入图片描述

z = y 2 − x 2 z=y^2-x^2 z=y2x2
从公式中可以看出 ,当沿着x轴运动时,偏导数为 ∂ z ∂ x \frac{\partial z}{\partial x} xz=-2x,与 y无关,当沿着 Y轴运动时, ∂ z ∂ y \frac{\partial z}{\partial y} yz=2y,与x轴无关。

梯度 ∇ f = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , . . . . . . ∂ f ∂ x n ) \nabla f =(\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},......\frac{\partial f}{\partial x_n}) f=(x1f,x2f,......xnf)
在这里插入图片描述
将函数f(x,y) = − ( c o s 2 x + c o s 2 y ) 2 −(cos^2x + cos^2y)^2 (cos2x+cos2y)2的梯度描绘为在底面上投影的向量场。可以看出,函数的增加与梯度的大小有关。

梯度下降公式: x = x − η ∂ f x = x-η\partial f x=xηf

看下图,一开始的时候我们随机站在一个点,把他看成一座山,每一步,我们都以下降最多的路线来下山,那么,在这个过程中我们到达山底(最优点)是最快的,而上面的η,它决定了我们“向下山走”时每一步的大小,过小的话收敛太慢,过大的话可能错过最小值)。这是一种很自然的算法,每一步总是寻找使x下降最“陡”的方向(就像找最快下山的路一样)。
在这里插入图片描述

随机梯度下降(SGD)与批量梯度算法

批量梯度下降是,求出一个维度中所有的数据,取个平均来当做每一次梯度下降的step.这样做虽然准确,但是每次要计算一个维度的所有数据的梯度,花费资源较大.所以才有了随机梯度下降的思想:每次只随机取一个维度中的一条数据求梯度
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值