深度学习中的正则化技术 - 作为约束的范数惩罚篇

序言

深度学习作为机器学习领域的前沿技术,其核心目标在于通过构建复杂的神经网络模型来学习和理解数据的内在规律。然而,随着模型复杂度的增加,过拟合问题日益凸显,即模型在训练数据上表现优异,但在未见过的数据上泛化能力较差。为了有效缓解这一问题,正则化技术应运而生,其中范数惩罚作为一种重要的约束手段,在深度学习中发挥着关键作用。

作为约束的范数惩罚

  • 考虑通过参数范数正则化的代价函数: J ~ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) —公式1 \tilde{J}(\boldsymbol{\theta};\boldsymbol{X},\boldsymbol{y})=J(\boldsymbol{\theta};\boldsymbol{X},\boldsymbol{y})+\alpha\Omega(\boldsymbol{\theta})\quad\textbf{\footnotesize{---公式1}} J~(θ;X,y)=J(θ;X,y)+αΩ(θ)公式1
  • 回顾应用数学与机器学习基础 - 数值计算篇,我们可以构造一个广义 Lagrange \text{Lagrange} Lagrange函数来最小化受约束的函数,即在原始目标函数加上一系列惩罚项
    • 每个惩罚项是一个系数之间的乘积,称为 Karush-Kuhn-Tucker \text{Karush-Kuhn-Tucker} Karush-Kuhn-Tucker(KKT)乘子,以及一个表示约束是否满足的函数。
    • 如果我们想约束 Ω ( θ ) \Omega(\boldsymbol{\theta}) Ω(θ)小于某个常数 k k k,我们可以构建广义 Lagrange \text{Lagrange} Lagrange函数:
      L ( θ , α ; X , y ) = J ( θ ; X , y ) + α ( Ω ( θ ) − k ) —公式2 \mathcal{L}(\boldsymbol{\theta},\alpha;\boldsymbol{X},\boldsymbol{y})=J(\boldsymbol{\theta};\boldsymbol{X},\boldsymbol{y})+\alpha(\Omega(\boldsymbol{\theta})-k)\quad\textbf{\footnotesize{---公式2}} L(θ,α;X,y)=J(θ;X,y)+α(Ω(θ)k)公式2
    • 这个约束问题的解由下式给出: θ ∗ = arg min ⁡ θ max ⁡ α , α > 0 L ( θ , α ) —公式3 \boldsymbol{\theta}^\ast=\argmin\limits_{\boldsymbol{\theta}}\max\limits_{\alpha,\alpha>0}\mathcal{L}(\boldsymbol{\theta},\alpha)\quad\textbf{\footnotesize{---公式3}} θ=θargminα,α>0maxL(θ,α)公式3
    • 如应用数学与机器学习基础 - 数值计算篇中描述,解决这个问题需要同时改变 θ \boldsymbol{\theta} θ α \alpha α
    • 在数值计算之线性最小二乘实例篇给出了一个带 L 2 L^2 L2约束的线性回归实例。
    • 许多不同的优化过程是可能的,有些可能会利用梯度下降而其他可能使用梯度为 0 0 0的解析解,
      • 但在所有程序中 α \alpha α Ω ( θ ) > k \Omega(\boldsymbol{\theta})>k Ω(θ)>k时必须增加
      • Ω ( θ ) < k \Omega(\boldsymbol{\theta})<k Ω(θ)<k时必须减小。
      • 所有正的 α \alpha α鼓励 Ω ( θ ) \Omega(\boldsymbol{\theta}) Ω(θ)收缩。
      • 最佳值 α ∗ \alpha^\ast α也将鼓励 Ω ( θ ) \Omega(\boldsymbol{\theta}) Ω(θ)收缩,但不会如 Ω ( θ ) \Omega(\boldsymbol{\theta}) Ω(θ)小于 k k k时那么强烈。
    • 为了洞察约束的影响,我们可以固定 α ∗ \alpha^\ast α,把这个问题看成只是跟 θ \boldsymbol{\theta} θ有关的函数: θ ∗ = arg min ⁡ θ L ( θ , α ∗ ) = arg min ⁡ θ J ( θ ; X , y ) + α ∗ Ω ( θ ) —公式4 \boldsymbol{\theta}^\ast=\argmin\limits_{\boldsymbol{\theta}}\mathcal{L}(\boldsymbol{\theta},\alpha^\ast)=\argmin\limits_{\boldsymbol{\theta}} J(\boldsymbol{\theta};\boldsymbol{X},\boldsymbol{y})+\alpha^\ast\Omega(\boldsymbol{\theta})\quad\textbf{\footnotesize{---公式4}} θ=θargminL(θ,α)=θargminJ(θ;X,y)+αΩ(θ)公式4
    • 这和最小化 J ~ \tilde{J} J~的正则化训练问题是完全一样的。因此,我们可以把参数范数惩罚看作对权重强加的约束。
      • 如果 Ω \Omega Ω L 2 L^2 L2范数,那么权重就是被约束在一个 L 2 L^2 L2球中。
      • 如果 Ω \Omega Ω L 1 L^1 L1范数,那么权重被约束在一个 L 1 L^1 L1范数限制的区域内。
      • 通常我们不知道权重衰减系数 α ∗ \alpha^\ast α约束的区域大小,因为 α ∗ \alpha^\ast α的值不直接告诉我们 k k k的值。原则上我们可以解得 k k k,但 k k k α ∗ \alpha^\ast α之间的关系取决于 J J J的形式。
      • 虽然我们不知道约束区域的确切大小,但我们可以通过增加或者减小 α \alpha α来大致扩大或收缩约束区域。
      • 较大的 α \alpha α,将导致一个较小的约束区域。
      • 较小的 α \alpha α,将导致一个较大的约束区域。
    • 有时候,我们希望使用显式的限制,而不是惩罚。如基于梯度的优化方法所描述,我们能修改下降算法(如随机梯度下降算法),使其先计算 J ( θ ) J(\boldsymbol{\theta}) J(θ)的下降步,然后将 θ \boldsymbol{\theta} θ投影到满足 Ω ( θ ) < k \Omega(\boldsymbol{\theta})<k Ω(θ)<k的最近点。如果我们知道什么样的 k k k是合适的,而不想花时间寻找对应于此 k k k处的 α \alpha α值,这会非常有用。
    • 另一个使用显式约束和重投影而不是使用惩罚强加约束的原因是惩罚可能导致非凸优化过程而陷入局部极小(对应于小的 θ \boldsymbol{\theta} θ)。
    • 当训练神经网络时,这通常表现为训练带有几个“死亡单元”的神经网络。
      • 这些单元不会对网络学到的函数的行为有太大贡献,因为进入或离开他们的权重都非常小。
      • 当使用权重范数的惩罚训练时,即使可能通过增加权重以显著减少 J J J,这些配置也可能是局部最优的。
      • 因为重投影实现的显式约束不鼓励权重接近原点,所以在这些情况下工作得更好。
      • 通过重投影实现的显式约束只在权重变大并试图离开限制区域时产生作用。
    • 最后,因为重投影的显式约束还对优化过程增加了一定的稳定性,所以这是另一个好处。
      • 当使用较高的学习率时,很可能进入正反馈,即大的权重诱导大梯度,然后诱发权重的大更新。
      • 如果这些更新持续增加权重的大小, θ \boldsymbol{\theta} θ就会迅速增大,直到离原点很远而发生溢出。
      • 重投影的显式约束可以防止这种反馈环引起的权重无限制的持续增加。
      • Hinton et al. (2012b) 建议结合使用约束和高学习速率,这样能更快地探索参数空间,并保持一定的稳定性。
    • Hinton et al. (2012b) 尤其推荐由Srebro and Shraibman (2005) 引入的策略:约束神经网络层的权重矩阵每列的范数,而不是限制整个权重矩阵的 Frobenius \text{Frobenius} Frobenius范数。
      • 分别限制每一列的范数可以防止某一隐藏单元有非常大的权重。
      • 如果我们将此约束转换成 Lagrange \text{Lagrange} Lagrange函数中的一个惩罚,这将与 L2 权重衰减类似但每个隐藏单元的权重都具有单独的KKT乘子。
      • 每个KKT乘子分别会被动态更新,以使每个隐藏单元服从约束。
      • 在实践中,列范数的限制总是通过重投影的显式约束实现

