1. L1与L2正则化
L2正则化
这里的λ是正则化参数,它是一个需要优化的超参数。L2正则化又称为权重衰减,因为其导致权重趋向于0(但不全是0)
tf
L1正则化
这里,我们惩罚权重矩阵的绝对值。其中,λ 为正则化参数,是超参数,不同于L2,权重值可能被减少到0.因此,L1对于压缩模型很有用。其它情况下,一般优先选择L2正则化。
tf
L1L2正则化
tf
示例:
# 导入相应的工具包
2. Dropout正则化
dropout是在深度学习领域最常用的正则化技术。Dropout的原理很简单:神经网络在每个迭代过程中,随机选择某些节点,并且删除前向和后向连接。因此,每个迭代过程都会有不同的节点组合,从而导致不同的输出,这可以看成机器学习中的集成方法(ensemble technique)。集成模型一般优于单一模型,因为它们可以捕获更多的随机性。相似地,dropout使得神经网络模型优于正常的模型。
tf
参数:
rate: 每一个神经元被丢弃的概率
# 导入相应的库
3. 提前停止
提前停止(early stopping)是将一部分训练集作为验证集(validation set)。 当验证集的性能越来越差时或者性能不再提升,则立即停止对该模型的训练。 这被称为提前停止。
tf
上面,monitor参数表示监测量,这里val_loss表示验证集损失。而patience参数则表示模型在训练的过程中,在验证集上的性能,在连续5个epochs后没有提升时,会停止训练。
# 导入相应的工具包
4. 批标准化
批标准化(BN层, Batch Normalization)是2015年提出的一种方法,在进行深度网络训练时,大多会采取这种算法,与全连接层一样,BN层也是属于网络中的一层。
BN层是针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元
首先我们对某一批次的数据的神经元的输出进行标准化:
然后再使用变换重构,引入了可学习参数
# 直接将其放入构建神经网络的结构中即可
![b52140a02d37cc86335c6aff95e71a8a.png](https://i-blog.csdnimg.cn/blog_migrate/ed0435520adcf2c1b9a1e099aea28fc8.jpeg)