如果更深的转换层首先会聚是什么意思?

时间:2018-12-13 18:30:04

标签: python pytorch

我正在训练一个三层的卷积网络对图像进行分类-我知道这是一个非常标准的问题。我首先用ReLU尝试了3个卷积层,并得到了这个:

weights from layer 1 with ReLU - looks like edge detection

weights from layer 3 with ReLU - looks like feature detection

第一层(16个滤镜)如预期那样学习边缘,第三层(64个滤镜)如预期那样学习特征。然后,我只想尝试一个不同的非线性项,所以我尝试了sELU。

奇怪的是,第三层似乎现在正在学习功能,而第一层似乎根本没有融合?第三层学习边缘意味着什么,是否意味着我需要更多层?我不明白为什么第一层无法学习边缘。

weights from layer 1 with SELU - looks unconverged?

weights from layer 3 with SELU - looks like edge detection?

我认为架构不是非常重要,但是我有一个180x180的黑白图像,并且所有滤镜都是10 x 10的步幅2(第1层16个滤镜,第2层64滤镜)对于第3层)。

1 个答案:

答案 0 :(得分:1)

首先,您会混淆术语。

  1. 收敛的概念适用于优化算法,以及它是否到达参数空间中的某个固定位置。如果不是这样,它可能会一直持续下去,要么以无限缓慢的速度提高,要么从未达到最佳状态,要么围绕其振荡,要么由于数值精度/梯度爆炸问题而直线发散。换句话说,您可以说您的网络优化已经收敛,但是没有特定的过滤器。您可以通过检查训练损失图而不是内核来做到这一点。
  2. 用深度学习的话来说,
  3. 功能是关于功能的一般概念,即对数据感兴趣的任何模式。因此,边缘也绝对会被视为特征。也许在提到功能时您是在说纹理吗?

很抱歉,您对神经网络的理论状态过于乐观。卷积核的解释非常困难,并且是一个很大的研究问题。在您观察到内核的情况下,没有人能负责任地做出一般性的陈述,您应该采取哪种行动-从数据集到网络架构,再到像学习率这样的超参数,变量太多了。以我自己的经验,所有内核看起来像上面的“噪音”的网络都可以取得很好的效果,至少在我正在处理的分段任务上。

如果您是从深度学习开始的(看起来像您一样),我建议您也看看特征图,即在网络正向传播期间检查中间值的张量-您将看到它们如何对图片的不同部分做出反应,可能会使您获得更多见识。您需要记住,除了第一层之外,其他内核还会查看已变换的图像表示形式,因此检查它们与输入要素图的关系并不多。 deep visualization是了解内核的一种更高级的技术。话虽如此,我鼓励您继续进行这种实验和可视化,因为它们将帮助您开发经验并直观地了解内核的外观,交互方式以及期望和不期望的情况。 >