加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[bigdata-120] stotisticks gradient descent随机梯度下降算法的

发布时间:2020-12-14 04:58:50 所属栏目:大数据 来源:网络整理
导读:1.gradient descent梯度下降优化 1.1假设要优化一个函数 f ( x ) = ( x ? 1 ) 2 求它的最小值。这个函数在 x = 1 时有最小值,这是解析解。如果用梯度下降法,是这样的: f ′ ( x ) = 2 ( x ? 1 ) 每一步的迭代公式是: x i + 1 = x i ? η f ′ ( x i ) (

1.gradient descent梯度下降优化

1.1假设要优化一个函数 f(x)=(x?1)2 求它的最小值。这个函数在 x=1 时有最小值,这是解析解。如果用梯度下降法,是这样的:
f(x)=2(x?1)
每一步的迭代公式是:
xi+1=xi?ηf(xi) (为什么是减号?因为是求最小值,如果是求最大值,就是加号)
如果 xi+1?xi<0.1 则精度足够,终止计算。

1.2 初始值 x0=5 η=0.8 (初始值可以随便设,但 η 需要经验性地选择一下,步长太大可能会引起不收敛,步长太小会慢,更复杂一点可以搞个自适应的计算方式以调优)
1.3 第1步:
x1=x0?ηf(x0)=5?0.8?2?(5?1)=?1.4

1.3 第2步
x2=x1?ηf(x1)=?1.4?0.8?2?(?1.4?1)=2.44

1.3第3步
x3=x2?ηf(x2)=2.44?0.8?2?(2.44?1)=0.138

1.4 第4步
x4=x3?ηf(x3)=0.138?0.8?2?(0.138?1)=1.517

1.5 第5步
x5=x4?ηf(x4)=1.517?0.8?2?(1.517?1)=0.69

1.6 第6步
x6=x5?ηf(x5)=0.69?0.8?2?(0.69?1)=1.186

1.7 第7步
x7=x6?ηf(x6)=1.186?0.8?2?(1.186?1)=0.89

1.8 第8步
x8=x7?ηf(x7)=0.89?0.8?2?(0.89?1)=1.066

1.9第9步
x9=x8?ηf(x8)=1.066?0.8?2?(1.066?1)=0.9604

1.10第10步
x10=x9?ηf(x9)=0.9604?0.8?2?(0.9604?1)=1.02

此时 x10?x9=0.0596<0.1 ,精度足够,计算终止。此时,数值解1.02和解析解1非常接近了。

这就是梯度下降算法。

2.随机梯度下降算法
1.1假设要优化一个函数 f(x,y)=(x?1)2+(y?2)2 。这个函数在 x=1,y=2 时有最小值,这是解析解。如果用梯度下降法,是这样的:
?f(x,y)?x=2(x?1)
?f(x,y)?y=2(y?2)
每一步的迭代公式是:
xi+1=xi?η?f(x,y)?x
yi+1=yi?η?f(x,y)?x

如果 xi+1?xi<0.1 yi+1?yi<0.1 则精度足够,终止计算。随机梯度下降算法,跟梯度下降算法,唯一的差别,就是每次不是选择全部变量进行优化,而是随机选择少量变量进行优化。比如本例是两个变量,那么就每次随机选择一个变量优化。

3.SGD的若干理论分析
在知乎有一个文章谈的很好https://zhuanlan.zhihu.com/p/28060786 ,总结起来就是,从直觉、试验、理论三个方面,SGD性能都好:a) 相对于非随机算法,SGD 能更有效的利用信息,特别是信息比较冗余的时候; b)相对于非随机算法, SGD 在前期迭代效果卓越; c)如果样本数量大,那么 SGD的Computational Complexity 依然有优势。理论分析要多读,这个比较麻烦。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读