machine-learning - CNN 能否学会比其他特征 channel 更多地权衡某些特征 channel ?

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

这是一个假设问题。

假设

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

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

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

我的问题是,全连接层能否学会将前 512 个特征 channel 的权重设置得非常低,并将最后一个特征 channel 的权重设置得非常高(我们知道这是完美的地面事实)?

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

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

(实际上,我有一个场景,我传递了一个近乎完美的地面实况作为第 513 个特征图,但它似乎根本没有影响。然后,当我检查所有 513 个特征 channel 的权重大小时,所有 channel 的幅度大致相同。这让我相信“近乎完美的掩模”只利用了其潜力的约 1/513。这就是促使我提出这个问题的原因。)

最佳答案

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

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

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

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

关于machine-learning - CNN 能否学会比其他特征 channel 更多地权衡某些特征 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012749/

相关文章:

image-processing - 如何在 Torch 中为卷积神经网络加载图像和标签

tensorflow - Keras 密集层输出为 'nan'

machine-learning - keras fit 与 keras 评估

python - 神经网络 - 输入标准化

machine-learning - catboost 算法中对称树背后的直觉是什么?

neural-network - 双神经网络实验(一个逻辑的,一个情感的)?

python - TensorFlow concat 中的排名不匹配错误

machine-learning - tf.nn.embedding_lookup 带有浮点输入?

matlab - 如何在Matlab中加速代码?

python - tensorflow shuffle_batch和feed_dict错误