批量归一化和残差网络 凸优化和梯度下降

目录
批量归一化和残差网络
批量归一化(BatchNormalization)
1.对全连接层做批量归一化
2.对卷积层做批量归⼀化
3.预测时的批量归⼀化
残差网络(ResNet)
残差块(Residual Block)
ResNet模型
稠密连接网络(DenseNet)
DenseNet模型
凸优化
梯度下降
随机梯度下降参数更新
动态学习率
小批量随机梯度下降
批量归一化和残差网络
批量归一化(BatchNormalization)
对输入的标准化(浅层模型)
处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。
标准化处理输入数据使各个特征的分布相近
批量归一化(深度模型)
利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定

1.对全连接层做批量归一化
位置:全连接层中的仿射变换和激活函数之间。
全连接:
x=Wu+boutput=ϕ(x) \boldsymbol{x} = \boldsymbol{W\boldsymbol{u} + \boldsymbol{b}} \output =\phi(\boldsymbol{x})
x=Wu+b
output=ϕ(x)

批量归一化: 对中间值x xx批量归一化为在batch_size上均值为0方差为1.
output=ϕ(BN(x)) output=\phi(\text{BN}(\boldsymbol{x}))
output=ϕ(BN(x))

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

μB←1m∑mi=1x(i), \boldsymbol{\mu}\mathcal{B} \leftarrow \frac{1}{m}\sum{i = 1}^{m} \boldsymbol{x}^{(i)},

σ2B←1m∑mi=1(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,
σ

xˆ(i)←x(i)−μBσ2B+ϵ√, \hat{\boldsymbol{x}}^{(i)} \leftarrow \frac{\boldsymbol{x}^{(i)} - \boldsymbol{\mu}\mathcal{B}}{\sqrt{\boldsymbol{\sigma}\mathcal{B}^2 + \epsilon}},
x
这⾥ϵ > 0是个很小的常数,保证分母大于0

y(i)←γ⊙xˆ(i)+β. {\boldsymbol{y}}^{(i)} \leftarrow \boldsymbol{\gamma} \odot\hat{\boldsymbol{x}}^{(i)} + \boldsymbol{\beta}.
y

引入可学习参数:拉伸参数γ和偏移参数β。若γ=σ2B+ϵ−−−−−−√ \boldsymbol{\gamma} = \sqrt{\boldsymbol{\sigma}_\mathcal{B}^2 + \epsilon}γ=


和β=μB \boldsymbol{\beta} = \boldsymbol{\mu}_\mathcal{B}β=μ
B

,批量归一化无效。

2.对卷积层做批量归⼀化
位置:卷积计算之后、应⽤激活函数之前。
如果卷积计算输出多个通道,我们需要对这些通道的输出分别做批量归一化,且每个通道都拥有独立的拉伸和偏移参数。
计算:对单通道,batchsize=m,卷积计算输出=pxq
对该通道中m×p×q个元素同时做批量归一化,使用相同的均值和方差。

3.预测时的批量归⼀化
训练:以batch为单位,对每个batch计算均值和方差。
预测:用移动平均估算整个训练数据集的样本均值和方差。

def batch_norm(is_training, X, gamma, beta, moving_mean, moving_var, eps, momentum):
# 判断当前模式是训练模式还是预测模式
if not is_training:
# 如果是在预测模式下,直接使用传入的移动平均所得的均值和方差
X_hat = (X - moving_mean) / torch.sqrt(moving_var + eps)
else:
assert len(X.shape) in (2, 4)
if len(X.shape) == 2:
# 使用全连接层的情况,计算特征维上的均值和方差
mean 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值