Ahm*_*lah 6 machine-learning computer-vision neural-network deep-learning conv-neural-network
找了很多原因还是没弄明白,有没有人能详细解释一下?
从理论上讲,你不具有附加一个完全连接层,你可以有回旋的直到最后一个完整的堆栈,只要(由于自定义尺寸/填充)你结束了正确数量的输出神经元(通常数类)。
那么为什么人们通常不这样做呢?如果通过数学计算,就会发现每个输出神经元(因此 - 对某个类进行预测)仅取决于输入维度(像素)的子集。这将是模型各行之间的某些内容,它仅根据前几个“列”(或者,取决于架构、行或图像的某些补丁)来决定图像是否是第 1 类元素,然后是这是接下来几列的 2 类(可能重叠),...,最后是一些 K 类,具体取决于最后几列。通常数据没有这个特征,你不能根据前几列而忽略其余的对猫的图像进行分类。
但是,如果引入全连接层,则为模型提供了混合信号的能力,因为每个神经元都与下一层中的每个神经元都有连接,现在每个输入维度(像素位置)之间都有信息流和每个输出类,因此决定真正基于整个图像。
如此直观,您可以从信息流的角度考虑这些操作。卷积是本地操作,池化是本地操作。全连接层是全局的(它们可以引入任何类型的依赖)。这也是卷积在图像分析等领域如此有效的原因——由于它们的局部性质,它们更容易训练,即使在数学上它们只是完全连接层可以表示的一个子集。
请注意, 我在这里考虑了 CNN 的典型用途,其中内核很小。一般来说,人们甚至可以将 MLP 视为一种 CNN,其中内核的大小与整个输入的大小相同,具有特定的间距/填充。然而,这些只是极端情况,在实践中并没有真正遇到,也不会真正影响推理,因为它们最终成为 MLP。这里的重点很简单——引入全局关系,如果可以通过以特定方式使用 CNN 来实现——那么就不需要 MLP。MLP 只是引入这种依赖性的一种方式。
| 归档时间: |
|
| 查看次数: |
10782 次 |
| 最近记录: |