卷积

卷积神经网络的复杂度分析

在梳理CNN经典模型的过程中,我理解到其实经典模型演进中的很多创新点都与改善模型计算复杂度紧密相关,因此今天就让我们对卷积神经网络的复杂度分析简单总结一下下。

1.时间复杂度

卷积神经网络的复杂度分析
1.2 卷积神经网络整体的时间复杂度
卷积神经网络的复杂度分析
示例:用 Numpy 手动简单实现二维卷积

假设 Stride = 1, Padding = 0, img 和 kernel 都是 np.ndarray.

用例子说明为何我们需要卷积神经网络,以及卷积在神经网络中的作用。
目前网上的卷积网络科普大多是翻译的,内容大同小异。本文会更偏重于实际例子。

1. 找橘猫:最简单的办法

今天我们的任务是找出图中有没有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

怎样用最简单(笨)的方法完成这个任务?那肯定是看图中的橘色占多少面积,比如说超过10%就认为有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

但怎么告诉电脑?具体来说,图像在电脑中是按像素(就是一个个点)存储的:

如何理解空洞卷积(dilated convolution)?

来源:知乎 作者:谭旭

简单讨论下dilated conv,中文可以叫做空洞卷积或者扩张卷积。首先介绍一下dilated conv诞生背景[4],再解释dilated conv操作本身,以及应用。

首先是诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN[3])中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测(upsampling一般采用deconv反卷积操作,deconv可参见知乎答案如何理解深度学习中的deconvolution networks?),之前的pooling操作使得每个pixel预测都能看到较大感受野信息。因此图像分割FCN中有两个关键,一个是pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先减小再增大尺寸的过程中,肯定有一些信息损失掉了,那么能不能设计一种新的操作,不通过pooling也能有较大的感受野看到更多的信息呢?答案就是dilated conv。

下面看一下dilated conv原始论文[4]中的示意图:

同步内容
--电子创新网--
粤ICP备12070055号