首页 > 其他分享 >深度学习中的正则化技术 - 参数绑定和参数共享篇

深度学习中的正则化技术 - 参数绑定和参数共享篇

时间:2024-07-16 09:29:13浏览次数:18  
标签:boldsymbol 模型 绑定 正则 参数 共享

序言

在深度学习的探索之旅中,如何高效地管理模型的参数,以减少计算成本、提升训练效率并防止过拟合,一直是研究者们关注的焦点。参数绑定与参数共享作为两种重要的参数优化策略,应运而生。参数绑定通过构建参数间的直接或间接联系,使模型的不同部分能够共享或依赖某些参数的变化,从而在保持模型灵活性的同时,减少了独立参数的数量。而参数共享则更进一步,它直接让模型的不同组件使用相同的参数集,特别是在处理具有空间或时间结构的数据时,如图像或序列数据,这种策略尤为有效。这两种技术不仅简化了模型结构,还通过正则化效应增强了模型的泛化能力。

参数绑定和参数共享

参数绑定

  • 目前为止,本文我们将讨论对参数添加约束或惩罚时,一直是相对于固定的区域或点。
    • 例如, L 2 L^2 L2正则化(或权重衰减)对参数偏离零的固定值进行惩罚。
    • 然而,有时我们可能需要其他的方式来表达我们对模型参数适当值的先验知识。
    • 有时候,我们可能无法准确地知道应该采取什么样的参数,但我们从领域和模型结构方面的知识得知模型参数之间应该存在一些相关性。
  • 我们经常想要表达的常见类型的依赖之一是某些参数应当彼此接近。
    • 考虑以下情形:我们有两个模型执行相同的分类任务(具有相同类别),但输入分布稍有不同。
    • 形式地,我们有参数为 w ( A ) \boldsymbol{w}^{(A)} w(A)的模型 A A A和参数为 w ( B ) \boldsymbol{w}^{(B)} w(B)的模型 B B B。
    • 这两种模型将输入映射到两个不同但相关的输出: y ^ ( A ) = f ( w ( A ) , x ) \hat{y}^{(A)}=f(\boldsymbol{w}^{(A)},\boldsymbol{x}) y^​(A)=f(w(A),x)和 y ^ ( B ) = f ( w ( B ) , x ) \hat{y}^{(B)}=f(\boldsymbol{w}^{(B)},\boldsymbol{x}) y^​(B)=f(w(B),x)。
    • 我们可以想象,这些任务足够相似(或许具有相似的输入和输出分布),因此我们认为模型参数应彼此靠近: ∀ i , w i ( A ) \forall_i,w_i^{(A)} ∀i​,wi(A)​应该与 w i ( B ) w_i^{(B)} wi(B)​接近。
    • 我们可以通过正则化利用此信息。具体来说,我们可以使用以下形式的参数范数惩罚: Ω ( w ( A ) , w ( B ) ) = ∥ w ( A ) − w ( B ) ∥ 2 2 \Omega(\boldsymbol{w}^{(A)},\boldsymbol{w}^{(B)})=\Vert\boldsymbol{w}^{(A)}-\boldsymbol{w}^{(B)}\Vert_2^2 Ω(w(A),w(B))=∥w(A)−w(B)∥22​。
    • 在这里,我们使用 L 2 L^2 L2惩罚,但也可以使用其他选择。这种方法由Lasserre et al. (2006) 提出, 正则化一个模型(监督模式下训练的分类器)的参数接近另一个无监督模式下训练的模型(捕捉观察到的输入数据的分布)。这样构造的架构使得许多分类模型中的参数能与之对应的无监督模型的参数匹配。

参数共享

  • 参数范数惩罚是正则化参数彼此接近的一种方式,在更流行的方法是使用约束:强迫某些集合中的参数相等。
    • 由于我们将各种模型或模型组件解释为共享唯一的一组参数,这种正则化方法通常被称为参数共享(parameter sharing)。
    • 参数共享相对于正则化参数接近(通过范数惩罚)的一个显著优点是,只有参数(唯一一个集合)的子集需要被存储在内存中。对于某些特定模型,如卷积神经网络,这可能可以显著减少模型所占用的内存。
  • 卷积神经网络(Convolutional Neural Networks, CNNs)
    • 目前为止,最流行和广泛使用的参数共享出现在应用于计算机视觉的卷积神经网络 (CNN)。
    • 自然图像有许多统计属性是对转换不变的。例如,猫的照片即使向右边移了一个像素,仍保持猫的照片。
    • CNN通过在图像多个位置共享参数考虑这个特性。相同的特征(具有相同权重的隐藏单元)在输入的不同位置上计算。这意味着无论猫出现在图像中的第 i i i列或 i + 1 i + 1 i+1列,我们都可以使用相同的猫探测器找到猫。
    • 参数共享显著降低CNN模型不同参数的数量,并显著提高了网络的大小而不需要增加相应的训练数据。它仍然是将领域知识有效地整合到网络架构的最佳范例之一。

