残差网络

神经网络的学习主要蕴含在权重和阈值中,多层网络使用上面简单感知机的权重调整规则显然不够用了,BP神经网络算法即误差逆传播算法(error BackPropagation)正是为学习多层前馈神经网络而设计,BP神经网络算法是迄今为止最成功的的神经网络学习算法。
在神经网络的训练中,理论上是网络深度加深,理论模上可以取得更好的效果。但实验发现,随着网络深度加深,神经网络中存在退化问题
这种退化问题和过拟合不同,过拟合表现的是训练误差小而测试效果误差大,而现在是训练误差和测试误差都大(需要在巨大的参数空间中执行优化,随意增加层数会导致更大的训练误差)

RestNet

RestNet中最重要的就是残差学习单元

深度学习对于网络深度遇到的主要问题是梯度消失和梯度爆炸,传统对应的解决方案则是数据的初始化(normlized initializatiton)和(batch normlization)正则化,但是这样虽然解决了梯度的问题,深度加深了,却带来了另外的问题,就是网络性能的退化问题,深度加深了,错误率却上升了,而残差用来设计解决退化问题,其同时也解决了梯度问题,更使得网络的性能也提升了。
残差网络的优点:
很容易训练,值得是前向和反向都可以保证,线性使得网络加深,可以达到1000层精度提升可以被移植到其他问题
残差元的主要设计有两个,快捷连接和恒等映射,快捷连接使得残差变得可能,而恒等映射使得网络变深,而恒等映射主要有两个:快捷连接为恒等映射和相加后的激活函数。残差映射也更容易优化。

  • 恒等残差块——The identity block是ResNets中使用的标准块,对应于输入激活与输出激活具有相同维度

普通网络和残差网络的差别:
对于残差元来说,前向过程是线性的,而且后面的输入等于输入加上每一次的残差元的结果,而普通的网络,则为每一层卷积的连乘运算;
残差网络的第一大特点,反向更新解决梯度消失的问题。残差网络在反向传播的时候,则只求链式法则前面的部分,即从第L层的梯度可以基本上保持稳定的传递到第l层反向过程。
BN的主要思路是对每次前向传播的过程中对数据进行正态分布的归一化调整

残差网络_第1张图片

你可能感兴趣的:(卷积神经网络)