当前位置: 首页 > 知识库问答 >
问题:

SkikitLearn学习曲线强烈依赖于MLPClassizer的批量大小???或者:如何诊断NN的偏差/方差?

蓟清野
2023-03-14

我目前正在研究一个分类问题,在ScikitLearn中有两个类,分别是adam和activation relu。为了探索我的分类器是否存在高偏差或高方差,我使用Scikitlearns内置函数绘制了学习曲线:

https://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html

我正在使用具有8个拆分的分组K_Fold交叉验证。然而,我发现我的学习曲线强烈依赖于分类器的批次大小:

https://imgur.com/a/FOaWKN1

应该是这样吗?我认为学习曲线解决的是依赖于独立于任何批次/时期的训练数据部分的准确度分数?我是否可以将此内置函数用于批处理方法?如果是,我应该选择哪个批次大小(完整批次或批次大小=培训示例数或介于两者之间的数量)以及我从中得到的诊断是什么?或者,您通常如何诊断神经网络分类器的偏差/方差问题?

帮助将非常感谢!

共有1个答案

夏建木
2023-03-14

是的,学习曲线取决于批量大小。

最佳批量大小取决于数据类型和数据总量
在理想情况下,批大小为1是最好的,但在实际中,由于数据量很大,这种方法不可行<我认为你必须通过实验来做到这一点,因为你无法轻松计算出最佳值。

此外,当您更改批次大小时,您可能还想更改学习率,以便保持对过程的控制。
但确实有一个工具来找到最佳(内存和时间方面)批次大小是非常有趣的。

随机梯度下降,通常缩写为SGD,是梯度下降算法的变体,它计算误差并为训练集中的每个示例更新模型。

每个训练示例的模型更新意味着随机梯度下降通常被称为在线机器学习算法。

批量梯度下降是梯度下降算法的变体,它计算训练集中每个示例的误差,但仅在评估所有训练示例后更新模型。

贯穿整个训练集的一个周期称为训练纪元,因此,常说批量梯度下降在每个训练纪元结束时进行模型更新。

小批量梯度下降是梯度下降算法的变体,它将训练集拆分为小批量,用于计算模型误差和更新模型系数。

实现可以选择对小批量的梯度求和,或者取梯度的平均值,这将进一步减少梯度的方差。

小批量梯度下降寻求在随机梯度下降的鲁棒性和批量梯度下降的效率之间找到平衡。它是深度学习领域中最常用的梯度下降实现。

来源:https://machinelearningmastery.com/gentle-introduction-mini-batch-gradient-descent-configure-batch-size/

 类似资料:
  • 本文向大家介绍适用于Java初学者的学习路线图,包括了适用于Java初学者的学习路线图的使用技巧和注意事项,需要的朋友参考一下 对于Java初学者来说,想学习Java教程,需要明白,基础打好才能学得更好,Java教程之学习Java的路线图的五个必经阶段,希望能对Java学习者有所帮助。 第一个阶段-java基础阶段   1.java语法   2.面向对象   3.常用的api   4.界面编程  

  • 最有力的色彩组合是充满刺激的快感和支配的 欲念,但总离不开红色;不管颜色是怎么组合,红 色绝对是少不了的。红色是最终力量来源——强烈、大胆、极端。 力量的色彩组合象征人类最激烈的感情:爱、恨、 情、仇,表现情感的充分发泄。 在广告和展示的时候,有力色彩组合是用来传 达活力、醒目等强烈的讯息,并且总能吸引众人的 目光。 补色色彩组合 原色色彩组合 单色色彩组合 55 7 52 4 68 36 4 7

  • 问题内容: 协方差(大致)是在使用它们的复杂类型中 镜像 “简单”类型的 继承 的能力。 例如,我们始终可以将的实例视为的实例。如果ComplexType是协变的,则可以将A 视为a 。 我想知道:协方差的“类型”是什么,它们与C#有什么关系(是否支持它们?) 代码示例将很有帮助。 例如,一种类型是Java支持的 返回类型covariance ,但C#不支持。 我希望有功能编程知识的人也能加入!

  • 有没有办法为Spring的NamedParameterJdbcTemplate对象设置批处理大小? 在我的项目中,我遇到了一些OutOfMemory问题,但我能够通过在一个较小的块循环中调用NamedParameterJdbcTemplate来解决它。但这需要一些额外的努力,比如确定块大小,将一个大列表拆分成更小的子列表等等。 我想知道NamedParameterJdbcTemplate是否有这样

  • 本文向大家介绍方差偏差的分解公式相关面试题,主要包含被问及方差偏差的分解公式时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 为模型的方差 为模型的偏差 为模型的噪声 为训练集D上学得模型f在x上的输出 为模型的期望预测

  • 问题内容: 我想删除多条线图中的特定线。贝娄是一个给我的例子,这对我来说还不够,因为它仅删除最后绘制的线条,而不删除我要删除的线条。我怎样才能做到这一点?如何在整个程序中寻址特定行(按名称,编号,参考)并删除该行? 问题答案: 几乎所有的绘图功能都返回对先前创建的对象的引用: 如果您有参考文献,则可以通过 (doc)函数ex删除艺术家: