15天共读深度学习Day11

版权声明:感谢阅读,欢迎批评指正。 https://blog.csdn.net/skyejy/article/details/89743126

卷积神经网络 CNN convolutional neural network

CNN被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以CNN为基础。

(1)全连接

此图是基于全连接层(Affine层)的网络的例子。

神经网络中,相邻层的所有神经元之间都有连接,这称为全连接(fully-connected)

全连接的神经网络中,Affine层后面跟着激活函数ReLU层(或者sigmoid层)这里堆叠了4层“Affine-ReLU”组合,然后第五层是Affine层,最后由softmax层输出最终结果(概率)

(2)CNN

上图是CNN的一个例子。基于CNN的网络的例子:新增了convolution层和pooling层

之前的“Affine-ReLU”连接被替换成“Convolution-ReLU-(Pooling)”连接(Pooling层有时会被省略)

还需要注意的是,靠近输出的层中使用了之前的“Affine-ReLU”组合,此外,最后的输出层中使用了之前的“Affine-Softmax”组合,这都是一般的CNN中比较常见的结构。

(3)全连接层存在的问题与CNN的改进

在全连接中,数据的形状被忽视了。比如,输入数据是图像时,图像通常是高、长、通道方向上的3维形状。但是,向全连接层输入时,需要将3维数据拉平为1维数据。所以无法利用与形状相关的信息。

而卷积层可以保持形状不变。当输入数据是图像时,卷积层会以3维数据的形式接受输入数据,并同样以3维数据的形式输出至下一层。因此,在CNN中,可以(有可能)正确理解图像等具有形状的数据。

另外,CNN中,有时将卷积层的输入输出数据称为特征图(feature map)其中,卷积层的输入数据称为输入特征图(input feature map)输出数据称为输出特征图(output feature map)

(4)卷积运算

卷积运算的计算顺序

加偏置后

填充

在进行卷积层的处理之前,有时要向输入数据的周围填入固定的数据(比如0),这称为填充(padding)是卷积层中经常会用到的处理。使用填充主要是为了调整输出的大小。

步幅(stride)

应用滤波器的位置间隔称为步幅

步幅为2的例子:

综上,增大步幅后,输出大小会变小。增大填充后,输出大小会变大。

(5)3维数据的卷积运算

(6)结合方块思考

通道数C channel 高度 H height 长度 W width

加批处理之后

猜你喜欢

转载自blog.csdn.net/skyejy/article/details/89743126
今日推荐