gitchat训练营15天共度深度学习入门课程笔记(十一)

    xiaoxiao2024-11-16  74

    第7章 卷积神经网络

    7.2 卷积层7.2.2 卷积运算7.2.3 填充7.2.4 步幅输出数据大小计算7.2.5 3 维数据的卷积运算7.2.6 结合方块思考7.2.7 批处理

    基于全连接层(Affine 层)的网络的例子: 基于 CNN 的网络的例子,新增了 Convolution 层和 Pooling 层(用灰色的方块表示): CNN常见结构:

    “Convolution - ReLU -(Pooling)”(Pooling 层有时会被省略)靠近输出的层中使用“Affine - ReLU”最后的输出层中使用“Affine - Softmax”

    7.2 卷积层

    特征图(feature map):卷积层的输入输出数据输入特征图(input feature map):卷积层的输入数据输出特征图(output feature map):卷积层的输出数据

    7.2.2 卷积运算

    卷积运算相当于图像处理中的“滤波器运算”用“ ⊛ \circledast ”符号表示卷积运算

    卷积计算的过程:

    上面的卷积运算以1的步幅在输入数据上向右向下滑动滤波器的窗口,每滑动一次就将各个位置上滤波器的元素和输入的对应元素相乘,然后再求和(有时将这个计算称为乘积累加运算)。然后,将这个结果保存到输出的对应位置。

    偏置存在的情况:

    7.2.3 填充

    填充(padding):在进行卷积层的处理之前,有时要向输入数据的周围填入固定的数据(比如 0 等)(为了调整输出的大小,防止输出越来越小,变为1)幅度为 1 的填充:指用幅度为 1 像素的 0 填充周围增大填充后,输出大小会变大

    例子如下:

    7.2.4 步幅

    步幅(stride):应用滤波器的位置间隔增大步幅后,输出大小会变小

    输出数据大小计算

    输入大小为 (H, W)滤波器大小为(FH, FW)输出大小为(OH, OW)填充为P,步幅为 S

    O H = H + 2 P − F H S + 1 OH=\frac{H+2P-FH}{S}+1 OH=SH+2PFH+1 O W = W + 2 P − F W S + 1 OW=\frac{W+2P-FW}{S}+1 OW=SW+2PFW+1 上式要可以除尽,否则需要报错,在一些深度学习框架中会四舍五入,不需要报错。

    7.2.5 3 维数据的卷积运算

    当有了纵深(通道方向)时,卷积计算的例子:

    卷积计算:

    按通道进行输入数据和滤波器的卷积运算,并将结果相加输入数据和滤波器的通道数要设为相同的值

    7.2.6 结合方块思考

    结合长方体来思考卷积运算:

    通道数为 1 的输出数据:

    3. 通道数为FN的输出数据:

    应用多个滤波器就可以得到多个卷积计算的输出。

    有偏置的情况:

    CNN的处理流:用多个滤波器得到了FN个输出数据,即(FH,OH,OW)的数据方块,将该方块传递给下一层继续处理。

    7.2.7 批处理

    卷积运算批处理:各层间的数据按 (batch_num, channel, height, width) 的顺序保存为 4 维数据

    一次对 N 个数据进行卷积运算的例子:

    end

    原书为《深度学习入门 基于Python的理论与实现》作者:斋藤康毅 人民邮电出版社本文章是gitchat的《陆宇杰的训练营:15天共读深度学习》1的课程读书笔记本文章大量引用原书中的内容和训练营课程中的内容作为笔记

    《陆宇杰的训练营:15天共读深度学习》 ↩︎

    最新回复(0)