三种梯度下降算法的区别(BGD, SGD, MBGD)

  发布时间:2025-11-05 13:01:13   作者:玩站小弟   我要评论
前言我们在训练网络的时候经常会设置 batch_size,这个 batch_size 究竟是做什么用的,一万张图的数据集,应该设置为多大呢,设置为 1、10、100 或者是 10000 究竟有什么区别 。

前言

我们在训练网络的种梯时候经常会设置 batch_size,这个 batch_size 究竟是度下做什么用的,一万张图的降算数据集,应该设置为多大呢,区别设置为 1、种梯10、度下100 或者是降算 10000 究竟有什么区别呢?

# 手写数字识别网络训练方法  network.fit(  train_images,  train_labels,  epochs=5,  batch_size=128) 

批量梯度下降(Batch Gradient Descent,BGD)

梯度下降算法一般用来最小化损失函数:把原始的区别数据网络喂给网络,网络会进行一定的种梯计算,会求得一个损失函数,度下代表着网络的降算计算结果与实际的差距,梯度下降算法用来调整参数,区别使得训练出的种梯结果与实际更好的拟合,这是度下梯度下降的含义。

批量梯度下降是降算梯度下降最原始的形式,它的思想是使用所有的训练数据一起进行梯度的IT技术网更新,梯度下降算法需要对损失函数求导数,可以想象,如果训练数据集比较大,所有的数据需要一起读入进来,一起在网络中去训练,一起求和,会是一个庞大的矩阵,这个计算量将非常巨大。当然,这也是有优点的,那就是因为考虑到所有训练集的情况,因此网络一定在向最优(极值)的方向在优化。

随机梯度下降(Stochastic Gradient Descent,SGD)

与批量梯度下降不同,随机梯度下降的思想是每次拿出训练集中的一个,进行拟合训练,进行迭代去训练。训练的过程就是先拿出一个训练数据,网络修改参数去拟合它并修改参数,香港云服务器然后拿出下一个训练数据,用刚刚修改好的网络再去拟合和修改参数,如此迭代,直到每个数据都输入过网络,再从头再来一遍,直到参数比较稳定,优点就是每次拟合都只用了一个训练数据,每一轮更新迭代速度特别快,缺点是每次进行拟合的时候,只考虑了一个训练数据,优化的方向不一定是网络在训练集整体最优的方向,经常会抖动或收敛到局部最优。

小批量梯度下降(Mini-Batch Gradient Descent,MBGD)

小批量梯度下降采用的还是计算机中最常用的折中的解决办法,每次输入网络进行训练的既不是训练数据集全体,也不是训练数据集中的某一个,而是其中的站群服务器一部分,比如每次输入 20 个。可以想象,这既不会造成数据量过大计算缓慢,也不会因为某一个训练样本的某些噪声特点引起网络的剧烈抖动或向非最优的方向优化。

对比一下这三种梯度下降算法的计算方式:批量梯度下降是大矩阵的运算,可以考虑采用矩阵计算优化的方式进行并行计算,对内存等硬件性能要求较高;随机梯度下降每次迭代都依赖于前一次的计算结果,因此无法并行计算,对硬件要求较低;而小批量梯度下降,每一个次迭代中,都是一个较小的矩阵,对硬件的要求也不高,同时矩阵运算可以采用并行计算,多次迭代之间采用串行计算,整体来说会节省时间。

看下面一张图,可以较好的体现出三种剃度下降算法优化网络的迭代过程,会有一个更加直观的印象。

总结

梯度下降算法的调优,训练数据集很小,直接采用批量梯度下降;每次只能拿到一个训练数据,或者是在线实时传输过来的训练数据,采用随机梯度下降;其他情况或一般情况采用批量梯度下降算法更好。

  • Tag:

相关文章

  • Pro6(性能卓越,功能全面,适用于多种场景)

    摘要:Pro6是一款由知名品牌推出的移动设备,它以其出色的性能和全面的功能而受到广泛关注。无论是商务办公还是娱乐媒体,Pro6都能满足用户的多样需求。1.强悍处理器,提供顶级...
    2025-11-05
  • RequireJS模块化编程详解

    1.模块的写法模块化编程一般都有这么几个过渡过程,如下描述。原始方法functionm1(){//...}functionm2(){//...} 上面的函数m1()和m2(),组成一个模
    2025-11-05
  • 【机器学习】如何教机器绘画?

    抽象的形象沟通对于人们交流思想发挥了重要的作用。孩子们很小的时候就发展出用简单的线条来描绘事物甚至表达自己情感的能力。这些简单的绘画可能没有照片来得真实,但它确实可以让我们从另一个角度了解人们是如何描
    2025-11-05
  • 关于敏捷Scrum模式开发实践的总结

    本文主要涵盖的内容如下:敏捷Scrum模式概貌 Scrum Team的组成与角色分工 团队的日常活动 敏捷Scrum模式概貌开发管理的痛点开发过程的各个环节的
    2025-11-05
  • 惠普8760的卓越性能与全面功能(高性能移动办公利器——惠普8760)

    摘要:作为一款高性能移动办公电脑,惠普8760在性能、功能和设计等方面都有着出色的表现。本文将详细介绍该产品的15个关键特点和功能,旨在为读者提供全面了解和选择参考。强劲的处理器...
    2025-11-05
  • 理解Python装饰器看这一篇就够了

    讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。每个人都有的内裤主要功能是用来遮羞,但是到了冬天它没法为我们防风御寒,咋办?我们想到的一个办法就是把内裤改造一下,让它变
    2025-11-05

最新评论