卷积神经网络

                     

贡献者: xzllxls

预备知识 卷积神经网络,全连接网络,Python 导航

   卷积神经网络(简称卷积网络,Convolutional Neural Networks, CNN)是指那些至少有一层为卷积层的神经网络[1],卷积网络是一类最广泛使用的基本神经网络架构。卷积层(Convolutional Layer)是用卷积运算代替一般矩阵乘法运算的网络层。

   卷积神经网络与以往的传统神经网络,比如全连接网络,有很多相似的地方。它们都有数据输入和输出,通常具有中间隐含层。在深度学习中,卷积网络的隐含层数量往往较多。卷积操作主要考虑相邻神经元之间的关系。由于使用卷积操作,卷积网络与全连接网络相比,参数数量大大减少。而此一特性恰好可以适用于图像处理。因为,在图像中,通常距离接近的像素之间具有较强的关系,而距离较远的像素之间可能没有较大的关系。

   由于在实际应用中,大多数图像是二维数据,因为二维卷积网络最为常用。二维卷积层有多个超参数。一个二维卷积层的输入为一个矩阵,其宽为 $W_i$、高为 $H_i$、通道数 $C_i$。卷积核个数为 $K$,步长为 $S$。补零的数量为 $P$。经过卷积层的操作之后,输出一个矩阵,该矩阵的规格为:宽 $W_o$、高 $H_o$、通道数 $C_o$。

   输入和输出的超参数之间有如下关系:

   有些应用场景,所须要处理的数据是三维图像块,此时可以使用三维卷积网络。三维卷积层的超参数如下:输入为一个矩阵,其宽为 $W_i$、高为 $H_i$、深为 $D_i$、通道数 $C_i$。卷积核个数为 $K$,步长为 $S$。补零的数量为 $P$。经过卷积层的操作之后,输出一个矩阵,该矩阵的规格为:宽 $W_o$、高 $H_o$、深为 $D_o$、通道数 $C_o$。

   输入和输出的超参数之间有如下关系:

   当前流行的深度学习开发框架都有相应的编程接口,能够很方便的构建卷积网络模型。 你如果使用的是 TensorFlow v2.x 版本,可以采用以下函数来建立一个二维卷积层:

tf.nn.convolution(
    input,
    filters,
    strides=None,
    padding='VALID',
    data_format=None,
    dilations=None,
    name=None
)
该函数的参数主要是:input 是输入张量,filters 是过滤器(即卷积核)的个数,strides 表示的是步长,padding 表示的是补零方式,data_format 表示的是数据格式,dilations 表示的是升采样和降采样率。其中 data_format 数据格式参数有两个取值:$NHWC$ 和 $NCHW$。$N$ 表示的是批次大小,$H$ 表示的是高度,$W$ 表示的是宽度,$C$ 表示的是通道数。

   你如果使用的是 PyTorch,可以采用下面的代码来建立二维卷积层:

torch.nn.Conv2d(in_channels, 
                out_channels, 
                kernel_size,
                stride=1, 
                padding=0,
                dilation=1,
                groups=1,
                bias=True,
                padding_mode='zeros',
                device=None,
                dtype=None)
这是一个封装好的二维卷积层类,可以通过新建一个 Conv2d 对象来建立一个 Pytorch 的二维卷积层。该类的主要参数有:in_channels 是输入数据的通道数,out_channels 是输出结果的通道数,kernel_size 是卷积核尺寸,stride 是步幅,padding 是补零数量,dilation 是膨胀方式,groups 是分组数,bias 是偏置,padding_mode 是补零方式,device 是所采用的计算设备,可以是 CPU,也可以是 GPU,dtype 是数据类型。

   参考文献:

  1. I. Goodfellow, Y. Bengio, and A. Courville, Deep learning. MIT press, 2016, pp. 330.

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利