【问题标题】:Curious positive Impact of the batchsize on the training accuracy批量大小对训练准确性的奇怪积极影响
【发布时间】:2022-01-17 08:10:22
【问题描述】:

我对批量大小的作用有疑问。我的 MLP 模型有 2 个具有“softmax”激活函数的 Dense-layers:

# Creat my MLP MODEL:
model = Sequential()
model.add(Dense(units=64, input_dim  = 100))
model.add(BatchNormalization())
model.add(Activation("softmax"))
model.add(Dense(units=64))
model.add(BatchNormalization())
model.add(Activation("softmax"))
model.add(Dense(units=1))

Green's Batchsize = 2, Pink's Batchsize = 8, Red's Batchsize = 5

数据集有 84000 个样本。每个样本由 100 个输入值和 1 个输出值组成。每个样本描述了不同的子流程,因此样本之间不存在关系。我用不同的 batch_size 评估了训练过程。当batch size增加到8时,训练结果看起来更好的原因是什么?至于我的数据样本中是否存在我不知道的关系?

【问题讨论】:

  • 附注:使用 softmax 作为内部激活是非常奇怪的,除非这是出于某种非常好的特殊原因,用 relus 代替它们会更好。

标签: deep-learning neural-network


【解决方案1】:

首先,您使用的是 batchnorm,顾名思义,它根据批处理中的统计数据对样本进行归一化,因此如果样本量(批处理量)更大,它会更好地工作。除了这个更高的批量大小之外,还意味着梯度估计器的方差更低,而且通常很好。

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 1970-01-01
    • 2021-06-17
    • 2020-07-30
    • 2021-08-19
    • 2012-01-30
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多