总结

  • 范数惩罚作为深度学习中的一种正则化方法,通过向目标函数中添加额外的惩罚项来限制模型参数的规模,进而控制模型的复杂度,提高模型的泛化能力。
  • 具体而言,L1范数和L2范数是两种常用的范数惩罚方式。L1范数倾向于产生稀疏的权重矩阵,有助于特征选择;而L2范数则通过平滑权重,减少模型的过拟合风险。
  • 此外,约束范数惩罚还通过构造拉格朗日函数,将原始问题转化为无约束优化问题,使得求解过程更加高效。
  • 总之,范数惩罚作为深度学习中的一种重要约束手段,对于提升模型的泛化能力、减少过拟合具有显著效果,是深度学习研究和应用中不可或缺的一部分。

往期重要内容回顾

应用数学与机器学习基础 - 数值计算篇
应用数学与机器学习基础 - 数值计算之线性最小二乘实例篇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS content 计数器

CSS content 计数器 CSS 计数器通过一个变量来设置&#xff0c;根据规则递增变量。 使用计数器自动编号 CSS 计数器根据规则来递增变量。 CSS 计数器使用到以下几个属性&#xff1a; counter-reset - 创建或者重置计数器&#xff0c;给计算器命名。注意声明计算器不能在自身…

孕产妇(产科)管理信息系统源码 三甲医院产科电子病历系统成品源代码

