梯度下降

梯度下降

上文 中说了参数的计算,但是在实际的应用过程中,参数矩阵并不是可以直接计算的,是无解的,此时需要借助计算机的快速运算能力,不断优化参数,得到近似最优解。那么如何进行优化,优化的方向如何呢?这就涉及到了梯度下降和学习率(优化时每次采用的步长)。

首先来看一下梯度的定义。

梯度:在数学上,梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模),也就是说梯度是使得该函数取得最大值的方向即梯度的方向是函数值增大的方向

那么梯度下降指的就是梯度的反方向

梯度下降的常用算法有三种:批量梯度下降算法、随机梯度下降算法和小批量梯度下降算法

假设目标函数是:均方差损失函数

J ( θ ) = 12 m ∑ i = 1 i = m ( y ( i ) − h θ ( x ( i ) ) ) 2 J ( θ ) = 12 m ∑ i = 1 i = m ( y ( i ) − h θ ( x ( i ) ) ) 2 J ( θ ) = 1 2 m ∑ i = 1 i = m ( y ( i ) − h θ ( x ( i ) ) ) 2 J(θ)=12m∑i=1i=m(y(i)−hθ(x(i)))2J(θ)=12m∑i=1i=m(y(i)−hθ(x(i)))2 \begin{aligned}J(\theta) =\frac{1}{2m}\sum_{i =1}^{i = m}(y^{(i)} -h_\theta(x^{(i)}))^2\end{aligned} J(θ)=12mi=1i=m(y(i)hθ(x(i)))2J(θ)=12mi=1i=m(y(i)hθ(x(i)))2J(θ)=2m1i=1i=m(y(i)hθ(x(i)))2α就是学习率,也叫作每次优化更新的步长

每次更新选择一小部分数据计算,小批量随机梯度下降兼顾了迭代速度和收敛方向,也是最常用的。

一般设置小批量时取32,64,128,最常用的是32,64.

学习率(步长)

学习率的设定会对结果产生巨大的影响,一般设定小一些。如果学习率设置过大,很可能到达的收敛点是局部最小值也就是函数的一个极小值,而不是全局最优解,即全局最小值,甚至有可能使得结果不收敛。学习率设置过小,则收敛速度变慢,如何平衡收敛速度和避免结果不是全局最优解?例如,可以将训练过程分成几部分,0-10000次时采用大一点的学习率0.1,10000-30000次训练时候,学习率设置为0.005,30000次到100000次训练时候,将学习率设置为0.001。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聆一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值