刘二大人-卷积神经网络(高级篇)
更复杂的神经网络结构GoogleNetGoogleNet也称为Inception网络是一种深度卷积神经网络CNN架构由Google的研究团队在2014年提出。它是为了解决图像识别任务而设计的特别是针对ImageNet大规模视觉识别挑战赛ILSVRC。主要特点Inception模块GoogleNet的核心是Inception模块该模块通过不同尺寸的卷积和池化层并行组合以捕捉不同尺度的特征从而提高网络的性能。深度与宽度GoogleNet通过增加网络的深度和宽度来提高其表达能力和准确性。减少参数数量尽管GoogleNet是一个深度和宽度的网络但它通过使用1x1的卷积层来减少参数数量和计算量这有助于避免过拟合并提高计算效率。辅助分类器在网络的中间层添加了辅助分类器这些分类器在训练过程中有助于向前传导梯度防止在网络较深的层中出现梯度消失问题。Inception模块的结构1x1卷积层减少特征图的维度降低计算复杂度。3x3卷积层捕获局部特征。5x5卷积层捕获更大范围的特征。3x3最大池化层提供局部特征的下采样。这些层并行连接然后它们的输出在深度方向上拼接形成下一层的输入。GoogleNet的版本Inception v1最初的GoogleNet架构。Inception v2/v3改进了Inception模块引入了批量归一化Batch Normalization和更有效的卷积分解技术。Inception v4/Inception-ResNet结合了Inception模块和残差连接Residual Connections。蓝色的块是卷积红色的块是池化黄色的块是输出绿色的块是拼接层减少代码冗余用函数/类减少重复工作用红色圈画出来的块叫做Inception模块它可以自动从四条分路中找出最优的一条。从下往上走。一个典型的Inception模块包含以下四个并行分支1x1卷积层这一层用于减少特征图的深度同时捕获跨通道的相互作用。1x1卷积层后接3x3卷积层首先通过1x1卷积减少深度然后使用3x3卷积捕获局部特征。1x1卷积层后接5x5卷积层与3x3卷积类似但使用更大的5x5卷积核来捕获更大范围的特征。3x3最大池化层后接1x1卷积层首先通过3x3的最大池化进行下采样然后通过1x1卷积减少深度。每个分支的输出在深度方向上拼接concatenate形成模块的最终输出。1x1卷积通过改变权重调整每个像素的强度从而可以增加或减少通道数最重要的功能调整激活函数的范围学习特征图之间的关系与其他卷积层结合使用1x1卷积通过减少通道数来减少运算量。在深度学习中Average Pooling平均池化是一种在卷积神经网络CNN中使用的池化Pooling技术。它的目的是减少计算量降低模型对位置的敏感度同时保留重要信息。先输入通道再输出通道再尺寸。用padding是为了保持尺寸不变。第四个分支加一个branch3x3self.branch3x3-3(branch3x3)用cat函数将他们四个连接起来dim1表示根据第一个维度通道channel连接最左边是0运行代码展示。fc是全连接层的简称并不是卷积的次数越多效果越好。可能会导致梯度消失。Residual net残差网络的基本构建块是残差块。一个典型的残差块包含几个层通常是卷积层以及一个“跳跃连接”或称为“恒等连接”。跳跃连接绕过一些层直接将输入x连接到这些层的输出上这样输出可以表示为 F(x)xF(x)x其中 F(x)F(x) 是残差块中的层对输入 xx 的处理结果。能解决梯度下降的问题。ReLU层Rectified Linear Unit Layer是深度学习中常用的一种激活函数层其主要作用是在神经网络中引入非线性因素使得网络能够学习和模拟更复杂的函数。网络结构。不要单纯复现代码要读懂每个模块的功能。