lej*_*lot 5

从理论上讲,你不具有附加一个完全连接层,你可以有回旋的直到最后一个完整的堆栈,只要(由于自定义尺寸/填充)你结束了正确数量的输出神经元(通常数类)。

那么为什么人们通常不这样做呢?如果通过数学计算,就会发现每个输出神经元(因此 - 对某个类进行预测)取决于输入维度(像素)的子集。这将是模型各行之间的某些内容,它仅根据前几个“列”(或者,取决于架构、行或图像的某些补丁)来决定图像是否是第 1 类元素,然后是这是接下来几列的 2 类(可能重叠),...,最后是一些 K 类,具体取决于最后几列。通常数据没有这个特征,你不能根据前几列而忽略其余的对猫的图像进行分类。

但是,如果引入全连接层,则为模型提供了混合信号的能力,因为每个神经元都与下一层中的每个神经元都有连接,现在每个输入维度(像素位置)之间都有信息流和每个输出类,因此决定真正基于整个图像。

如此直观,您可以从信息流的角度考虑这些操作。卷积是本地操作,池化是本地操作。全连接层是全局的(它们可以引入任何类型的依赖)。这也是卷积在图像分析等领域如此有效的原因——由于它们的局部性质,它们更容易训练,即使在数学上它们只是完全连接层可以表示的一个子集。

请注意, 我在这里考虑了 CNN 的典型用途,其中内核很小。一般来说,人们甚至可以将 MLP 视为一种 CNN,其中内核的大小与整个输入的大小相同,具有特定的间距/填充。然而,这些只是极端情况,在实践中并没有真正遇到,也不会真正影响推理,因为它们最终成为 MLP。这里的重点很简单——引入全局关系,如果可以通过以特定方式使用 CNN 来实现——那么就不需要 MLP。MLP 只是引入这种依赖性的一种方式


Mar*_*oma 5

每个全连接 (FC) 层都有一个等效的卷积层(反之则不然)。因此没有必要添加 FC 层。它们总是可以被卷积层(+重塑)代替。查看详情

那我们为什么要使用 FC 层呢?

因为(1)我们习惯了(2)它更简单。(1) 可能是 (2) 的原因。例如,如果您使用卷积层而不是 FC 层,则需要调整损失函数/标签的形状/添加重塑添加末端。