CNN中卷积层的部分连接

我认为卷积层应该完全连接(参见这个这个)。也就是说,每个特征图应该连接到前一层的所有特征图。然而,当我查看这个 CNN可视化时,发现第二层的卷积层并没有与第一层完全连接。具体来说,第二层的每个特征图连接到第一层的3到6个(全部)特征图,我没有看到其中的任何模式。问题是

  1. 完全连接卷积层是标准做法吗?
  2. 可视化中部分连接的理由是什么?
  3. 我是不是漏掉了什么?

回答:

神经网络的一个显著特性是知识并不是存储在某个特定的地方,而是以分布式的方式存在。如果你拿一个工作中的网络,你通常可以切除很大一部分,仍然能得到一个大致相同的工作网络。

一个相关的效果是,确切的布局并不是非常关键。ReLu和Sigmoid(tanh)激活函数在数学上非常不同,但它们都工作得相当好。同样,层中节点的确切数量并不重要。

从根本上说,这与训练中你优化所有权重以最小化你的误差函数有关,或者至少找到一个局部最小值。只要有足够的权重并且这些权重足够独立,你就可以优化误差函数。

然而,还需要考虑另一个效果。如果权重过多而训练数据不足,你就无法很好地优化网络。规则化只能帮到一定程度。CNN的一个关键见解是,它们比完全连接的网络拥有更少的权重,因为CNN中的节点只连接到前一层中一个小的局部邻域的节点。

因此,这个特定的CNN比所有特征图都连接的CNN拥有更少的连接,因此权重也更少。这允许你对于给定的数据量拥有更多和/或更大的地图。这是最佳解决方案吗?也许是——选择最佳布局仍然有点像黑魔法。但这并不是先验上不合理的。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注