给出一个完全连接网络比卷积神经网络更适合的视觉识别任务示例

我知道CNN有很多好的特性,比如权重共享、节省内存和特征提取。然而,这个问题让我很困惑。是否有任何可能的情况是完全连接网络比CNN更好?为什么?

非常感谢大家!


回答:

是否有任何可能的情况是完全连接网络比CNN更好?

嗯,我认为我们首先应该定义“更好”是什么意思。准确性和精确性并不是唯一需要考虑的因素:计算时间、自由度和优化的难度也应该被考虑在内。

首先,考虑一个大小为h*w*c的输入。将这个输入馈送到具有F个特征图和内核大小s的卷积层,将会产生大约F*s*s*c个可学习参数(假设卷积的秩没有限制,否则我们甚至有更少的参数)。将相同输入馈送到具有相同数量特征图的完全连接层,将会产生F*d_1*d_2*w*h*c(其中d_1,d_2是每个特征图的维度),显然,对于任何具有 decent 分辨率的输入图像,这将是数十亿级别的可学习参数。

虽然我们可能会认为可以用更浅的网络(我们已经有很多参数,对吧?),但完全连接层毕竟只是线性层,所以我们仍然需要插入许多非线性因素,以便网络获得合理的表示能力。因此,这意味着你仍然需要一个深层网络,但参数如此之多,以至于无法处理。此外,较大的网络将有更多的自由度,因此将模拟我们想要的更多:除非我们为其提供一些数据或对其进行约束,否则它将模拟噪声。

所以,是的,理论上可能存在一个完全连接网络可以为我们提供更好的性能,但我们还不知道如何训练它。最后,这纯粹基于直觉,因此可能是错误的,但我觉得这样的完全连接网络不太可能收敛到一个稠密的解决方案。由于许多卷积网络在许多任务上达到了非常高的准确率(99%及以上),我认为完全连接网络将收敛到的最优解决方案将接近于卷积网络。因此,我们并不真的需要训练完全连接网络,而只需训练其架构的一个子集即可。

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

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