首页 > 编程语言 >优化算法——截断梯度法(TG)

优化算法——截断梯度法(TG)

时间:2023-06-28 15:33:54浏览次数:56  
标签:梯度 正则 截断 算法 L2 L1 TG 参数


一、L1正则的表达形式

   在机器学习中,几乎无人不知无人不晓L1正则与L2正则,L1正则与L2正则都有参数控制的作用,对模型起到约束的作用,防止过拟合。但是L1正则与L2正则也有区别,L1正则更容易产生稀疏解,使得某些参数等于0,而L2正则却没有这样的优势,只能使得参数趋近于0。利用这样的优势可以使得L1具有特征选择的作用,若某些特征的系数为0表示该维特征对于模型没什么作用,故此可以丢弃。

   L1正则与L2正则相比具有了更多的优点,同时,L1正则的优化相对L2正则来讲,也变得更加难。对于L2正则,由于正则项是可导的,因此博客中的基于梯度的优化算法,如梯度下降法,牛顿法,拟牛顿法(DFP算法,BFGS算法,L-BFGS算法)都可以直接用于求解带有L2正则的优化问题。L1正则项是不可导的,因此前面的这些算法无法直接对其进行求解,因此需要对其进行修改才能用来求解带有L1约束的优化问题。带有L1正则的表达式主要有以下两种:

1、convex-constraint formulation

其中,

表示损失函数

2、soft-regularization

当选择合适的参数

时,正两种表达形式是等价的。

二、处理大数据的方法


    由于数据量比较大,可能已经超出了内存的大小,此时无法将数据全部装入到内存中参与计算,主要有两种方法处理大数据问题


  1. 在很多机器上并行批学习
  2. 利用流式的在线学习

1、流式在线学习的流程


  1. 对于一个样本到达后;
  2. 我们利用计算好的权重向量计算出样本对应的输出;
  3. 对于样本的实际标签,令,计算出权重下的损失;
  4. 根据某种策略更新现在的权重:。

2、随机梯度下降法



    随机梯度下降(Stochastic Gradient Descent)是最简单的在线学习算法,其基本的更新策略为:




其中,

表示学习率,通常可以取为某个常数:

也可以取为迭代代数的函数:


其中,

表示当前的迭代代数。


三、截断梯度法(Truncated Gradient)


       正如上面所讲,L1正则可以使得某些特征的系数为0,具有特征选择的能力,这便称为稀疏性(Sparsity)。L1正则能够产生稀疏的解。为了能够在利用在线学习的同时产生稀疏解,最直接的想法是采用截断的方法,截断,即通过某个阈值来控制系数的大小,若系数小于某个阈值便将该系数设置为0,这便是简单截断的含义。


1、简单截断(Simple coefficient Rounding)


    简单截断的含义是给定某个阈值

,在在线学习的过程中,没隔

步进行一次截断,截断是指将小于阈值

的系数直接赋值为0,具体的形式如下:




其中,

表示的是阈值,函数

的具体形式如下所示:




其中,

是指示性函数,其具体形式如下:








该方法的主要缺点是对于

值得选择是很难解决的问题,其次是通过简单截断,有点太暴力。


2、L1-Regularized Subgradient(次梯度)


       有关次梯度的概念将会在另一篇文章中涉及,L1-Regularized Subgradient形式也比较直观,具体的形式如下:


其中,函数

是一个符号函数,其具体形式如下:




这样的次梯度的方法的主要缺点是在很少的情况下能够产生稀疏的解,主要的原因是前后两部分做加减法能够等于0的概率很小。


3、截断梯度法(Truncated Gradient)


       在简单截断方法中,直接的截断太过于暴力,在截断梯度法中,将截断的步骤适当放缓,其具体的更新公式如下:


其中,

称为重力参数(gravity parameter),截断函数

的具体形式如下:




与简单截断类似,每隔

次对参数

进行更新,其更新公式如下:








其中,

。可以通过调节参数

和参数

控制稀疏度,参数

和参数

越大,解越稀疏。




参考文献


[1] Sparse Online Learning via Truncated Gradient


[2]  在线最优化求解(Online Optimization)之二:截断梯度法(TG)



标签:梯度,正则,截断,算法,L2,L1,TG,参数
From: https://blog.51cto.com/u_16161414/6572501

相关文章

  • ChatGPT如何借助指纹浏览器批量生成文案?
    哪些行业需要文案创作:许多行业都需要文案创作,例如电商、互联网金融、新媒体运营、广告、市场营销、公共关系、新闻媒体、出版、旅游等等。无论是线上还是线下,文案都是吸引目标受众的重要工具。但是大量的、持续的且优质的文案创作有一定难度,这时就可以利用智能AI工具来帮忙创作。Ch......
  • tgt服务端流程分析
    tgt服务端流程分析2.backingstoretgt支持多种后端存储,比如rdwr,aio,sg,rbd,sheepdog等,默认的是rdwr,可以指定flag(O_SYNC|O_DIRECT)。了解清楚tgt的后端存储的处理模式,就可以添加新的后端存储用于支持自定义的功能。其中主要的接口就是bs_open,bs_init,bs_cmd_submit,bs_close,bs_......
  • ​​动态规划算法
    以下是一个用C++实现的动态规划算法来解决最长子序列问题(LongestCommonSubsequence)的示例代码:#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;intlongestCommonSubsequence(stringtext1,stringtext2){intm=text1.length();......
  • 反调试专题丨反调试之NtGlobaFlag
    一、32位系统nt!_PEB+0x000InheritedAddressSpace:UChar+0x001ReadImageFileExecOptions:UChar+0x002BeingDebugged:UCharisDbg值,8字节+0x003BitField:UChar+0x003ImageUsesLargePages:Pos0,1Bit+0x003IsProtectedProcess:......
  • ChatGLM-6B第二代模型开源,拿下LLM模型中文能力评估榜单第一名
    ChatGLM-6B自3月14日发布以来,深受广大开发者喜爱。截至6月24日,来自Huggingface上的下载量已经超过300w。为了更进一步促进大模型开源社区的发展,我们再次升级ChatGLM-6B,发布ChatGLM2-6B。在主要评估LLM模型中文能力的C-Eval榜单中,截至6月25日ChatGLM2模型以71.1的......
  • 【算法】根据输入的正整数,重新排列生成一个更大的数字
    需求:创建一个函数,该函数取一个正整数,并返回下一个较大的数字,该数字可以通过重新排列其数字来形成。例如:12===>21513==>5312017===>2071如果数字不能重新排列以形成更大的数字,则返回-1:9===>-1111=>-1531=>-1......
  • YBTOJ 1.2贪心算法
    A.奶牛晒衣服......
  • 强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟
    强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解1.核心词汇深度确定性策略梯度(deepdeterministicpolicygradient,DDPG):在连续控制领域经典的强化学习算法,是深度Q网络在处定性”表示其输出的是一个确定的动作,......
  • 强化学习从基础到进阶--案例与实践[7.1]:深度确定性策略梯度DDPG算法、双延迟深度确定
    强化学习从基础到进阶--案例与实践[7.1]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解项目实战1、定义算法1.1定义模型!pipuninstall-yparl!pipinstallparlimportparlimportpaddleimportpaddle.nnasnnimportpaddle.nn.functionalasFcl......
  • 强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟
    强化学习从基础到进阶-常见问题和面试必知必答[7]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解1.核心词汇深度确定性策略梯度(deepdeterministicpolicygradient,DDPG):在连续控制领域经典的强化学习算法,是深度Q网络在处定性”表示其输出的是一个确定的动作,可......