现代神经网络总结(AlexNet VGG GoogleNet ResNet的区别与改进)

VGG NIN GoogleNet

1.VGG,NIN,GoogleNet的块结构图对比(注意:无AlexNet)

这些块带来的区别与细节

复制代码
AlexNet未使用块,主要对各个层进行了解:
卷积:捕捉特征
relu:增强非线性
池化层:减少计算量
norm:规范数据分布
全连接层:分类


VGG块的改善(对比AlexNet):
1.使用VGG块,更加的符合封装思想
2.VGG块使用更小的卷积核,可以捕捉更多细节
3.因为不断累加VGG块的原因,使得VGG可以比AlexNet更深
4.输入输出形状更加有规律

NIN块的改善(对比VGG):
1.训练的参数更少,且捕捉了更深的特征(使用了1x1卷积)
2.减少了模型中的参数数量(全局平均池化层)
原因:参数共享(可以查看参考视频,方便理解)

Googlenet(对比VGG):
1.带来了多种卷积对应的多种特征(既不同尺度下的特征)(同一层内并行地应用多种卷积核尺寸和池化操作)

3.7 特征图尺寸计算与参数共享_哔哩哔哩_bilibili

2.代码对比

AlexNet:

复制代码
代码块:(卷积+最大池化层)
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2)

输出:(全连接分类)
	nn.Flatten(),
    nn.Linear(6400, 4096), nn.ReLU()

VGG

复制代码
代码块:(n层卷积层+1层最大池化层)
       nn.Conv2d(in_channels, out_channels,kernel_size=3, padding=1)
       nn.ReLU()
       nn.MaxPool2d(kernel_size=2,stride=2)
输出:(全连接层)
	nn.Flatten(),
    nn.Linear(6400, 4096), nn.ReLU()

NIN

复制代码
代码块:(卷积层+2个1x1卷积核组成的卷积层)
        nn.Conv2d(in_channels, out_channels, kernel_size, strides, padding),nn.ReLU(),
        nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU(),
        nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU()

输出:(NIN块+最大池化层+flatten)
  nin_block(384, 10, kernel_size=3, strides=1, padding=1), 
  nn.AdaptiveAvgPool2d((1, 1)), 
  nn.Flatten()

GoogleNet

复制代码
代码块:(线路1+线路2+线路3+线路4的结果横向拼接)
torch.cat((p1, p2, p3, p4), dim=1)

输出:(最后是全连接层)
net = nn.Sequential(b1, b2, b3, b4, b5, nn.Linear(1024, 10))

7.4. 含并行连结的网络(GoogLeNet) --- 动手学深度学习 2.0.0 documentation (d2l.ai)

注意:

复制代码
以上所有得到的的都是分类映射,一般要再经过一次softmax才能得到分类结果,但softmax一般包含再网络定义的损失函数中了 既:
loss = nn.CrossEntropyLoss()时 softmax会被自动调用

ResNet

在上面三层神经网络之后得到的疑惑

->神经网络越深,越复杂总能改进精度吗?

复制代码
如沐神的图,F1,F2的范围指的是对应网络的取值,f指的是真实值。
神经网络复杂度F1<F2,但是可以很明显看到F3没有F4复杂,但是F3离真实值更近。

所以答案是否定的


为了让神经网络越深,越复杂总能改进精度实现,如图2的思想就能满足,其实很简单:F2总是比F1取值范围大且F2包含F1就好了,既f(x)+x

ResNet的表现是:

复制代码
注意:
1.如果f(x)与x的通道数不同 使用1X1卷积来改变通道数
2.如果f(x)与x的高宽不同 使用padding=0来扩充高宽
相关推荐
JJJJ_iii7 小时前
【机器学习11】决策树进阶、随机森林、XGBoost、模型对比
人工智能·python·神经网络·算法·决策树·随机森林·机器学习
南方的狮子先生9 小时前
【深度学习】卷积神经网络(CNN)入门:看图识物不再难!
人工智能·笔记·深度学习·神经网络·机器学习·cnn·1024程序员节
howard200510 小时前
神经网络初探
深度学习·神经网络·keras
合才科技13 小时前
神经网络如何预测仓库拥堵?
人工智能·深度学习·神经网络
文火冰糖的硅基工坊13 小时前
[人工智能-大模型-115]:模型层 - 用通俗易懂的语言,阐述神经网络为啥需要多层
人工智能·深度学习·神经网络
无风听海13 小时前
神经网络之协方差
人工智能·深度学习·神经网络
IT古董1 天前
【第六章:项目实战之推荐/广告系统】3.精排算法-(2)精排算法模型精讲: DNN、deepFM、ESMM、PLE、MMOE算法精讲与实现- DNN 精排模型
人工智能·神经网络·dnn
IT古董1 天前
【第六章:项目实战之推荐/广告系统】3.精排算法-(2)精排算法模型精讲: DNN、deepFM、ESMM、PLE、MMOE算法精讲与实现- PLE 模型
人工智能·神经网络·dnn
极客BIM工作室1 天前
AI 图像生成技术发展时间脉络:从 GAN 到多模态大模型的知名模型概略解析
人工智能·神经网络·生成对抗网络
Brianna Home1 天前
PyTorch实战:CV模型搭建全指南
人工智能·pytorch·经验分享·python·神经网络·结对编程