打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
清华大学出品:罚梯度范数提高深度学习模型泛化性

1 引言

神经网络结构简单,训练样本量不足,则会导致训练出来的模型分类精度不高;神经网络结构复杂,训练样本量过大,则又会导致模型过拟合,所以如何训练神经网络提高模型的泛化性是人工智能领域一个非常核心的问题。

最近读到了一篇与该问题相关的文章,论文中作者在训练过程中通过在损失函数中增加正则化项梯度范数的约束从而来提高深度学习模型的泛化性。作者从原理和实验两方面分别对论文中的方法进行了详细地阐述和验证。连续是对深度学习进行理论分析中非常重要且常见的数学工具,该论文就是以神经网络损失函数连续为出发点进行数学推导。

为了方便读者能够更流畅地欣赏论文作者漂亮的数学证明思路和过程,本文对于论文中没有展开的数学证明细节进行了补充。

论文链接:https://arxiv.org/abs/2202.03599

2 Lipschiz 连续

给定一个训练数据集服从分布,一个带有参数的神经网络,损失函数为


当需要对损失函数中的梯度范数进行约束时,则有如下损失函数


其中表示范数,为梯度惩罚系数。一般情况下,损失函数引入梯度的正则化项会使得其在优化过程中在局部有更小的常数,常数越小,就意味着损失函数就越平滑,平损失函数平滑区域易于损失函数优化权重参数。进而会使得训练出来的深度学习模型有更好的泛化性。

深度学习中一个非常重要而且常见的概念就是连续。给定一个空间,对于函数,如果存在一个常数,对于满足以下条件则称连续


其中表示的是常数。如果对于参数空间,如果有一个邻域,且连续,则称是局部连续。直观来看,常数描述的是输出关于输入变化速率的一个上界。对于一个小的参数,在邻域中给定任意两个点,它们输出的改变被限制在一个小的范围里。

根据微分中值定理,给定一个最小值点,对于任意点,则有如下公式成立



其中,根据不等式可知


时,相应的常数接近。因此可以通过减小的数值使得模型能够更平滑的收敛。 


3 论文方法

对带有梯度范数约束的损失函数求梯度可得


在本文中,作者令,此时则有如下推导过程


将该结果带入到梯度范数约束的损失函数中,则有以下公式


可以发现,以上公式中涉及到矩阵的计算,在深度学习中,计算参数的矩阵会带来高昂的计算成本,所以需要用到一些近似的方法。作者将损失函数进行泰勒展开,其中令,则有


进而则有


其中令表示一个小的数值,表示一个向量,带入上式则有


如果令,则有


综上所述,经过整理可得


其中,称为平衡系数,取值范围为。作者为了避免在近似计算梯度时,以上公式中的第二项链式法则求梯度需要计算矩阵,做了以下的近似则有


以下算法流程图对以上论文中损失函数的原理进行



4 实验结果


下表表示的是在这两个数据集中不同网络结构在标准训练,和本文的梯度约束这三种训练方法之间的测试错误率的比较。可以很直观的发现,本文提出的方法在绝大多数情况下测试错误率都是最低的,这也从侧面验证了经过论文方法的训练可以提高模型的泛化性。


论文作者也在当前非常热门的网络结构进行了实验。下表表示的是在这两个数据集中不同网络结构在标准训练,和本文的梯度约束这三种训练方法之间的测试错误率的比较。

同理也可以发现本文提出的方法在所有情况下测试错误率都是最低的,这说明本文的方法也可以提到模型的泛化性。

END

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深度学习之卷积神经网络经典模型介绍
深度学习 理论基础二 梯度下降法和反向传播
特斯拉AI主管Karpathy新作:用当前深度学习技术复现Lecun33年前手写数字识别论文
多任务学习漫谈:以损失之名
如何优雅地从四个方面加深对深度学习的理解
烧脑!CMU、北大等合著论文真的找到了神经网络的全局最小值
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服