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

卷积层可以学习计算输入数据的标准偏差吗?

邢博涛
2023-03-14

假设我们有一些输入数据、基本事实标签和一个神经网络。然后,我们使用这些数据和标签来训练模型并得到一些结果。

由于某种原因,我们发现不使用原始数据作为输入,而是计算数据的局部均方差并将其作为输入可以得到更好的结果。这里有一个计算局部均方差的例子,它来自这里:

h = 1;                      % for half window size of 3
x = [4 8 1 1 1 7 9 3];      % input signal
N = length(x);              % length of the signal

o = ones(1, N);             % array for output
for i = 1 : N
  % calculate standard deviation using the built-in std command
  % for the current window
  o(i) = std(x(max(1, i - h) : min(N, i + h)));
end

因此,我的问题是:我们是否可以使用卷积层,让模型自己学习执行这样的操作,而不是自己计算局部标准偏差?

如果我们不能用一个卷积层,我们能用一个更复杂的模型吗?

如果我们能做到这一点,那么我还有另一个问题:为什么模型不能自己学习执行批处理规范化操作?为什么现在的人还需要手动添加批量归一化层?

我对谷歌做了一些研究,这里是我得到的一些东西。虽然我还是有点困惑:

https://matlabtricks.com/post-20/calculate-standard-deviation-case-of-sliding-window

提前谢谢你!

共有1个答案

甄正信
2023-03-14

批量标准化在标准标准化后转换并重新缩放张量。您问题中的链接只是提供了一种有效进行标准规范化的方法。

从统计学的角度来看,标准归一化降低了输入张量中的自由度(dof),而批量归一化中的两个可学习参数将这两个dof相加。目前还不清楚如何设计一个具有两个参数(dof)的卷积层,该层执行类似于批处理规范化的操作,因为当窗口大小改变时,卷积层可以有更多的参数。

 类似资料:
  • 问题内容: 使用Python,假设我正在运行已知数量的项目,并且能够计时处理每个项目要花费的时间,以及运行所花费的总时间以及到目前为止所处理项目的数量。我目前正在计算飞行中的平均值,但是如果说单个项目花费的时间特别长(几秒钟而不是几毫秒),则可能会导致偏差。 我想展示一个运行中的标准偏差。如何在不保存每个记录的情况下执行此操作? 问题答案: 我使用的是Welford方法,它给出的结果更准确。该链接

  • 我尝试使用< code>rowSds()来计算每一行的标准偏差,这样我就可以选择具有高标准偏差的行来绘制图表。 我的数据帧名为<code>xx 我试图计算每一行的标准偏差,并辅助sd列名: 我得到这个错误: 知道在计算SD时如何省略吗?我的语法正确吗?

  • 如果输入到神经网络卷积层的是128x128x3大小的图像,并对其应用40个5x5大小的滤波器,那么输出大小会是多少?

  • 我的数据与此类似: 我需要计算基于名称组的差异列的标准偏差。 我试过了 和 但两者都为传递给的变量提供了KeyError。我试图用以下方法解决它: 但错误仍然存在。 提前谢谢。

  • 我有一分钟一分钟的熊猫数据帧df。我希望将加权应用于返回,并计算滚动加权均方差,窗口=10。我可以计算非加权性病,年化: 在Numpy中还有另一个关于加权std的问题,但我对滚动加权std很好奇。(加权标准偏差,单位为NumPy?) 计算加权标准差的公式为:https://math.stackexchange.com/questions/320441/standard-deviation-of-t

  • 我对标准差的计算有点执着,如果你能在下面的两个问题上给我一些帮助,那就太好了。 代码 问题1:我如何计算这个的标准误差(平均值的标准偏差)? 代码 问题2:如何计算累积标准偏差? 非常感谢!!(很抱歉数据格式错误!)