首页 / 💻 技术交流 / 深度学习中的正则化方法
💻 技术交流 📊 投票帖

深度学习中的正则化方法

📊 参与投票(共 1 票)
早停法保留能使代价最低的参数 1 票 · 100%
早停法保留最后一次训练得到的参数 0 票 · 0%
对抗训练让模型学习它容易出错的样本 0 票 · 0%
对抗训练同时运行两个模型,优胜劣汰 0 票 · 0%
Dropout 近似模型集成 0 票 · 0%
Dropout 丢弃部分样本 0 票 · 0%
Dropout 是一种参数绑定方法 0 票 · 0%
正切传播使用正切函数 0 票 · 0%
正切传播假设数据处于低维流形 0 票 · 0%

正则化

目的:防止模型过拟合,提升泛化能力。

参数范数惩罚

J~(θ;X,y)=J(X,y)+αΩ(θ)

神经网络中,一般只对权重而不对偏置做惩罚。

L2 正则化:Ω(w,b)=12w2

L1 正则化:Ω(w,b)=w1=iwi。具有稀疏性,到最优值附近时部分元素会变为 0。

需要最小化的是 J~(),计算测试\训练\验证误差时只计算 J() 就行。

数据增强

对数据做一些变换(旋转、平移、缩放、加噪声),在不改变类别(比如对于数字识别,数字 6 旋转半圈变成 9,这样改变了类别)的基础上制造出更多样本。

多任务学习

神经网络前几层通用,后面一个任务对应后面的隐藏层和输出层。

早停

有时候模型会过拟合,导致 loss 曲线先下降后升高。早停策略在发现验证集 loss 升高达到特定次数后停止训练,保留 loss 最低的参数。

可以用上述的算法训练样本,获得最佳的训练步数,再去训练样本(此时可以不需要验证集)。

或者是用该算法获得最佳的代价函数值和参数,然后参数不变,在所有数据上训练再次达到该值。

参数绑定与参数共享

如果有 A、B 两个模型,我们认为输入输出比较相似,那么参数也应该是相似的,我们可以构造正则化函数来利用这个信息,即 Ω(w(A),w(b))=w(A)w(b)2

我们还可以强迫某些参数相等,这样能够减小训练的参数数量,这种方法就叫做参数绑定。

卷积神经网络就是一种参数绑定的体现,由于我们知道图片内容有平移不变性,图像的每个区域就都共用相同的一组参数来计算。

稀疏表示

情况一般分为参数稀疏和表示的稀疏。

参数稀疏可以通过 L1 正则化实现。

表示指的是神经网络一层提取出的特征,如全连接层的输出 h、卷积层的特征图。

对于全连接层,通过 L1 范数正则化使 h 更稀疏:Ω(h)=h1

模型集成

对不同架构模型的输出取平均值得到最终输出。

Dropout

对神经网络层的输入向量随机置零。

Dropout 可以认为是模型集成的一种近似。

对抗训练

根据样本 x 生成另一个样本 x,使得分类(大概率)不变,但是尽可能让模型分类出错。

比如 FGSM 攻击,前提是激活函数是分段线性的(ReLU、Leaky ReLU 这些),或者说代价函数是局部线性的。

既然局部线性,那么给出一个足够小的值 ϵ,令 μϵ,泰勒展开,有:

J(θ;x+μ)=J(θ;x)+μxJ(θ;x)

为了让模型尽可能出错,需要最大化加号后面那一项,此时:

μ=ϵsign(xJ(θ;x))

显然 x=x+μ

这种方法也可以作为一种半监督学习的方法。

正切传播

为简化问题,假设模型用来解决二分类问题,输出为标量 f(x)

我们需要获得流形在 x 附近的所有切向量 v(i)(更严谨的说法是构成该点处切空间的所有基向量),可以通过训练自编码器或分析数据分布等方法获得。

我们想让 f 梯度和切空间尽可能正交,得到正切传播的正则项:

Ω(f)=i(xf(x)v(i))2

对于多分类问题,f 一般输出 logits 向量,此时可以对所有维度计算梯度。假设输出向量维度为 C

Ω(f)=ic=1C(xfc(x)v(i))2=i(Jf(x)v(i)F)2

等于雅可比矩阵与切向量的矩阵乘积的 Frobenius 范数的平方。

🏆 打赏榜(共 1 人)
G
Gastrelldano 10

💬 全部评论 0

共 0 条 · 按楼层排序
登录 注册 后即可发表评论
💬
还没有评论,快来抢沙发吧