美文网首页人工智能大数据
人工智能00039 深度学习与图像识别书摘39 卷积神经网络基础

人工智能00039 深度学习与图像识别书摘39 卷积神经网络基础

作者: 良友知音 | 来源:发表于2024-02-28 22:58 被阅读0次

    全连接层

    全连接层(Fully Connected Layer)可以简单地理解为前面章节中提到的神经网络的一个隐藏层,它包含权重向量W和激活函数。

    具体来说,对于一张32*32*3的图片(宽和高均为32个像素,有RGB三个通道,可以将其理解为一个32*32*3的矩阵),要通过全连接层,首先要将其拉伸为3072*1的向量作为神经网络隐藏层的输入,然后该向量与权重向量W做点乘操作,再将点乘后的结果作为激活函数(如Sigmoid或tanh)的输入,最终,激活函数输出的结果便是全连接层的最终结果。

    说明:

    当完成激活(activation)后的结果为一维向量时,通常将该结果称为特征向量(或激活向量);当激活后的结果为二维向量时,通常称为特征层(feature map,有时也称为激活层,activation map)。由于后面要介绍的卷积层也需要经过激活函数,因此卷积操作得到的结果通常被称为“特征层”。

    卷积层

    (Convolution Layer)与全连接层不同,它保留了输入图像的空间特征,即对于一张32*32*3的图片而言,卷积层的输入就是32*32*3的矩阵,不需要做任何改变。

    在卷积层中,我们引入了一个新的概念:卷积核kernel(常简称为卷积,有时也称为滤波器filter)。

    卷积的大小可以在实际需要时自定义其长和宽(常见的卷积神经网络中通常将其设置为1*1、3*3、5*5等),其通道个数一般设置为与输入图片通道数量一致。

    必要的概念已经介绍完毕,接下来我们讲一下卷积的过程:让卷积(核)在输入图片上依次进行滑动,滑动方向为从左到右,从上到下;每滑动一次,卷积(核)就与其滑窗位置对应的输入图片x做一次点积计算并得到一个数值。 这里需要提到另外一个概念:步长(stride)。

    步长是指卷积在输入图片上移动时需要移动的像素数,如步长为1时,卷积每次只移动1个像素,计算过程不会跳过任何一个像素,而步长为2时,卷积每次移动2个像素。

    补充说明: 卷积每次滑动覆盖的格子范围在图像处理中被称为“感受野”,这个名词在后文中还会用到。

    卷积神经网络是由一系列卷积层经过激活来得到的。

    与传统神经网络不同的是,卷积层的计算是含有空间信息的。 PyTorch中的卷积函数代码具体如下:  classtorch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

    in_channels (int) :输入图片的channel

    out_channels (int) :输出图片(特征层)的channel kernel_size (int or tuple) :kernel的大小

    stride (int or tuple, optional) :卷积的步长,默认为1

    padding (int or tuple, optional) :四周pad的大小,默认为0

    dilation (int or tuple, optional) :kernel元素间的距离,默认为1(dilation翻译为扩张,有时候也称为“空洞”,有专门的文章研究dilation convolution)

    groups (int, optional) :将原始输入channel划分成的组数,默认为1(初级读者暂时可以不必细究其用处)

    bias (bool, optional) :如果是Ture,则输出的bias可学,默认为True

    相关文章

      网友评论

        本文标题:人工智能00039 深度学习与图像识别书摘39 卷积神经网络基础

        本文链接:https://www.haomeiwen.com/subject/zgifzdtx.html