总结

参数绑定与参数共享是深度学习中重要的模型优化手段。参数绑定侧重于在模型的不同部分之间建立参数间的直接关联或约束,以利用它们之间的内在联系来减少冗余,常见于多任务学习、神经网络正则化等场景。而参数共享则更为直接,它允许模型的不同组件共享同一套参数,这在卷积神经网络(CNN)中尤为常见,如卷积层中的权重共享,极大地减少了参数数量,提升了处理图像等数据的效率。通过这两种方式,深度学习模型在保持甚至提升性能的同时,实现了更为紧凑、高效的架构设计,对于推动深度学习技术的广泛应用具有重要意义。

往期内容回顾

深度学习中的正则化技术 - 正则化和欠约束问题篇

标签:boldsymbol,模型,绑定,正则,参数,共享
From: https://blog.csdn.net/benny_zhou2004/article/details/140423229

相关文章

  • 正则表达式
    前言        正则表达式,在搜索和操作文本字符串,特别是在处理文本文件时,非常强大。一行正则表达式可以很容易地取代几十行编程代码。所有脚本语言(如Perl、Python、PHP和JavaScript)、通用编程语言(如Java)甚至用于搜索文本的Word等文字处理器都支持Regex。开始使用正则表......
  • 数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可
    原文链接:http://tecdat.cn/?p=26868最近我们被客户要求撰写关于电信公司用户流失的研究报告,包括一些图形和统计输出。在本教程中,我们将学习覆盖决策树和随机森林。这些是可用于分类或回归的监督学习算法下面的代码将加载本教程所需的包和数据集。  library(tidyverse)......
  • 算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、O
    ​大侠幸会,在下全网同名「算法金」0基础转AI上岸,多个算法赛Top「日更万日,让更多人享受智能乐趣」今日215/10000抱个拳,送个礼为模型找到最好的超参数是机器学习实践中最困难的部分之一1.超参数调优的基本概念机器学习模型中的参数通常分为两类:模型参数和超......
  • 【漏洞分析】DoughFina 攻击事件分析:不做任何参数检查的去杠杆合约
    背景介绍2024年7月12日,DoughFina协议遭受了黑客攻击,造成本次攻击的主要原因是ConnectorDeleverageParaswap合约没有对输入参数进行检查,且该合约为DSA合约的owner。攻击者可以构造恶意参数窃取DSA合约的资金。攻击交易https://app.blocksec.com/explorer/tx/eth/0x......
  • 第六章字符串及正则表达式
    字符串的常用操作点击查看代码示例6-1字符串的相关操作1#大小写转换s1='HELLOWORLD'new_s2=s1.lower()print(s1,new_s2)new_s3=s1.upper()print(new_s3)#字符串的分隔e_mail='ysj@126.com'lst=e_mail.split('@')print('邮箱名:',lst[0],'邮箱服务器:',......
  • python中的re模块--正则表达式
    正则表达式,又称规则表达式。(英语:RegularExpression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本  re模块作用通过使用正则表达式,可以:测试字符串内的模式。——例如,可以测试输入字符串,以查......
  • Python从0到100(三十九):数据提取之正则(文末免费送书)
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • JVM调优参数和概念
    Java虚拟机(JVM)调优是一个复杂的过程,涉及到对JVM的内存管理、垃圾收集器选择、线程管理等多个方面的优化。以下是一些常见的JVM调优参数和概念:1.**堆内存设置**:  -`-Xms<size>`:设置JVM启动时的初始堆大小。  -`-Xmx<size>`:设置JVM最大堆大小。2.**新生代和老年代......
  • Django 模型字段类型和字段参数总结
    models.AutoField作用说明:默认生成列名为id的列,并设置为主键数据类型:int(11)必备参数:primary_key=True作为主键存在主键django会默认自带ColName=models.AutoField(primary_key=True)2.models.CharField作用说明:字符串字段,长度小于255数据类型:varchar(50)必......
  • 微服务项目配置文件参数安全方案
    项目环境springboot系列项目maven依赖管理任意配置中心(apollo/配置文件/k8sConfigMapSecrets)项目代码添加依赖<dependency>    <groupId>com.github.ulisesbocchio</groupId>    <artifactId>jasypt-spring-boot-starter</artifactId>    <version>${ver......