umich cv-4-2 经典卷积网络架构
这节课中主要讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的
AlexNet
在2012年的时候,Alexnet神经网络提出,这时网络的架构比如说各个层之间要如何排列组合,使用多少卷积层池化层,每个层又如何设置超参数其实没有什么规律,主要通过实验与试错:

但是我们通过对内容容量,可学习参数以及浮点运算次数的计算,可以看到一些有趣的规律,绝大多数的内容容量都使用在了卷积层,绝大多数的可学习的参数都在全连接层,绝大多数的浮点运算都发生在卷积层

在2013年又提出了ZFNet,其实只是一个更大的AlexNet:


VGG
在2014年提出了VGG网络,VGG网络引入了有规律的设计。建立了更深层的网络,我们可以看到卷积层与池化层的超参数都是固定的,并且每次池化之后都会让卷积层通道数加倍,这样可以保证卷积层每次进行的运算数量一致

从下图也可以看出,VGG要比Alexnet复杂许多:

GoogleNet

但是同样在2014年提出的Googlenet网络中,不再强调更大更深的神经网络,因为谷歌想要在更低要求的设备下,去追求效率,这意味着减少内存容量的使用,可学习参数的数目以及浮点运算的次数
为了实现上面的目标,googlenet做出了很多的努力
首先,在网络最开始,Googlenet采用了非常激进地下采样,使用了步长与卷积核都比较大的卷积层以及池化层,我们可以看到是直接从224维度降到了28,同时内存,参数,浮点运算也大幅下降:

其次,Googlenet在网络的中间部分,多次采用了叫Inception Module的结构,我们可以看到它是采用了多个平行分支,在多个尺寸上进行卷积再聚合,那么我们怎么理解这样设计呢,可以参考这篇博文:https://zhuanlan.zhihu.com/p/32702031
简单来说,其实就相当于把传统卷积方式得到的稀疏矩阵,使用不同尺度的卷积,我们可以得到密集矩阵,把相关性强的特征聚集在一起,筛除了冗余信息:

然后,在神经网络的最后,不使用很大的全连接层,而是使用一个平均池化层以及一个全连接层来输出各分类分数得分,这样可以大大减少参数,内存以及浮点运算次数:

最后,由于神经网络层数过深,梯度传播效果不佳,可以选择在其它层数采用和最后结构一样的结构,提取输出分类分数,但是这里是batch normalization还没有提出的时候,之后我们就不需要这样做

ResidualNetwork
在batch normalization提出之后,我们可以很轻松地训练深层的网络使其收敛,导致神经网络的层数迅速增加,但是又出现的新的问题,发现深层神经网络反而不如浅层神经网络训练效果好,甚至出现了欠拟合的情况。
后来就有人(何大神)想出了残差网络,核心原理可以参见这篇:https://medium.com/@hupinwei/深度學習-resnet之殘差學習-f3ac36701b2f
大概是说过深的神经网络会导致出现退化的情况,有一种办法就是我们直接堆叠一层和上一层一样的结果(Identify mapping 恒等映射),更好的办法是这样做:
“讓我們先建立以下的概念:
輸入是x
學到的特徵是H(x)
我們定義一個新的名詞,叫做殘差 Residual
Residual = H(x) - x
殘差的概念很直覺吧? 就是學到的特徵和原本的輸入的差異。
既然是Residual = H(x) - x,Residual 也是X的函數,所以也寫作F(x), 那F(x) = H(x) - x
原本學習是這樣的。 x → H(x)
已經知道 F(x) = H(x) - x
所以學習也可以這樣寫:x → F(x) + x
因為H(x) = F(x) + x
用文字來說明的話,
輸入→特徵
變成:輸入→ 輸入 + 殘差
這樣有什麼好處嗎?
如果今天我們多一層,什麼都沒有學到。那殘差就是0
那多這一層,想想我們上面介紹過的,當殘差=0的時候,輸入→ 輸入,這一層就叫做恆等映射,因此,多這一層如果沒學到新的特徵,也不會讓模型退化。實際上當然不會剛好等於0, 而是可以增加很多層,而每一層都可以學到一些新的更複雜的特徵。”
这就是残差网络中基本的残差块的设计思路:

我们把上图的shortcut加入卷积层,再结合之前VGG的中间结构设计,googlenet的首尾设计,刚开始激进地下采样,最后采用平均池化层与一个线性层输出结构,就得到了残差网络的设计:


