随着批量大小的变化,学习率应该如何变化? [关闭]

2024-03-06

当我增加/减少 SGD 中使用的小批量的批量大小时,我应该更改学习率吗?如果是这样,那又如何呢?

作为参考,我和某人讨论过,据说当batch size增加时,学习率应该有一定程度的降低。

我的理解是,当我增加批量大小时,计算出的平均梯度的噪音会更少,因此我要么保持相同的学习率,要么增加它。

另外,如果我使用自适应学习率优化器,例如 Adam 或 RMSProp,那么我想我可以保持学习率不变。

如果我错了,请纠正我,并就此提供任何见解。


理论表明,当将批量大小乘以 k 时,应该将学习率乘以 sqrt(k) 以保持梯度期望的方差恒定。请参阅第 5 页:A·克里热夫斯基。并行化卷积神经网络的一种奇怪技巧: https://arxiv.org/abs/1404.5997 https://arxiv.org/abs/1404.5997

然而,最近对大型小批量的实验建议采用更简单的线性缩放规则,即在使用 kN 的小批量大小时将学习率乘以 k。 看P.Goyal 等人:准确、大型小批量 SGD:1 小时内训练 ImageNet https://arxiv.org/abs/1706.02677 https://arxiv.org/abs/1706.02677

我想说,使用 Adam、Adagrad 和其他自适应优化器,如果批量大小没有大幅变化,学习率可能保持不变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随着批量大小的变化,学习率应该如何变化? [关闭] 的相关文章

  • 在 TensorFlow 中将多个字节读取到单个值中

    我尝试以 TensorFlow 中 cifar10 示例中描述的类似方式读取标签 label bytes 2 it was 1 in the original version result key value reader read fil
  • Caffe,在层中设置自定义权重

    I have a network In one place I want to use concat As on this picture 不幸的是 该网络无法训练 为了理解为什么我想连续改变权重 这意味着 FC4096 中的所有值一开始都
  • 如何计算两个字符串向量之间的余弦相似度

    我有 2 个维度为 6 的向量 我想要一个介于 0 和 1 之间的数字 a c HDa 2Pb 2 BxU BuQ Bve b c HCK 2Pb 2 09 F G 谁能解释我应该做什么 使用lsa包和该包的手册 create some f
  • 使用 Keras 的 ImageDataGenerator 预测单个图像

    我对深度学习很陌生 所以请原谅我这个可能很简单的问题 我训练了一个网络来分类positive and negative 为了简化图像生成和拟合过程 我使用了ImageDataGenerator和fit generator函数 如下图 imp
  • 如何使用sklearn Pipeline和FeatureUnion选择多个(数字和文本)列进行文本分类?

    我开发了一个用于多标签分类的文本模型 这OneVsRest分类器 http scikit learn org stable modules generated sklearn multiclass OneVsRestClassifier h
  • PyTorch 中的连接张量

    我有一个张量叫做data形状的 128 4 150 150 其中 128 是批量大小 4 是通道数 最后 2 个维度是高度和宽度 我有另一个张量叫做fake形状的 128 1 150 150 我想放弃最后一个list array从第 2 维
  • 当我想在电脑中加载该模型时,我可以在 colab bu 中加载我的深度模型,但我不能

    我在colab中通过keras 2 3 1和tensorflow 2 1 0训练了一个深度模型 我用JSON和Keras保存了我的模型 saveWeightPath content drive My Drive model info mod
  • R 中多类分类的 ROC 曲线

    我有一个包含 6 个类别的数据集 我想绘制多类别分类的 ROC 曲线 Achim Zeileis 给出的第一个答案非常好 R中使用rpart包的ROC曲线 https stackoverflow com questions 30818188
  • PyTorch 中的交叉熵

    交叉熵公式 但为什么下面给出loss 0 7437代替loss 0 since 1 log 1 0 import torch import torch nn as nn from torch autograd import Variable
  • 使用sklearn进行多标签特征选择

    我希望使用 sklearn 对多标签数据集执行特征选择 我想要获得最终的功能集across标签 然后我将在另一个机器学习包中使用它 我打算使用我看到的方法here https stackoverflow com questions 1640
  • 随机森林修剪

    我有 sklearn 随机森林回归器 它非常重 有 1 6 GB 并且在预测值时工作很长时间 我想把它修剪一下 让它变得更轻 据我所知 决策树和森林没有实施修剪 我无法自己实现它 因为树代码是用 C 编写的 而我不知道 有谁知道解决方案吗
  • 如何组织循环神经网络?

    我想模拟以下内容 y t F x t 1 x t 2 x t k 或者说一个函数 其当前输出取决于最后 k 个输入 1 我知道一种方法是使用一个经典的神经网络 其中 k 个输入为 x t 1 x t 2 x t k 对于每个y t 并训练它
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • 如何使用 pytorch 同时迭代两个数据加载器?

    我正在尝试实现一个接收两张图像的暹罗网络 我加载这些图像并创建两个单独的数据加载器 在我的循环中 我想同时遍历两个数据加载器 以便我可以在两个图像上训练网络 for i data in enumerate zip dataloaders1
  • mlflow 如何使用自定义转换器保存 sklearn 管道?

    我正在尝试使用 mlflow 保存 sklearn 机器学习模型 这是一个包含我定义的自定义转换器的管道 并将其加载到另一个项目中 我的自定义转换器继承自 BaseEstimator 和 TransformerMixin 假设我有 2 个项
  • Caffe 的 LSTM 模块

    有谁知道 Caffe 是否有一个不错的 LSTM 模块 我从 russel91 的 github 帐户中找到了一个 但显然包含示例和解释的网页消失了 以前是http apollo deepmatter io http apollo deep
  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过
  • 神经网络不能立即重现?

    通过使用反向传播导数 弹性 的前馈神经网络中的随机权重初始化 误差图上的初始位置位于某个随机谷的顶部 该随机谷可能是也可能不是局部最小值 可以使用方法来克服局部最小值 但假设这些方法没有被使用 或者在给定的地形上不能很好地工作 那么神经网络
  • 神经网络中的时间序列提前预测(N点提前预测)大规模迭代训练

    N 90 使用神经网络进行提前预测 我试图预测提前 3 分钟 即提前 180 点 因为我将时间序列数据压缩为每 2 个点的平均值为 1 所以我必须预测 N 90 超前预测 我的时间序列数据以秒为单位给出 值在 30 90 之间 它们通常从
  • 在 GPU 支持下对高维数据进行更快的 Kmeans 聚类

    我们一直在使用 Kmeans 来对日志进行聚类 典型的数据集有 10 mill 具有 100k 特征的样本 为了找到最佳 k 我们并行运行多个 Kmeans 并选择轮廓得分最佳的一个 在 90 的情况下 我们最终得到的 k 介于 2 到 1

随机推荐