【问题标题】:Can CNN learn to weigh certain feature channels much, much more than others?CNN 能否学会权衡某些特征通道的权重,远远超过其他通道?
【发布时间】:2017-02-22 02:10:28
【问题描述】:

这是一个假设性问题。

假设

  • 我正在处理 2 类语义分割任务
  • 我的基本事实是二进制掩码
  • 批量大小为1
  • 在我的网络中的任意点有一个名为'conv_5' 的卷积层,其特征图大小为 90 x 45 x 512。

假设我还决定(在训练期间)将地面实况掩码连接到'conv_5'。这将产生一个新的顶部,我们可以称之为'concat_1',它将是一个 90 x 45 x 513 维度的特征图。

假设网络的其余部分遵循正常模式,例如更多的卷积层、全连接和 softmax 损失。

我的问题是,全连接层能否学会将前 512 个特征通道的权重非常低,而将最后一个特征通道(我们知道这是一个完美的基本事实)的权重非常高? p>

如果这是真的,那么如果特征维度是 1,000,000 个通道并且我将最后一个通道添加为完美的基本事实,那么原则上是否正确,它仍然会学会有效地忽略所有先前的 1,000,000 个特征通道?

我的直觉是,如果传入了一个非常好的特征通道,那么网络应该能够比其他网络更多地学习利用这个通道。我还想认为这与频道数量无关。

(在实践中,我有一个场景,我将一个近乎完美的基本事实作为第 513 个特征图传递,但它似乎根本没有影响。然后当我检查所有 513 个特征通道的权重大小时,所有渠道的幅度大致相同。这让我相信“近乎完美的面具”只被利用了大约 1/513 的潜力。这就是促使我提出这个问题的原因。)

【问题讨论】:

    标签: machine-learning neural-network deep-learning caffe gradient-descent


    【解决方案1】:

    假设,如果你有一个“杀死功能”可供使用,网络应该学会使用它并忽略其余功能的“噪音”。

    顺便说一句,您为什么要使用全连接层进行语义分割?我不确定这是语义分割网络的“正常模式”。

    什么可能会阻止网络识别“杀戮特征”?
    - "conv_5" 上面的层搞砸了:如果它们降低分辨率(采样/池化/跨步...),那么信息就会丢失,并且很难利用这些信息。具体来说,我怀疑全连接层可能会在全球范围内搞砸。
    - 一个错误:添加“杀戮功能”的方式与图像不一致。要么掩码被转置,要么你错误地将一个图像的掩码添加到另一个图像(你“打乱”训练样本吗?)

    一个有趣的实验:
    您可以检查网络是否至少有一个使用“杀戮特征”的局部最优权重:您可以使用net surgery 手动设置权重,使得"conv_5" 对于除“杀戮特征”和后续层的权重并没有搞砸。那么你应该有非常高的准确性和低损失。从这一点开始训练网络应该会产生非常小的梯度(如果有的话),并且即使经过多次迭代,权重也不会发生显着变化。

    【讨论】:

    • 感谢 Shai 的快速回答!我提到有一个完全连接的层是不正确的。由于其他原因,网络中有一个之前用于多任务训练。它已经不存在了。
    • 我认为做净手术并将权重设置为零是个好主意,以帮助确保面具没有发生任何有趣的事情,并且确实可以像我们一样实现高精度和低损失预计。我确实认为我的情况发生了一些奇怪的事情。
    猜你喜欢
    • 1970-01-01
    • 2013-08-15
    • 2017-12-25
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多