孕产妇&#xff08;产科&#xff09;管理信息系统源码 三甲医院产科电子病历系统成品源代码 医院智慧孕产是一种通过信息化手段,实现孕产期宣教、健康服务的院外延伸,对孕产妇健康管理具有重要意义,是医院智慧服务水平和能力的体现。实行涵盖婚前检查、孕期保健、产后康复的一…

google Guava组件实现原理和Java使用场景【主要是本地缓存Cache】

Java Guava组件介绍 Guava是Google开发的一个Java核心库,旨在提供高质量、高效率的基本工具类和数据结构,以简化Java编程。它扩展了Java标准库,并提供了许多有用的功能,特别适用于处理集合、缓存、并发等方面的应用程序。以下是对Guava的详细介绍。 作用 Guava提供了丰富…

如何把harmonos项目修改为openharmony项目

一开始分不清harmonyos和openharmony&#xff0c;在harmonyos直接下载的开发软件&#xff0c;后面发现不对劲&#xff0c;打脑阔 首先你要安装对应版本的开发软件&#xff0c;鸿蒙开发是由harmonyos和openharmony官网两个的&#xff0c;找到对应的地方下载对应版本的开发软件&…

C#-反射

一、概念 反射&#xff08;Reflection&#xff09;在C#中是一种非常重要的特性&#xff0c;它为开发者提供了在运行时获取和操作关于类型、成员、属性、方法等的详细信息的能力。通过反射&#xff0c;开发者可以在程序运行期间动态地创建对象、调用方法、设置属性值以及进行其…

uniapp 请求封装

