东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2525|回复: 2
打印 上一主题 下一主题

[学习笔记] 16、SGD的威力展示(与BGD代码对比)

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
跳转到指定楼层
楼主
发表于 2019-10-10 19:10:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
16、SGD的威力展示(与BGD代码对比)




ipynb文件在附件,可提供下载!


BGD批量梯度下降:里面的那个梯度计算是实际的损失函数对参数theta的梯度,每次是要考虑所有的样本的
每次训练迭代需要考虑所有的样本来计算梯度 再来更新一次的theta参数
由于是计算真正的梯度,优势是,训练循环退出的条件可以有两个:1、n_iters 2、相邻两次loss值之间的差值< epsilon(预设精度)


而SGD随机梯度下降:里面的那个梯度计算进行了简化,不考虑所有的样本,每次随机考虑一个样本的,那个就不是真正的梯度
只是为了速度改进的,所以损失值每次的下降不是沿着下降最大的方向(梯度的定义),而是具有一定的随机性(有可能反而增大的)
另外SGD在训练过程中,跳出循环的条件只能是迭代次数,而不能用相邻两次loss值之间的差值< epsilon(预设精度) 原因还是随机性
有可能具体的某个样本数据能达到这个条件,而此时的theta参数没有在最优解的位置
SGD随机梯度下降的威力:由于具有随机性,甚至可以设置n_iters<样本总数 而达到最优解位置,此时我们所有循环考虑的样本总数竟然比BGD中一次循环考虑的
样本数还要少,太有威力啦!时间复杂度得到很大优化


实际项目中都是基于MBGD小批量梯度下降(结合了BGD与SGD的优势)




视频教程请参考:http://www.ai111.vip/thread-349-1-1.html
东方老师微信:dfy_88888

01.png (168.14 KB, 下载次数: 142)

01.png

02.png (212.99 KB, 下载次数: 144)

02.png

03.png (217.67 KB, 下载次数: 144)

03.png

04.png (173.97 KB, 下载次数: 142)

04.png

05.png (29.88 KB, 下载次数: 141)

05.png

06.png (31.73 KB, 下载次数: 141)

06.png

07.png (34.92 KB, 下载次数: 142)

07.png

08.png (60.82 KB, 下载次数: 149)

08.png

SGD的威力(与BGD代码对比).ipynb

9.97 KB, 阅读权限: 10, 下载次数: 0

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

96

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
沙发
发表于 2019-12-22 16:51:23 | 只看该作者
this is good idea
回复

使用道具 举报

0

主题

249

帖子

500

积分

高级会员

Rank: 4

积分
500
板凳
发表于 2022-11-6 10:38:09 | 只看该作者
学习中,支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-6 04:03 , Processed in 0.190251 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表