《动手学——批量归一化和残差网络》笔记

本文详细介绍了批量归一化在深度学习中的应用,包括全连接层和卷积层的批量归一化实现,以及在预测阶段的处理方式。此外,还探讨了残差网络的基本原理,如残差块的设计,以及如何解决深度网络的梯度消失问题。同时,简要提及了DenseNet的稠密块和过渡层,强调了它们在控制模型复杂度中的作用。
摘要由CSDN通过智能技术生成

批量归一化(BatchNormalization)

ps 批量归一化本质上是对数据的标准化处理,输入标准化一般用于浅层模型,但是对于深层网络,输入的标准化不够,因为随着模型的迭代更新,依然容易造成靠近输出层,它的数据是剧烈变化的。所以批量归一化的出现是应对深度模型的。

对输入的标准化(浅层模型)

处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。
标准化处理输入数据使各个特征的分布相近

批量归一化(深度模型)

利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。

1.对全连接层做批量归一化

(形状 m×d,对m个元素做批量归一化)
位置:全连接层中的仿射变换和激活函数之间。
全连接:
x = W u + b o u t p u t = ϕ ( x ) \boldsymbol{x} = \boldsymbol{W\boldsymbol{u} + \boldsymbol{b}} \\ output =\phi(\boldsymbol{x}) x=Wu+boutput=ϕ(x)

输入是u,大小为batchsize * 输入神经元个数。经过仿射变换后得到X,X大小为batchsize * 输出神经元个数,经过激活函数得到的output形状一样。

将批量归一化放在仿射变换之后,激活函数之前。

批量归一化:
o u t p u t = ϕ ( BN ( x ) ) output=\phi(\text{BN}(\boldsymbol{x})) output=ϕ(BN(x))

y ( i ) = BN ( x ( i ) ) \boldsymbol{y}^{(i)} = \text{BN}(\boldsymbol{x}^{(i)}) y(i)=BN(x(i))

μ B ← 1 m ∑ i = 1 m x ( i ) , \boldsymbol{\mu}_\mathcal{B} \leftarrow \frac{1}{m}\sum_{i = 1}^{m} \boldsymbol{x}^{(i)}, μBm1i=1mx(i),
σ B 2 ← 1 m ∑ i = 1 m ( x ( i ) − μ B ) 2 , \boldsymbol{\sigma}_\mathcal{B}^2 \leftarrow \frac{1}{m} \sum_{i=1}^{m}(\boldsymbol{x}^{(i)} - \boldsymbol{\mu}_\mathcal{B})^2, σB2m1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值