1.创建request.js文件 export default {config: {baseUrl: "http://192.168.1.1:0000", // 示例header: {Content-Type: application/json;charsetUTF-8// Content-Type: application/x-www-form-urlencoded, },data: {},method: "GET",dataType: "j…

【Java开发实训】day01

目录 1.Java开发步骤 2.目录的三个表达方法 3.Java的三种注释方法 4.文档注释的作用 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&…

不要卷模型,要卷应用:大数据领域的深度探讨

引言 在2024年世界人工智能大会上&#xff0c;百度创始人李彦宏提出了“不要卷模型&#xff0c;要卷应用”的观点&#xff0c;这一观点引发了业内的广泛讨论。作为一个在计算机大数据行业深耕多年的专家&#xff0c;我深感这一观点的深刻内涵。本文将从大数据领域的专业视角&a…

Qt QSettings 使用详解:跨平台的配置管理

文章目录 Qt QSettings 使用详解:跨平台的配置管理一、QSettings 概述1. QSettings 的基本使用二、不同平台上的实现1. Windows 平台注册表存储INI 文件存储2. Linux 平台3. macOS 平台三、QSettings 高级用法1. 使用组管理设置2. 检查和移除设置3. 枚举键四、总结Qt QSetting…

运维锅总详解数据一致性

本文首先对数据一致性进行简要说明&#xff0c;然后画图分析展示9种数据一致性协议的工作流程&#xff0c;最后给出实现这9种协议的例子。希望对您理解数据一致性有所帮助&#xff01; 一、数据一致性简介 数据一致性是数据库和分布式系统中的一个关键概念&#xff0c;它确保…

【Mac】Folder Icons for mac(文件夹个性化图标修改软件)软件介绍

软件介绍 Folder Icons for Mac 是一款专为 macOS 设计的应用程序&#xff0c;主要用于个性化和定制你的文件夹图标。以下是它的主要特点和使用方法&#xff1a; 主要特点&#xff1a; 个性化文件夹图标 Folder Icons for Mac 允许用户为 macOS 上的任何文件夹定制图标。你…

怎样优化 PostgreSQL 中对布尔类型数据的查询?

文章目录 一、索引的合理使用1. 常规 B-tree 索引2. 部分索引 二、查询编写技巧1. 避免不必要的类型转换2. 逻辑表达式的优化 三、表结构设计1. 避免过度细分的布尔列2. 规范化与反规范化 四、数据分布与分区1. 数据分布的考虑2. 表分区 五、数据库参数调整1. 相关配置参数2. 定…

融云入驻首个数字生态出海基地,加速构建数字经济出海创新生态

7 月 3 日&#xff0c;“2024 全球数字经济大会”重要专题论坛“2024 数字生态出海发展论坛”在北京国家会议中心举行。 论坛由全球数字经济大会组委会主办&#xff0c;北京市经济和信息化局、北京市政务服务和数据管理局、大兴区人民政府共同承办。来自阿联酋、日本、古巴、…

Chain-of-Verification Reduces Hallucination in Lagrge Language Models阅读笔记

来来来&#xff0c;继续读文章了&#xff0c;今天这个是meta的研究员们做的一个关于如何减少LLM得出幻觉信息的工作&#xff0c;23年底发表。文章链接&#xff1a;https://arxiv.org/abs/2309.11495 首先&#xff0c;这个工作所面向的LLM的问答任务&#xff0c;是list-based q…

静态网页基础知识

1、获取输入框的输入值 var x document.getElementById(userInput).value 赋值的话&#xff1a;document.getElementById(userInput).value 1 2、获取td的值、span的值等一个区域的值 var x document.getElementById(result).innerText 赋值&#xff1a;document.getEl…

动态粒子发射特效404网站HTML源码

源码介绍 动态粒子发射404网站HTML源码&#xff0c;粒子内容可以进行修改&#xff0c;默认是4&#xff0c;0数字还有一个页面不存在英文&#xff0c;可以自行修改&#xff0c;喜欢的朋友可以拿去使用&#xff0c;源码是html&#xff0c;记事本打开修改即可&#xff0c;鼠标双击…

线程池的合理使用

线程池的合理使用 一、简介二、为什么要使用线程池三、核心参数四、如何合理配置线程参数1.1 corePoolSize && maximumPoolSize1.2 Handler 拒绝策略1.2.1AbortPolicy&#xff1a;优势&#xff1a;劣势&#xff1a; 1.2.2 DiscardPolicy&#xff1a;优势&#xff1a;劣…

海外媒体发稿-全媒体百科

全球知名媒体机构 在全球范围内&#xff0c;有许多知名的新闻机构负责报道世界各地的新闻事件。以下是一些国外常见的媒体机构&#xff1a; AP&#xff08;美联社&#xff09;合众国际社&#xff08;UPI&#xff09;AFP(法新社)EFE&#xff08;埃菲通讯社&#xff09;Europa …

521. 最长特殊序列 Ⅰ

521. 最长特殊序列 Ⅰ 题目链接&#xff1a;521. 最长特殊序列 Ⅰ 代码如下&#xff1a; class Solution { public:int findLUSlength(string a, string b) {if(ab) {return -1;}return max(a.size(),b.size());} };

VUE + 小程序 关于前端循环上传附件页面卡死的问题

最开始我使用for循环&#xff0c;后端能正常保存&#xff0c;但是前端页面卡死了&#xff0c;开始代码是这么写的 wx.showLoading({title: 文件上传中...,mask: true // 是否显示透明蒙层&#xff0c;防止触摸穿透&#xff0c;默认&#xff1a;false});const {fileList} that.…