首先要明确的最顶层的概念是:CNN是一个visual representation learning的过程,所有的convolutional filters wi是学到的features template,每一个convolutional操作就是一个template matching,通过dot-product这种计算方式来量化滑窗位置的image patch xi与convolutional filter(feature template)之间的相似度。这个相似度以一个一维实数表示。
那么,我们期待学到什么样的feature(filters)才是最好的feature呢?从分类的角度出发,我们希望一个feature能够很好地discriminate & generalize on 两件事(1). Intra-class variations,即类内差距;(2). Inter-class variations, 即类间差距(semantic difference)。(从分类的角度推广到广义的机器学习任务,则可以认为intra-class variation是wi与xi之间的engery,而inter-class variation是wi与xi之间的similarity。)
显然,传统的CNN基于dot-product based 的相似度计算,只能获得一个一维的实数值,又如何能够用一个一维实数去explicitly地表征两种variations呢?这种表征不力的现象,可以理解为dot-product的计算“couples”两种本该分开的variations,从而限制了传统convolution操作的discrimination & generalization power。所谓“couples”,就是传统CNN make a strong assumption that two variations can be represented via a multiplications of norms and cosines into one single value (即dot-product的操作)。
自然地,为了提高convolutional operations的discrimiantion & generalization power,我们就要把coupled的dot-product进行“de-couple(解耦)”。