梯度下降算法

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J ( θ 1 , θ 2 ) {J(\theta_1, \theta_2)} J(θ1,θ2) 的最小值。

梯度下降背后的思想是:

开始时我们随机选择一个参数的组合 ( θ 1 , θ 2 , . . . , θ n ) {(\theta_1, \theta_2, ..., \theta_n)} (θ1,θ2,...,θn) ,计算代价函数,在原来参数组合的基础上增加/减少一个数后,计算代价函数。我们持续这么做直到到到一个局部最小值 (lcalminimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

梯度下降算法公式:
在这里插入图片描述
其中 α {\alpha} α 是学习率,它决定了每次下降所减去的值。
对 J 的梯度决定了下降的方向。
上面的公式是对单个 θ {\theta} θ 操作,接下来的 θ {\theta} θ 代指整个 θ {\theta} θ 矩阵 ( θ 1 , θ 2 , . . . , θ n {\theta_1, \theta_2, ..., \theta_n} θ1,θ2,...,θn)

算法:

  1. 首先对所有 θ {\theta} θ 值 ( θ 1 , θ 2 , . . . , θ n {\theta_1, \theta_2, ..., \theta_n} θ1,θ2,...,θn) 初始化 ,计算 J ( θ ) {J(\theta)} J(θ)
  2. θ : = θ − α ∂ ∂ θ J ( θ ) {\theta: = \theta - \alpha\frac{\partial}{\partial \theta}J(\theta)} θ:=θαθJ(θ), 至此求得第二次的 θ {\theta} θ
  3. 之后继续进行下一次的迭代,求得 θ {\theta} θ 值,计算 J ( θ ) {J(\theta)} J(θ)
  4. 直到求得最小值,或者达到指定的迭代次数。

在这里插入图片描述

因为成本函数 J ( θ ) {J(\theta)} J(θ)凸函数(详情点击)。所以每次迭代后, J ( θ ) {J(\theta)} J(θ) 的值都会降低, J ( θ ) {J(\theta)} J(θ) 最终会减为 0,达到极小值点。无论上一次迭代的 θ {\theta} θ 为何值, θ {\theta} θ 都不再改变。




我对梯度下降算法的理解就是这些,如果有什么问题,欢迎留言,我会在看到的第一时间回复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值