正则化
目的:防止模型过拟合,提升泛化能力。
参数范数惩罚
神经网络中,一般只对权重而不对偏置做惩罚。
正则化:。
正则化:。具有稀疏性,到最优值附近时部分元素会变为 0。
需要最小化的是 ,计算测试\训练\验证误差时只计算 就行。
数据增强
对数据做一些变换(旋转、平移、缩放、加噪声),在不改变类别(比如对于数字识别,数字 6 旋转半圈变成 9,这样改变了类别)的基础上制造出更多样本。
多任务学习
神经网络前几层通用,后面一个任务对应后面的隐藏层和输出层。
早停
有时候模型会过拟合,导致 loss 曲线先下降后升高。早停策略在发现验证集 loss 升高达到特定次数后停止训练,保留 loss 最低的参数。
可以用上述的算法训练样本,获得最佳的训练步数,再去训练样本(此时可以不需要验证集)。
或者是用该算法获得最佳的代价函数值和参数,然后参数不变,在所有数据上训练再次达到该值。
参数绑定与参数共享
如果有 A、B 两个模型,我们认为输入输出比较相似,那么参数也应该是相似的,我们可以构造正则化函数来利用这个信息,即 。
我们还可以强迫某些参数相等,这样能够减小训练的参数数量,这种方法就叫做参数绑定。
卷积神经网络就是一种参数绑定的体现,由于我们知道图片内容有平移不变性,图像的每个区域就都共用相同的一组参数来计算。
稀疏表示
情况一般分为参数稀疏和表示的稀疏。
参数稀疏可以通过 正则化实现。
表示指的是神经网络一层提取出的特征,如全连接层的输出 、卷积层的特征图。
对于全连接层,通过 范数正则化使 更稀疏:。
模型集成
对不同架构模型的输出取平均值得到最终输出。
Dropout
对神经网络层的输入向量随机置零。
Dropout 可以认为是模型集成的一种近似。
对抗训练
根据样本 生成另一个样本 ,使得分类(大概率)不变,但是尽可能让模型分类出错。
比如 FGSM 攻击,前提是激活函数是分段线性的(ReLU、Leaky ReLU 这些),或者说代价函数是局部线性的。
既然局部线性,那么给出一个足够小的值 ,令 ,泰勒展开,有:
为了让模型尽可能出错,需要最大化加号后面那一项,此时:
显然 。
这种方法也可以作为一种半监督学习的方法。
正切传播
为简化问题,假设模型用来解决二分类问题,输出为标量 。
我们需要获得流形在 附近的所有切向量 (更严谨的说法是构成该点处切空间的所有基向量),可以通过训练自编码器或分析数据分布等方法获得。
我们想让 梯度和切空间尽可能正交,得到正切传播的正则项:
对于多分类问题, 一般输出 logits 向量,此时可以对所有维度计算梯度。假设输出向量维度为 :
等于雅可比矩阵与切向量的矩阵乘积的 Frobenius 范数的平方。