Java教程

02梯度下降算法

本文主要是介绍02梯度下降算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

梯度算法

  • 梯度算法公式
    梯度算法
    其中α 表示速率计算步骤优先从右边计算
    注意要保证$\theta_1$和$\theta_0$ 同时计算
    For Example:
    同时计算

  • 来看一道例题吧
    例题1

Suppose $\theta_0=1,\theta_1=2$ and we simultaneously update $\theta_0$and $\theta_1$using the rule:$\theta_j := \theta_j + \sqrt{\theta_0 \theta_1}$(for j = 0 and j=1) What are the resulting values of $\theta_0$and $\theta_1$?

假设$\theta_0=1,\theta_1=2$ 我们想同步更新公式:
$\theta_j := \theta_j + \sqrt{\theta_0 \theta_1}$(for j = 0 and j=1)
最后得到$\theta_0,\theta_1$ 的结果是多少


梯度算法详解
其中对于J($\theta_1$)来说由于只有一个自变量所以偏导等于全导,则$d/d\theta_1J(\theta_1)$等于对$\theta_1$求导数,即红色斜线的斜率,斜率为正时X向原点移动 $J(\theta)$值变小,反之增大符合找到MIN这个目的。

α的作用

α 是系数用来调整步幅的大小,即$\theta_1$在X轴移动的距离,如果过小$\theta_1$就会移动一小点距离,这样会使得需要很多次才能到达MIN值,反之如果已经很接近Min值的话过大的步幅会使得$J(\theta_1)$ 的值发散不收敛。


一道例题
如果已经到了MIN值后近一步使用梯度算法会发生什么?

思考过程 :

如果已经到了最小值那么此时斜率为0,也就是式子会变成$\theta_1:= \theta_1 - 0$即保持$\theta_1$不变所以选A

答案是:A


为什么α设置成任意值梯度算法可以不断的优化?

自动优化的梯度算法
当你原来越接近Min值的时候斜率自然越来越趋近于0,也就是说梯度算法公式中的
斜率部分
越来越小这将导致X轴的移动距离越来越小,所有梯度算法会自动的优化趋近于最小值。

总结

梯度算法公式是用来使任意函数趋近于最小值的一种方式,当它作用于代价函数的时候就演变成了算法

这篇关于02梯度下降算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!