专栏首页叶子陪你玩编程利用梯度下降算法预测数值

利用梯度下降算法预测数值

上一篇关于梯度下降的算法,原作者原理其实已经讲的比较清楚了,下面我将通过一个非常简单的案例,帮助理解并且应用梯度下降算法。

假设我们有一些数据,xdata = [1.0, 2.0, 3.0] ,这个是 输入数据,输出数据是ydata = [2.0, 4.0, 6.0],输入输出数据存在一个公式,使得它们可以对应上,这个公式很简单,直接就可以看出来是y=2x。

假如我们现在并不知道这个公式具体是多少,仅仅知道y=wx,而我们的目标就是要求出这个w值,使得最终的预测结果和我们的输出实际结果尽可能接近。

正常输入:xdata = [1.0, 2.0, 3.0] ,得到的结果应该是ydata = [2.0, 4.0, 6.0],如果得到结果变成y_pred = [5, 6, 7],这个误差就非常大了,那么我们就需要调整w的值,看看预测的值如何,不断重复该过程调整直到预测的结果和实际的结果接近一致就可以了。

实现步骤

1.明确预测函数。

2.明确误差损失函数。

3.明确梯度。

4.利用梯度下降方法逼近我们设置的阈值。

5.求得我们要的结果。

输入输出数据

预测函数

损失函数

梯度/导数

用损失函数的结果值对w求导,这里是复合求导,最终结果如下:

复合求导理解

训练前

还没有训练的时候,因为这个w是我们随意给的,所以得到的预测结果和真实的相差很远。

训练后

这里通过更改阈值,可以让精度更高,也就是更加接近真实值;这里的训练其实是不严谨的,直接把每个数据循环计算了,应该把每组数据看作一个整体。

(全文完)

本文分享自微信公众号 - 叶子陪你玩编程(gh_cd062460d25e),作者:青叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python小游戏设计入门4-捡金币游戏(中)

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • python是如何利用穷举法去解数学问题?

    本系列课程是针对无基础的,争取用简单明了的语言来讲解,学习前需要具备基本的电脑操作能力,准备一个已安装python环境的电脑。如果觉得好可以分享转发,有问题的地...

    用户7054460
  • scratch生成1-10随机不相同的10个数字

    生成10个随机数很简单,循环10次,循环里面每次获取一次1-10范围内的一个随机数。

    用户7054460
  • 关于云安全的三个鲜为人知的秘密

    如今,许多首席信息安全官呼吁人们需要正视云计算的安全需求。然而,尽管大家都有着共同的关注点,但采取的方法却各不相同;有些人呼吁在服务器方面做好防护工作,而另一些...

    静一
  • 行业领袖汇聚“2017环球资源VR/AR行业应用高峰论坛”

    VRPinea
  • 刨根究底字符编码之十四——UTF-16究竟是怎么编码的

    首先要注意的是,代理Surrogate是专属于UTF-16编码方式的一种机制,UTF-8和UTF-32是不用代理的。

    用户1876609
  • 自动化测试中的那些误解和偏见

    因为最近混了一些论坛以及群看别人的讨论。发现好多人认为自动化测试是测试人员的唯一出路。

    测试开发社区
  • 吴洪声十问CSDN蒋涛:年过35 岁的程序员都去哪儿了?

    见过最优秀的程序员是什么样的?真的有35岁职场危机吗?看CSDN创始人蒋涛怎么说。

    TVP官方团队
  • 自动化测试中的那些误解和偏见

    因为最近混了一些论坛以及群看别人的讨论。发现好多人认为自动化测试是测试人员的唯一出路。

    赵云龙龙

扫码关注云+社区

领取腾讯云代金券