Machine learning 深度方向滤波器与正则卷积神经网络

Machine learning 深度方向滤波器与正则卷积神经网络,machine-learning,conv-neural-network,convolution,Machine Learning,Conv Neural Network,Convolution,当涉及深度神经网络和卷积神经网络时,我对滤波器/内核的差异有点困惑。例如,假设对于每种情况,输入图像为8x3。在深度方向上有3个过滤器,例如3x3x1,在reg conv2d中有1个过滤器3X3X3X3。这是正确的吗 在深度上,3个过滤器中的每一个都是不同的。在reg conv2d中,每个过滤器都是“通道”吗?这是正确的术语吗?不同的还是它们都一样 如果它们不同,这两种操作有何不同?我知道在dw中,可以包含一个通道乘数,这样输出深度将始终是其输入深度的倍数。在reg conv2d中,您可以有多个

当涉及深度神经网络和卷积神经网络时,我对滤波器/内核的差异有点困惑。例如,假设对于每种情况,输入图像为8x3。在深度方向上有3个过滤器,例如3x3x1,在reg conv2d中有1个过滤器3X3X3X3。这是正确的吗

在深度上,3个过滤器中的每一个都是不同的。在reg conv2d中,每个过滤器都是“通道”吗?这是正确的术语吗?不同的还是它们都一样

如果它们不同,这两种操作有何不同?我知道在dw中,可以包含一个通道乘数,这样输出深度将始终是其输入深度的倍数。在reg conv2d中,您可以有多个3x3x3过滤器,从而增加输出深度


所以基本上我有点搞不清楚区别是什么

由于可分性的概念,不同之处在于参数的数量和乘法运算,以及实现相同输出大小的速度。如果你是图像卷积的老手,你可能知道一些3x3滤波器可以分为两个1x3滤波器sobel滤波器是最著名的例子。因此,相同的计算只需要6个参数,而不是9个参数。Depthwise应用该概念将卷积的空间部分与通道部分分离——一次在一个通道上进行空间卷积,然后添加一个标准1x1卷积层以改变通道数。这使用的参数少得多,因此乘法也少得多

您的具体示例实际上是不正确的,或者至少是误导性的,因为3个深度滤波器的输出为8x8x3,而单个conv滤波器的输出为8x1。但即便如此,正如您正确地暗示的那样,我们确实可以创建一个标准卷积层,得到相同的答案——关键是后者有更多的参数,因此速度较慢。在您的示例中,要获得与Depthwese情况相同的输出,您需要3个过滤器,因此参数数量是Depthwese情况的3倍,尽管与典型情况相比,我们没有额外的1x1通道改变层,这有点作弊,所以让我们修复它。通常,如果您想将示例切换到输出8x8xN,标准方法将使用Nx3x3x3参数,而深度方法将使用3x3x3+Nx3x1x1-so 27N vs 3N+27

从理论上讲,人们可能会认为可分性限制会降低学习能力,但我猜在实践中,情况似乎不是这样,或者只是极其微小,因此值得在速度上进行权衡。也许有用的过滤器有很强的可分离倾向——索贝尔也可以作为一个很好的例子——但我个人不知道有任何证据支持这一点

这篇文章是一个非常有用且更全面的解释: