020:为什么 Resnet 如此重要?

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。

合集完整版请查看这里

Resnet 模型的重要性,上一节大概介绍了一下。

可以从以下两个方面来有所体现:

第一是 Resnet 广泛的作为其他神经网络的 back bone;

第二是 Resnet 是AI芯片厂家对标性能时,在视觉领域尤其是图像分类任务中的首选网络。

下面针对这两点再补充介绍一下。

哪些网络以 Resnet 作为 back bone?

back bone 意为骨干网络,很多模型将 resnet 作为骨干网络时,主要是因为需要从图像中提取高级特征的需要,也就是这些模型将 resnet 作为一个高效的特征提取器来使用。

Yolo-v3

YOLO (You Only Look Once) 网络是一个广泛应用的目标检测模型,上图是yolov3 的主要结构(图源江大白)。

最左上角红色框出来的便是 yolov3 的back bone, 由一些 resnet 结构串联而成。它的作用便是对原始输入的图像(最左侧)进行特征提取。

在yolov3模型中,通过在不同的 resnet 后拉出一个新的分支,来处理不同尺度下的图像特征,从而可以检测出图像中大尺寸的物体、小尺寸的物体、中尺寸的物体,如下图所示。

yolo 模型与 resnet 相比,还多了一些其他的网络结构,比如上下采样和 concat(这是一种联接操作),这是为了更好的完成图像的目标检测任务而设计的。

当我们将 resnet 这一部分的原理搞清楚之后,几乎可以无缝衔接的学习 yolo, 并且可以到很快学会。

特斯拉的占用网络

上图是特斯拉占用网络的结构图。

最上面一排的图片可以看作汽车摄像头采集到的图片,图片经过以 Resnet 为 BackBone 的特征提取器(Extractor)之后,再经过基于 transformer 结构的多传感器特征融合层(Multicam Fusion),随后再经过视频处理模块,便可以完成一些复杂的任务,比如物体的检测、物体的3D重建等。

当然除了yolo 和占用网络之外,还有很多网络也会用到 resnet,这里不一一列举了,感兴趣的小伙伴可以去搜索一下。

性能标杆

除了将 resnet 这一结构当做骨干网络之外,另一个让我觉得 resnet 很重要的地方在于,几乎所有的 AI 芯片公司,包括国外的英伟达,在测试自家芯片的时候,都会将 resnet50 的性能数据作为宣传, 如下是英伟达官网宣传自家GPU时的截图。

而后来成立的性能打榜平台 MLperf 中,更是将 resnet 的跑分数据作为了计算机视觉中一个重要的单项测试指标。

总之,经典且重要的 resnet50 神经网络模型,作为入门计算机视觉算法非常合适。

包含哪些算法呢?

这里汇总一下 resnet50 模型中包含的所有算法,并做简单介绍。

Resnet50 模型总共包含:卷积、激活函数、最大池化、加法、全局平均池化、全连接和 softmax 等几种算法。

卷积

卷积算法是卷积神经网络的核心。

它的主要作用是对图片(神经网络的第一层的输入是原始的图片)或者特征图(中间层卷积的输入是上一层卷积输出的特征图)进行特征提取,从而实现在不同尺度下的特征融合。

激活函数(Relu)

神经网络中的激活函数有很多,激活函数一般都跟在卷积层后面,用来对卷积的运算结果施加一个非线性变换的因素。

这是因为卷积算法的核心步骤是乘法和加法,而乘法和加法在数学中是一种线性变换。再多的乘法和加法融合起来最终还是线性的。

也就是说,如果一个卷积层后面紧跟着另一个卷积,那么两个卷积的作用和一个卷积实现的作用是类似的。

为了将两个卷积区分开,需要在卷积后面添加一个具有非线性特性的算法,使两个卷积连接起来并不能等价于一个卷积。

激活函数的另一个重要作用就是完成卷积输出的激活,将部分神经元激活,将部分神经元关闭。

最大池化和全局平均池化

池化层的作用是为了减少运算量,同时保留特征图中的关键特征。

加法

如上节介绍的那样,残差结构是增加了一个高速公路,最终的输出结果是F(x) + x, 这里的加法就是完成残差结构的输出 F(X) 和原始输入 X 的相加。

全连接

在 resnet50 神经网络的最后,还有一个全连接层。

很多模型或文章中也会称其为 Linear 层(线性层)或者FC层。它的作用是将神经网络学到的特征进一步融合,并且将特征映射到样本空间。也就是说,全连接的输出几乎可以与样本一一对应上。

在全连接的后面,有时还会跟有一个 softmax 层,用来完成一个多分类概率的输出。

softmax 并不改变全连接层输出的结果的相对大小,但是会让输出结果大的更大,小的更小,使得输出结果的top1或top5(最有可能的1个分类或者最有可能的前5个分类)更加明显。

好了,关于 Resnet 的介绍就到这里,接下来我们将重点拆解里面的各个算法将其原理,希望你跟上学习的步伐。

相关推荐
Allen2000024 分钟前
wow-agent---task2使用llama-index创建Agent
人工智能·llama
BoostingIsm29 分钟前
【环境安装】安装LLaMA-Factory
人工智能·深度学习
不去幼儿园1 小时前
【博客之星】2024年度个人成长、强化学习算法领域总结
人工智能·python·算法·机器学习·强化学习·个人总结
程序猿阿伟1 小时前
《AI与鸿蒙Next:建筑设计可视化的革新力量》
人工智能·华为·harmonyos
微学AI2 小时前
GPU算力平台|在GPU算力平台部署虚拟服装试穿工具OOTDiffusion的教程
人工智能·gpu算力·服装试穿
汪子熙3 小时前
为什么 BERT 仅使用 Transformer 的编码器部分,而不使用解码器部分?
人工智能
AI服务老曹4 小时前
满足不同场景的需求的智慧物流开源了
人工智能·开源·自动化·能源
程序猿阿伟4 小时前
《开源与合作:驱动鸿蒙Next系统中人工智能技术创新发展的双引擎》
人工智能·开源·harmonyos
pchmi4 小时前
C# OpenCV机器视觉:常用滤波算法
人工智能·opencv·c#·机器视觉·中值滤波