|
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)
-
02.png
(212.99 KB, 下载次数: 144)
-
03.png
(217.67 KB, 下载次数: 144)
-
04.png
(173.97 KB, 下载次数: 142)
-
05.png
(29.88 KB, 下载次数: 141)
-
06.png
(31.73 KB, 下载次数: 141)
-
07.png
(34.92 KB, 下载次数: 142)
-
08.png
(60.82 KB, 下载次数: 149)
-
-
SGD的威力(与BGD代码对比).ipynb
9.97 KB, 阅读权限: 10, 下载次数: 0
|