LeNet, AlexNet, VGG, GoogLeNet
卷积神经网络-LeNet
理解channel:卷积操作完成后输出的 out_channels
,取决于卷积核的数量。此时的 out_channels
也会作为下一次卷积时的卷积核的 in_channels
C1 层功能解读:卷积核(filter)实际上就是小的特征模版(5×5 feature window),卷积的作用就是用 特征模版在全图(input image)逐点计算每个点及其邻域 与该模版的符合度
S2 层功能解读:S2 层将 C1 层的 6 个特征图分别缩小 1 倍,在尺寸缩小的前提下,要保留 C1 层特 征图中的显著特征,这种保留分两个方面解读:位置、输出
C3 层功能解读:这一层将前层的 6 个特征按 16 种方式组合成 16 个组合卷积核(combined filters), 用这种卷积核对前层的 6 个特征图,做卷积、加截距(偏差)、通过激活函数,获得 16 个新的特征 图,每个特征图对应一个组合卷积核所表达的组合特征
S4 层功能解读:S4 层将 C3 层的 16 个特征图分别缩小 1 倍,在尺寸缩小的前提下,要保留 C3 层 特征图中的显著特征。
C5 层功能解读:这一层将前层的 16 个特征按全参加的方式组合成 120 个组合卷积核(combined filters),用这种卷积核对前层的 16 个特征图,做卷积、加截距、通过激活函数,获得 120 个新的 特征图(实际上只是一个特征值),每个特征值对应一个组合卷积核所表达的全图组合特征
F6 层功能解读:这一层将前层的 120 个神经元输出值按全连接方式得到本层的 84 个单元
F7 层功能解读:这一层将前层的 84 个神经元输出值按全连接方式得到本层的 10 个单元
代价函数:而网络学习的目的就是要通过修改网络权值,从而 降低这个代价值,使得网络输出尽量靠近对应的标签
Gradient Descent :
神经网络训练的目的就是选择合适的 θ使得代价函数取得极小
Cross Entropy Loss Function
是与Softmax网络相匹配的代价函数
基于信息熵的解释:
tips:
device = next(iter(net.parameters())).device #作用是获取神经网络模型参数所在的设备(device),并将其赋值给变量device。net.parameters()返回神经网络模型中的所有可训练参数
(包括权重和偏置) metric.add(d2l.accuracy(net(X), y), y.numel()) #将当前batch的训练准确率和样本数加入到累加器中,y.numel()表示当前batch的样本数
return metric[0] / metric[1]
# metric[0]表示累加器中所有训练准确率的和,metric[1]表示累加器中所有样本数的和
AlexNet
AlexNet和LeNet的设计理念⾮常相似,但也存在显著差异。
1. 网络更深
2. 使用ReLU作为激活函数
3. AlexNet通过暂退法控制全连接层的模型复杂度,⽽LeNet只使⽤了权重衰减
VGG
不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义。
该⽹络使⽤8个卷积层和3个全连接层,因此它通常被称为VGG-11
conv_arch = ((1, 64), (1, 128), (2, 256), (2, 512), (2, 512))
small_conv_arch = [(pair[0], pair[1] // ratio) for pair in conv_arch] #small_conv_arch是一个列表,存储了原始卷积神经网络的结构,conv_arch是一个元素为元组的列表,
每个元组表示一层卷积层的参数,包括卷积核数量和卷积核大小。ratio是一个缩小比例,用于控制小型卷积神经网络的规模。
这行代码的作用是将原始卷积神经网络的卷积核数量按照一定比例缩小,并生成一个新的卷积神经网络结构
NiN块
在每个像素的通道上分别使用MLP,NiN使⽤由⼀个卷积层和多个1*1卷积层组成的
一个卷积层后跟两个全连接层,步幅为1, 无填充, 输出形状跟卷积层输出一样,起到全连接层的作用
架构:
无全连接层
交替使用NiN块和步幅为2的最大池化层,逐步减少高度和最大通道数
最后使用全局平均池化层得到输出,其输入通道数是类别数
NiN块中的两个1x1卷积层主要用于增加模型的非线性能力和特征提取能力,第一个1x1卷积层用于降低通道数,相当于对不同通道的特征进行压缩和融合,从而得到更丰富的特征表示。第二个1x1卷积层用于将不同通道的特征进行线性组合,从而得到更高维度的特征表示。这样可以使得NiN块更加灵活,能够处理更加复杂的特征
GoogLeNet
Inception块相当于⼀个有4条路径的⼦⽹络。它通过不同窗⼝形状的卷积层和最⼤汇聚层来并⾏抽取信息,并使⽤1×1卷积层减少每像素级别上的通道维数从⽽降低模型复杂度。GoogLeNet将多个设计精细的Inception块与其他层(卷积层、全连接层)串联起。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)