音乐网站开发模板,做网站优化费用,阿里云做网站麻烦吗,开发公司可以注册一造吗从最开始的卷积层#xff0c;发展至今#xff0c;卷积已不再是当初的卷积#xff0c;而是一个研究方向。在反卷积这篇博客中#xff0c;介绍了一些常见的卷积的关系#xff0c;本篇博客就是要梳理这些有趣的卷积结构。 阅读本篇博客之前#xff0c;建议将这篇博客结合在一…从最开始的卷积层发展至今卷积已不再是当初的卷积而是一个研究方向。在反卷积这篇博客中介绍了一些常见的卷积的关系本篇博客就是要梳理这些有趣的卷积结构。 阅读本篇博客之前建议将这篇博客结合在一起阅读想必会有更深的理解。另外不管是什么类型的卷积我们都把它理解成一种运算操作。 Group convolution Group convolution是最早应用在2012年Alexnet的双GPU架构模型中相当于把channel这一维度均分到两个GPU进行分组卷积。如图所示 这篇论文是ImageNet Classification with Deep Convolutional Neural Networks。由图可见上下两个并行的网络结构只有在部分层中才有信息交互而且网络结构一模一样这就是Group convolution最早的应用但是在caffe中经常使用的单机多GPU并行训练和上述问题存在本质区别因为Group convolution是指将channel维度细分成多个group,然后再分组进行Convolution而多GPU的训练只是一个数据并行分组的方式其中minibatch和batch之间的关系就是batchminibatch*GPU_num这并不存在对channel的分组。 总之Group convolution是一种卷积操作想要切分channel然后分组卷积运算上没有什么特别的地方。 2.Pointwise convolution 点积就是卷积核大小是1*1的那为啥起名点积呢就是因为这和向量中的点积运算很类似举个例子一张3通道的feature map卷积核大小是1*1*3那它的运算其实就是Σ卷积核*单通道feature map。 总之Pointwise convolution是一种卷积操作而且是一种特殊的卷积运算代表着卷积核的大小是1*1。 3.Separable convolution 可分离卷积这种思路其实就是起了个高深的名字也很常见。也是想在channel维度上改变经典的卷积运算咋办呢经典的卷积核都是k*k*channel大小的其中channel是上一层的输出即本层的输入这不太好我们想任意指定一个channel作为卷积核的大小这样并不影响输入输出的特征图的长宽尺寸仅仅改变了channel这一维度。这就变得很有意思了同Group convolution不一样的是可分离卷积可增加channel维度而并没有依赖GPU。 举个例子对于经典的卷积运算如果说所需的参数量为256*3*3*256589824。而对于可分离卷积假设我们指定的卷积核是3*3*4那首先是256*3*3*49216接下来我们得到了4*2561024个通道数但是呢这并没有完成因为还需要下一个过程将channel重新压缩回256接着有1024*1*1*256262144整个过程就是9216262144271360看看589824是271360的两倍多。虽然这在很多框架上也许未能比较出效果的显著差异那是多方面的原因。 值得一提的是上面举的例子可以认为是Separable convolution 和Pointwise convolution结合在一起事实上就是配套使用的。 最早的Separable convolution来源于论文Simplifying ConvNets for Fast Learning作者用的是k*1和1*k的卷积核起名为可分离卷积而本处的可分离卷积来源于另一篇论文Xception: Deep Learning with Depthwise Separable Convolutions。 总之Separable convolution是一种卷积操作而且是一种特殊的卷积运算代表着卷积核的channel维度可以自己任意选取。 4.Depthwise convolution 深度卷积这名字又开始很高深了其实它的意思就是拓展Separable convolution而来我们可以让卷积核的channel维度等于1啊这样就是深度卷积意为在每一个channel上做卷积。值得注意的是往往Separable convolution和Depthwise convolution是统称为Depthwise convolution。假设卷积核的shape是[filter_height, filter_width, in_channels, channel_multiplier]区别仅在于channel_multiplier由于参考同一篇论文此处将其统一。 这样说来前面的例子中其实就是Depthwise separable convolution Depthwise convolution Pointwise convolution,这就是深度可分离卷积的真正内涵。这也就是以下论文的工作Xception: Deep Learning with Depthwise Separable Convolutions 总之Depthwise convolution是一种卷积操作和Separable convolution一样表示对channel维度进行卷积的一种方式。 5.Dilated convolution 空洞卷积是解决pixel-wise输出模型的一种常用的卷积方式。一种普遍的认识是pooling下采样操作导致的信息丢失是不可逆的通常的分类识别模型只需要预测每一类的概率所以我们不需要考虑pooling会导致损失图像细节信息的问题但是做像素级的预测时譬如语义分割就要考虑到这个问题了。那么空洞卷积可以用下图来说明 (a)图对应3x3的1-dilated convolution就是典型的卷积(b)图对应3x3的2-dilated convolution实际的卷积kernel size还是3x3但是空洞为1相当于kernel的size为7x7图中只有红色点的权重不为0其余都为0把3*3的感受野增大到了7*7。(c)图是4-dilated convolution能达到15x15的感受野。 也就是以下论文Multi-scale context aggregation by dilated convolutions 总之空洞卷积是卷积运算的一种方式在于增大了感受野却不丢失语义信息。