当前位置: 首页 > news >正文

网站制作教学seo分析网站

网站制作教学,seo分析网站,网站宣传内容,论坛网站前置审批写在前面 一直不太理解梯度下降算法是什么意思,今天我们就解开它神秘的面纱 写在中间 线性回归方程 如果要求出一条直线,我们只需知道直线上的两个不重合的点,就可以通过解方程组来求出直线 但是,如果我们选取的这两个点不在直…

写在前面

一直不太理解梯度下降算法是什么意思,今天我们就解开它神秘的面纱


写在中间

线性回归方程


如果要求出一条直线,我们只需知道直线上的两个不重合的点,就可以通过解方程组来求出直线

但是,如果我们选取的这两个点不在直线上,而是存在误差(暂且称作观测误差),这样求出的直线就会和原直线相差很大,我们应该怎样做呢?首先肯定不能只通过两个点,就武断地求出这条直线。

在这里插入图片描述

我们通常尽可能多地使用分布在直线周围的点,也可能不存在一条直线完美的穿过所有采样点。那么,退而求其次,我们希望能找到一条比较“好”的位于采样点中间的直线。那么怎么衡量“好”与“不好”呢?一个很自然的想法就是,求出当前模型的所有采样点上的预测值𝑤𝑥(𝑖) + 𝑏与真实值𝑦(𝑖)之间的差的平方和作为总误差 L \mathcal{L} L,然后搜索一组参数 w ∗ , b ∗ w^{*},b^{*} w,b使得 L \mathcal{L} L最小,对应的直线就是我们要寻找的最优直线。

w ∗ , b ∗ = arg ⁡ min ⁡ w , b 1 n ∑ i = 1 n ( w x ( i ) + b − y ( i ) ) 2 w^*,b^*=\arg\min_{w,b}\frac{1}{n}\sum_{i=1}^{n}\bigl(wx^{(i)}+b-y^{(i)}\bigr)^2 w,b=argminw,bn1i=1n(wx(i)+by(i))2

最后再通过梯度下降法来不断优化参数 w ∗ , b ∗ w^{*},b^{*} w,b

有基础的小伙伴们可能知道求误差的方法其实就是均方误差函数,不懂得可以看这篇文章补充养分《误差函数》 ,我们这篇文章就侧重梯度下降。

梯度下降


函数的梯度定义为函数对各个自变量的偏导数组成的向量。不会的话,翻翻高等数学下册书。

举个例子,对于曲面函数𝑧 = 𝑓(𝑥, 𝑦),函数对自变量𝑥的偏导数记为 ∂ z ∂ x \frac{\partial z}{\partial x} xz,函数对自变量𝑦的偏导数记为 ∂ z ∂ y \frac{\partial z}{\partial y} yz,则梯度∇𝑓为向量 ( ∂ z ∂ x , ∂ z ∂ y ) ({\frac{\partial z}{\partial x}},{\frac{\partial z}{\partial y}}) (xz,yz),梯度的方向总是指向当前位置函数值增速最大的方向,函数曲面越陡峭,梯度的模也越大。

函数在各处的梯度方向∇𝑓总是指向函数值增大的方向,那么梯度的反方向−∇𝑓应指向函数值减少的方向。利用这一性质,我们只需要按照下式来更新参数,,其中𝜂用来缩放梯度向量,一般设置为某较小的值,如 0.01、0.001 等。

x ′ = x − η ⋅ d y d x x'=x-\eta\cdot\frac{\mathrm{d}y}{\mathrm{d}x} x=xηdxdy

结合上面的回归方程,我们就可对误差函数求偏导,以循环的方式更新参数 w , b w,b w,b

w ′ = w − η ∂ L ∂ w b ′ = b − η ∂ L ∂ b \begin{aligned}w'&=w-\eta\frac{\partial\mathcal{L}}{\partial w}\\\\b'&=b-\eta\frac{\partial\mathcal{L}}{\partial b}\end{aligned} wb=wηwL=bηbL

函数实现


计算过程都需要包裹在 with tf.GradientTape() as tape 上下文中,使得前向计算时能够保存计算图信息,方便自动求导操作。通过tape.gradient()函数求得网络参数到梯度信息,结果保存在 grads 列表变量中。

GradientTape()函数

GradientTape(persistent=False, watch_accessed_variables=True)

  • persistent: 布尔值,用来指定新创建的gradient
    tape是否是可持续性的。默认是False,意味着只能够调用一次GradientTape()函数,再次使用会报错

  • watch_accessed_variables:布尔值,表明GradientTape()函数是否会自动追踪任何能被训练的变量。默认是True。要是为False的话,意味着你需要手动去指定你想追踪的那些变量。

tape.watch()函数

tape.watch()用于跟踪指定类型的tensor变量。

  • 由于GradientTape()默认只对tf.Variable类型的变量进行监控。如果需要监控的变量是tensor类型,则需要tape.watch()来监控,否则输出结果将是None

tape.gradient()函数

tape.gradient(target, source)

  • target:求导的因变量

  • source:求导的自变量

import tensorflow as tfw = tf.constant(1.)
x = tf.constant(2.)
y = x * wwith tf.GradientTape() as tape:tape.watch([w])y = x * wgrads = tape.gradient(y, [w])
print(grads)

写在最后

👍🏻点赞,你的认可是我创作的动力!
⭐收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!

http://www.ds6.com.cn/news/104274.html

相关文章:

  • 长春企业网站建设接广告的网站
  • 深圳网上招聘最好的网站免费单页网站在线制作
  • 网站内容页模板培训班报名
  • 阳江网站关键字优化如何做推广引流赚钱
  • dns 解析错误 网站哪个行业最需要推广
  • 做动态在网站需要学什么大型网站建站公司
  • 如何做自己的电影网站cms系统
  • 上海百度百科西安的网络优化公司
  • 做网站的叫什么职位丹东seo推广优化报价
  • 网站的内部优化公司如何进行app推广
  • 武汉承接网站制作上海牛巨微网络科技有限公司
  • 个人安装公司怎么注册武汉seo网站优化排名
  • discuz网站开发宁波网站推广制作
  • 网站建设需求材料郑州网站建设方案优化
  • 售房网站模板南宁seo关键词排名
  • 往网站上做新东西需要什么搜索引擎成功案例分析
  • 网站开发前景如何站长推广工具
  • 网站建设空间成都网站关键词推广优化
  • 哪个网站是专门做封面素材优化推广网站怎么做最好
  • 做产品网站多少钱宁波seo搜索优化费用
  • 做网站师傅百度拍照搜题
  • 360免费wifi怎么使用短视频seo厂家
  • 做产品宣传网站多少钱汽车seo是什么意思
  • 重庆触摸屏_电子商务网站建设如何在其他平台做推广
  • 佛山新网站建设特色谷歌搜索优化
  • 鞍山做网站公司seo顾问服务 品达优化
  • 社交网站推广怎么做百度明星人气排行榜
  • 如何做网站手机重庆seo网络推广优化
  • 如何制作h5windows优化工具
  • 湖北网站建设多少钱优化一个网站需要多少钱