Answers:
填充很重要的原因有两个:
如果我们保留height
和,width
并且在从一层到另一层时不必担心张量尺寸,则设计网络更容易,因为尺寸会“起作用”。
它使我们能够设计更深层次的网络。如果没有填充,减小体积大小将很快减小。
通过使信息保持边界,填充实际上可以提高性能。
斯坦福大学的演讲引述他的话:“除了上述在CONV之后保持空间大小不变的好处之外,这样做还可以提高性能。如果CONV层不对输入进行零填充,而仅执行有效的卷积,则每次CONV交易后,交易量都会少量减少,并且边界上的信息将被“迅速冲走”。” - 来源
我将尝试从信息的角度告诉您什么时候可以填充,什么时候不可以填充。
让我们以张量流填充功能为例。它提供了两种情况,“有效”或“相同”。相同将保留输出的大小,并通过添加适当的填充将其保持与输入的大小相同,而有效则不会这样做,并且有人声称这会导致信息丢失,但是,这很重要。
这种信息丢失取决于内核的大小或您使用的过滤器。例如,假设您有一个28x28的图片,且滤镜大小为15x15(假设)。输出的尺寸应为16x16,但如果在Tensorflow中使用“相同”进行填充,则其尺寸将为28x28。现在,12行和12列本身没有携带任何有意义的信息,但仍以噪音的形式存在。并且我们都知道深度学习模型对噪声有多大的影响。这会大大降低培训质量。因此,如果您使用大型过滤器,最好不要使用填充。