更进一步地,我们可以优化残差块的设计,使计算量更小:

我们可以总体看看不同卷积网络的复杂度比较:

最后提及一些其它更加高效的设计,并没有详细地讲,我也不是很懂,这里就再放一张总结图以及小哥的温馨提示:


umich cv-4-2 经典卷积网络架构的更多相关文章
- 经典卷积网络VGG,GoodLeNet,Inception
目录 ImageNet LeNet-5 LeNet-5 Demo AlexNet VGG 1*1 Convolution GoogLeNet Stack more layers? ImageNet L ...
- 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)
摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...
- EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络
前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...
- deeplearning.ai 卷积神经网络 Week 2 深度卷积网络:实例研究 听课笔记
1. Case study:学习经典网络的原因是它们可以被迁移到其他任务中. 1.1)几种经典的网络: a)LeNet-5(LeCun et al., 1998. Gradient-based lea ...
- CNN网络架构演进:从LeNet到DenseNet
卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...
- CNN网络架构演进
卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...
- 语义分割--全卷积网络FCN详解
语义分割--全卷积网络FCN详解 1.FCN概述 CNN做图像分类甚至做目标检测的效果已经被证明并广泛应用,图像语义分割本质上也可以认为是稠密的目标识别(需要预测每个像素点的类别). 传统的基于C ...
- 五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! LeNet / AlexNet / GoogLeNet / VGG ...
- 怎样设计最优的卷积神经网络架构?| NAS原理剖析
虽然,深度学习在近几年发展迅速.但是,关于如何才能设计出最优的卷积神经网络架构这个问题仍在处于探索阶段. 其中一大部分原因是因为当前那些取得成功的神经网络的架构设计原理仍然是一个黑盒.虽然我们有着关于 ...
- 【论文阅读】ConvNeXt:A ConvNet for the 2020s 新时代卷积网络
一.ConvNext Highlight 核心宗旨:基于ResNet-50的结构,参考Swin-Transformer的思想进行现代化改造,知道卷机模型超过trans-based方法的SOTA效果. ...
随机推荐
- Java扩展Nginx之四:远程调试
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Java扩展Nginx> ...
- 公网环境部署zabbix5.0
实验环境 虚拟机两台,一台公网地址为 1.1.1.1,部署 zabbix server,一台公网地址为 1.1.1.2,部署 zabbix proxy,系统为centos7.2. 1 zabbix s ...
- 学习LVM:archive 和 backup目录
推荐文档:Logical Volume Manager Administration 在掌握了基本的commands操作后,你是否对操作背后的一些东西产生好奇呢? 程序的configure一般会提供这 ...
- 使用netdata 监控Linux 主机
在linux主机上,直接使用下面的命令创建容器即可 docker run -d --name=netdata \ -p 19999:19999 \ -v netdataconfig:/etc/netd ...
- 趣图|代码重构前vs重构后
前言 很多程序员对自己写的代码平时很随心所欲,但当有一天让他维护他人的代码,他就会抓狂,很容易激发他体内重构的瘾.(大多数程序员审阅完别人代码后,先会忍不住吐槽一番,然后会忍不住想重构一把,) 在我看 ...
- python移动文件
#移动文件(目录) shutil.move("oldpos","newpos") shutil.move("D:/知乎日报/latest/一张优惠券, ...
- 社区活动 | “中文 AI 微小说大赛”正式开启报名!
️ 我们要求每位参赛选手以 LLM (大语言模型)为工具,将 AI 的能力与选手的创作才华相结合,创造出引人入胜.感人至深或充满疯狂的微小说! 无论你是首次接触 AI 工具还是资深的从业者,我们期待在 ...
- 应用管理平台Walrus开源,构建软件交付新范式
今日,数澈软件Seal(以下简称"Seal")宣布正式开源 Walrus,这是一款基于平台工程理念的应用管理平台,致力于解决应用交付领域的深切痛点. 借助 Walrus 将云原生的 ...
- 【io_uring】简介和使用
文章目录 简介 使用 系统调用 liburing 样例 代码流程 编译 参考资料 简介 io_uring 是 Linux 在 5.1 版本引入的一套新的异步 IO 实现.相比 Linux 在 2.6 ...
- MIT 6.828 Lab实验记录 —— lab1 Booting PC
实验参考信息 MIT 6.828 lab1 讲义地址 MIT 6.828 课程 Schedule MIT 6.828 lab 环境搭建参考 MIT 6.828 lab 工具guide Brennan' ...