ResNet18的基本原理及TensorFlow 2.0实现

本文介绍了ResNet18的基本原理,包括其为解决深度神经网络中梯度消失问题而设计的Basic Block和ResBlock。通过在卷积层间添加短路,ResNet18能有效训练深层网络。文中还详细阐述了网络结构,并提供了使用TensorFlow 2.0搭建ResNet18的步骤。
摘要由CSDN通过智能技术生成

注:阅读本博客之前,你需要先掌握:全连接神经网络,卷积神经网络的基本原理。

背景介绍

随着LeNet-5,AlexNet,VGG等神经网络结构的出现,卷积神经网络逐渐从单纯的只拥有卷积操作和下采样的神经网络发展为具有max pooling、dropout以及非线性函数的神经网络。在网络结构变得不断复杂的同时,人们发现,神经网络的效率并没有预期得到提升,反而容易出现梯度消失等情况,因而导致loss难以减少等现象。

对于出现梯度消失的原因,大家可以参考这篇:
https://blog.csdn.net/jasonleesjtu/article/details/89185185

ResNet通过在两个卷积层之间添加短路(shortcut)的方式,有效地解决了在神经网络层数不断增加的情况下难以训练的问题。

网络结构

1、Basic Block

在这里插入图片描述
上图所示就是一个Basic Block。其中,weight layer可看成是卷积层,F(x)是x通过两个卷积层之后所学习到的。该结构的特点,就是在两个卷积层外面添加了一条shortcut,使得x经过两个卷积层之后可以以x+F(x)的形式输出。

那么,为什么这种结构可以有效地解决因网络层数增加而导致的模型难以训练的问题呢?我们以解决梯度消失为例:
             y l y_l yl=h( x l x_l xl)+F( x l x_l xl, w l w_l wl)
             x l + 1 x_{l+1} xl+1=f( y l y_l yl)
其中: x l x_l xl x l + 1 x_{l+1} xl+1分别是这个Basic Block的输入与输出项;h( x l x_l xl)= x l x_l xl,即identity,ResNet的核心;F( x l x_l xl, w l w_l w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值