卷积

抽丝剥茧,带你理解转置卷积(反卷积)

转置卷积又叫反卷积、逆卷积。不过转置卷积是目前最为正规和主流的名称,因为这个名称更加贴切的描述了卷积的计算过程,而其他的名字容易造成误导。在主流的深度学习框架中,如TensorFlow,Pytorch,Keras中的函数名都是conv_transpose。

CNN中几个新的卷积方式

在图像识别中,卷积神经网络(CNN)无疑是现在最先进的方法。CNN的基础操作是对图像中的局部区域做卷积提取特征,在每一层的卷积中使用相同的卷积核(共享参数)以减少参数数量,再结合池化(pooling)操作可以实现位移不变性的识别。

形象理解深度学习中八大类型卷积

本文总结了深度学习中常用的八大类型的卷积,以非常形象的方式帮助你建立直觉理解,为你的深度学习提供有益的参考。分别是单通道卷积、多通道卷积、3D卷积、1 x 1卷积、转置卷积、扩张卷积、可分离卷积、分组卷积。

理解CNN卷积层与池化层计算

深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的计算至关重要,不同的步长、填充方式、卷积核大小、池化层策略等都会对最终输出模型与参数、计算复杂度产生重要影响,本文将从卷积层与池化层计算这些相关参数出发,演示一下不同步长、填充方式、卷积核大小计算结果差异。

对深度可分离卷积、分组卷积、空洞卷积、转置卷积的理解

深度可分离卷积

在《Python深度学习》(Keras之父执笔)这本书里看到:注意,大部分(或全部)普通卷积很可能不久后会被深度可分离卷积(depthwise separable convolution)所替代, 后者与前者等效,但速度更快,表示效率更高。

1. 简介

在可分离卷积中,它将对区域和通道的计算分离开,而普通卷积是同时考虑区域和通道的。

2. 通过例子对比可分离卷积和普通卷积的区别

假设一个3×3大小的filter,其输入通道为16,输出通道为32
普通卷积的参数: (3×3×16)×32=4068
可分离卷积:
先考虑区域,即每个通道对应一个3×3×1大小的filter, 然后考虑通道对应32个1×1×16大小的filter
参数计算: (3×3×1)×16 + (1×1×16)×32=656

下面这张图来自参考链接1

深度学习中的“卷积”与数学中的“卷积”有何不同?

深度学习中的卷积

当提到神经网络中的卷积时,我们通常是指由多个并行卷积组成的运算。(因为单个核只能特区一种类型的特征,我们usually希望可以在多个位置提取多个特征)

输入也不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格。

我们有的时候会希望跳出核中的一些位置来降低计算的开销(相应的代价是提取特征没有先前那么好了)我们就把这个过程看作对全卷积函数输出的下采样(downsampling).如果只是在输出的每个方向上每间隔s个像素进行采样,那么可重新定义一个 下采样卷积函数。我们把s称为下采样卷积的步幅(stride)。

在任何卷积网络的实现中都有一个重要性质:能够隐含地对输入V用零进行填充(pad)使得它加宽。

普遍意义的卷积

从数学上讲,卷积只不过是一种运算,对于很多没有学过信号处理,自动控制的同学来说各种专业的名词可以不做了解。我们接着继续:

CNN中卷积的意义

在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量。需要人工设计特征,然后将用这些特征计算的值组成特征向量。在过去几十年的经验来看,人工找的特征并不总是好用。有时多了,有时少了,有时选的特征根本就不起作用(真正起作用的特征在浩瀚的未知里)。这就是为啥过去几十年神经网络一直被SVM等完虐的原因。

各种卷积结构原理及优劣总结

卷积神经网络作为深度学习的典型网络,在图像处理和计算机视觉等多个领域都取得了很好的效果。

Paul-Louis Pröve在Medium上通过这篇文章快速地介绍了不同类型的卷积结构(Convolution)及优势。为了简单起见,本文仅探讨二维卷积结构。

卷积

首先,定义下卷积层的结构参数。

卷积核为3、步幅为1和带有边界扩充的二维卷积结构

卷积核大小(Kernel Size):定义了卷积操作的感受野。在二维卷积中,通常设置为3,即卷积核大小为3×3。

步幅(Stride):定义了卷积核遍历图像时的步幅大小。其默认值通常设置为1,也可将步幅设置为2后对图像进行下采样,这种方式与最大池化类似。