一.批量归一化
1.1批量归一化
1.1.1 在浅层模型中
处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。
标准化处理输入数据使各个特征的分布相近
1.1.2 在深层模型中
利用小批量上的均值和标准差,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出的数值更稳定。
1.2 归一化
1.2.1 全连接层的归一化**
位置:全连接层中的仿射变换和激活函数之间。
1.2.2 对卷积层做批量归⼀化**
位置:卷积计算之后、应⽤激活函数之前。
如果卷积计算输出多个通道,我们需要对这些通道的输出分别做批量归一化,且每个通道都拥有独立的拉伸和偏移参数。 计算:对单通道,batchsize=m,卷积计算输出=pxq 对该通道中m×p×q个元素同时做批量归一化,使用相同的均值和方差。
1.2.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 = X.mean(dim=0)
var = ((X - mean) ** 2).mean(dim=0)
else:
# 使用二维卷积层的情况,计算通道维上(axis=1)的均值和方差。这里我们需要保持
# X的形状以便后面可以做广播运算
mean = X.mean(dim=0, keepdim=True).mean(dim=2, keepdim=True).mean(dim=3, keepdim=True)
var = ((X - mean) ** 2).mean(dim=0, keepdim=True).mean(dim=2, keepdim=True).mean(dim=3, keepdim=True)
# 训练模式下用当前的均值和方差做标准化
X_hat = (X - mean) / torch.sqrt(var + eps)
# 更新移动平均的均值和方差
moving_mean = momentum * moving_mean + (1.0 - momentum) * mean
moving_var = momentum * moving_var + (1.0 - momentum) * var
Y = gamma * X_hat + beta # 拉伸和偏移
1.3 残差网络(ResNet)**
1.3.1残差块(Residual Block)**
由于随着卷积网络的深度越来越深.同时带来的问题也越来越多.
1.随着深度的增加训练的时间也增加
2.所需要的算力也在不断的提高
3.而且深度越深其实际的准确度 没有大幅的提升.反而还有降低的现象
基于上述现象.提出残差网络
设置这个卷积网络 理想映射为H(X),而这个理想映射由 线性映射和非线性映射组成.假设这个非线性映射为F(X).则F(X)=H(x)-x;则我们可得这个起始映射为F(X)+x
而其中成功原因有两点,第一,是它的shortcut connection增加了它的信息流动,第二,就是它认为对于一个堆叠的非线性层,那么它最优的情况就是让它成为一个恒等映射,但是shortcut connection的存在恰好使得它能够更加容易的变成一个Identity Mapping。
恒等映射:
左边:f(x)=x
右边:f(x)-x=0 (易于捕捉恒等映射的细微波动)
1.4 稠密连接网络(DenseNet)**
DenseNet的提出是由前面大量的研究工作表明如果靠近输入和输出的层数中间越短的连接,其最终网络模型的表现越好.
于是提出了每层都连接的其他层.于是假设L层有L个连接.于是这个网络就有L(L-1)/2的直接连接…
二.凸优化
2.1 优化与估计
优化方法目标:训练集损失函数值
深度学习目标:测试集损失函数值(泛化性)
2,2 鞍点
鞍点是对所有自变量一阶偏导数都为0,且Hessian矩阵特征值有正有负的点
2.3 Jensen 不等式
性质: 1.无局部极小值 2.与凸集的关系 3.二阶条件
三 梯度下降
3.1 一维梯度下降
证明:沿梯度反方向移动自变量可以减小函数值
3.2 多维梯度下降
3.3 牛顿法
当要求解 f(θ)=0时,如果 f可导,那么可以通过迭代公式