超越局部损失函数的预测-优化方法
1 文章信息
文章名为Leaving the Nest : Going Beyond Local Loss Functions for Predict-Then-Optimize。发表在第38届AAAI Conference on Artificial Intelligence. 作者来自哈佛大学。
2 摘要
预测-优化是一种利用机器学习在不确定性下进行决策的方法框架。其核心研究问题是:“本文如何利用决策任务的结构,针对该特定任务定制机器学习模型?”为此,近期的研究提出了学习任务特定的损失函数,以捕捉这一潜在结构。然而,当前的方法对这些损失函数的形式及其对机器学习模型行为的影响做出了限制性假设。这些假设不仅导致了高计算成本的方案,而且当它们在实际中被违反时,还会导致性能较差。本文提出了解决这些问题的方法,避免了上述假设,并利用机器学习模型的特征提高学习损失函数的样本效率。本文通过实验证明,本文的方法在文献中的四个领域中实现了最先进的结果,通常比过去的类似方法所需的样本量少一个数量级。此外,当局部性假设被打破时,本文的方法比现有的最佳方法提高了近200%的性能。
3 简介
预测-优化(PtO)是一个利用机器学习(ML)在不确定性下进行决策的框架。顾名思义,它分为两个步骤:首先,使用机器学习模型对不确定的量进行预测;然后,将这些预测结果聚合,并用于参数化一个优化问题,其解提供了待做决策。许多实际应用需要同时进行预测和优化,因此被视为预测-优化问题。例如,推荐系统需要预测用户与物品的亲和度,以确定显示哪些标题,而投资组合优化则使用股票价格预测来构建高绩效的投资组合。在社会公益领域,PtO已被用于规划干预策略,通过预测不同子群体对干预措施的反应。
PtO的核心研究问题是:“本文如何利用优化问题的结构来学习能够在特定决策任务中表现更好的预测模型?”在本文中,本文将用于实现这一目标的广泛方法称为决策聚焦学习(DFL)。最近,多篇论文提出了用于DFL的任务特定损失函数。这些方法的直觉可以用安娜·卡列尼娜原则来概括——完美的预测导致完美的决策,而不同类型的 imperfect 预测对下游决策有不同的影响。因此,这些损失函数尝试使用可学习的参数来捕捉不同类型的预测错误对决策任务的影响。例如,均方误差(MSE)损失可以通过可调参数来加权不同的真实标签。这样,训练于这种损失函数的模型就不太可能犯那些影响下游决策质量的错误。
学习任务特定损失函数面临两个主要挑战。首先,学习预测与决策之间的关系是具有挑战性的。为了使学习这一关系更易于处理,过去的方法为每个决策任务的实例学习不同的损失函数,每个损失函数在局部上近似优化任务的行为。然而,无法跨不同实例利用训练样本可能会使学习损失函数的样本效率低下,尤其是对于需要大量样本才能学习的方案。这尤其成问题,因为为学习这些损失函数创建数据集是整体方法中最昂贵的部分。本文中,本文并不为每个决策任务实例学习单独的损失函数,而是学习从预测模型的特征空间到不同局部损失函数参数的映射。这种“基于特征的参数化”使本文能够兼得两者的优势——在保持局部损失函数学习简洁性的同时,还能在不同决策任务实例间进行泛化。
除了提高效率外,这种重新参数化还确保了学习到的损失函数是费舍尔一致的——这是一个基本的理论属性,确保在无限数据和模型容量的极限下,优化损失函数能够导致最优的决策。过去的损失函数学习方法甚至没有满足这个基本的理论属性!
学习损失函数的第二个挑战是它提出了一个“先有鸡还是先有蛋”的问题——为了获得学习损失函数必须准确逼近真实决策质量的预测分布,首先需要一个预测模型,而要获得这样一个模型,则需要一个损失函数来训练它。不同的干预措施使本文能够摆脱基于局部性的简化假设,本文将本文的损失函数称为“高效全局损失”(EfficientGlobal Losses,简称EGLs)。
本文中本文不仅证明了EGLs的理论费舍尔一致性,还通过实验证明EGLs的优点,通过在四个领域与过去的工作进行比较。首先,本文展示了在本文一个关键领域中,基于模型的采样对于良好性能至关重要,EGLs甚至比最好的基准方法提高了近200%的性能。该领域的关键特征是,它打破了局部性假设,导致过去的方法灾难性地失败。其次,本文展示了EGLs在文献中剩余的三个领域中实现了最先进的性能,尽管在其中两个领域的样本量比可比方法少一个数量级。这种样本效率的提升转化为学习任务特定损失函数所需时间的减少,从而实现了数量级的加速。总的来说,本文认为这些改进使得决策聚焦学习(DFL)在实践中变得更加可行。
4 问题描述
多位作者提出了为深度学习(DFL)学习任务特定损失函数的方法。这些方法通过向标准损失函数(例如,均方误差MSE)添加可学习的参数并对其进行调优,使得最终的损失函数能够逼近“典型”预测的DQ(决策质量)中的“遗憾”值。具体来说,对于模型的预测分布
,目标是选择一个损失函数
,并调整其参数
,使得:
其中,
DQ 定义如下:
其中为预测值,y为真实标签,
为在预测值下做出的决策,
是评价决策的函数
需要注意的是,中的第一项对于是常数,因此最小化
等价于最大化 DQ。然而,添加 DQ(y, y) 项后,使得
更像一个损失函数——这是一个最小化目标,其最小值为 0(当
时)。
因此,带参数的简单损失函数版本可以学习(从而学习 DQ)的结构。
使用任务特定损失函数学习预测模型的元算法如下:
1.采样:生成K个候选预测,例如,通过向每个真实标签
添加高斯噪声
。这一策略是基于“预测的局部性”假设,即预测将接近真实标签。
2.生成数据集:对采样的预测运行优化求解器,以获得相应的决策质量值
。这将产生一个数据集,形式为
,其中每个实例y来自训练和验证集。
3.学习损失函数:学习损失函数,使其最小化第二步中数据集的均方误差 (MSE)。为每个实例重新加权 MSE 损失:
同时还有两类损失函数,称为“局部优化决策损失”(LODLs)。第一类为每个预测添加可学习的权重,第二类则更为一般——它是由预测组成的任意二次函数,其中学习的参数是每个多项式项的系数:
加权均方误差 (WMSE):
二次损失 (Quadratic):
这些损失的参数和受到约束
,以确保所学习的损失是凸的。它们还提出了“定向”变体的每个损失函数,其中学习的参数取决于
与否。这些参数随后可以为每个实例y学习,例如,使用梯度下降法。对于预测模型
:在前一步学习的损失函数上训练预测模型,例如,使用随机森林.
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">1><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">5 算法改进1>
第一部分:基于特征的参数化
EGL(高效全局损失)学习一个映射,该映射将数据集中任何预测的特征x映射到对应的凸构造的 LODL 损失族中的参数,如下所示:
加权均方误差 (WeightedMSE):本文学习一个映射,将优化参数y的特征x映射到其关联的“权重”
。直观地说,权重
编码了给定预测的重要性,因此,EGL 学会预测不同预测误差对的影响。
二次损失 (Quadratic):对于每一对预测和
,本文学习一个映射
,其中
是参数化损失函数的矩阵。
定向变体 (Directed Variants):本文不再学习一个从特征x到单一参数的映射,而是学习从的映射用于“定向加权均方误差(Directed WeightedMSE)”,以及从
的映射用于“定向二次损失(Directed Quadratic)”。
接下来,本文按过去的工作方式优化学习到的损失函数的最优参数:
其中,是学习到的损失函数。对于本文的实验,模型
是一个 4 层的前馈神经网络,隐藏层维度为 500,通过梯度下降进行训练。由于本文学习一个从给定预测的特征x到相应损失函数参数的映射,本文的方法称为基于特征的参数化(FBP)。
第二部分 基于模型的采样
过去的工作假设预测会接近实际标签y,以有效地生成潜在预测
。然而,如果这个假设不成立,使用高斯采样可能无法产生良好的结果。因此,在本文中,本文提出了一个替代方案:基于模型的采样(MBS)。在这种方法中,为了生成潜在预测的分布,本文首先在标准损失函数(例如,均方误差MSE)上训练一个预测模型
。然后,在训练过程中按等间隔使用中间模型为数据集中每个问题实例生成预测。这些预测形成了潜在预测的集合
,基于这些预测,本文创建数据集并学习损失函数。
与此方法相关的超参数有:
模型数量:本文不仅从一个模型中采样预测,还可以训练多个模型以增加生成预测的多样性。在本文的实验中,本文选择了 {1, 5, 10} 个预测模型。
学习率和训练步骤数:学习率从{ 10-6, 10-5, …, 1 }中选择,可能使用周期性调度。本文在所有模型上使用最多 50000 次更新。
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">6实验验证1>
6.1实验设置
本文在四个不同领域中进行了实验验证
(i) 立方Top-K:学习一个模型,使得其Top-k预测具有较高的对应真实标签。
(ii) 网络广告:该领域的目标是预测不同 (用户,网站) 对的点击率 (CTR),从而选择合适的网站进行广告投放。
(iii)投资组合优化:基于Markovitz模型,目标是预测未来股价,以创建一个具有高回报但低风险的投资组合。
(Ⅳ)(困难)立方Top-K:数据规模较大的立方Top-K案例
6.2实验结果
本文的方法与文献中的以下基线方法进行了比较:
MSE:标准回归损失。
专家手工制作的代理模型:端到端方法,需要为每个领域分别手工设计可微分的代理优化问题。
L&Z:Lawless和Zhou的方法,用于学习损失函数。
LODL:Shah等人的方法,用于学习损失函数。使用32个和2048个样本进行训练。
本文发现本文的方法在所有文献中的领域中都达到了最先进的性能。事实上,本文看到,在三个领域中的两个领域,EGLs的性能与LODLs相似,但样本数少了一个数量级。
6.3计算复杂度实验
在第6.2中,本文看到EGLs在样本数量少一个数量级的情况下,表现与LODLs相当。在下表中,本文展示了这种样本效率的提升是如何转化为运行时间差异的。本文发现,大部分时间在学习LODLs时都花费在本文元算法的第2步。因此,尽管EGLs在执行第1步和第3步时需要更多时间,但样本效率的提升导致EGLs相比LODLs具有数量级的加速。
6.4消融实验
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">在本节中,本文将EGLs与来自文献中的最强竞争对手——LODLs(Shah et al. 2022)进行比较。具体而言,本文关注低样本情境——即每个实例使用32个样本来训练这两种损失函数——并在下表中呈现本文的结果。本文发现,几乎在每种损失函数家族和领域的选择中,EGLs都提高了决策质量。本文进一步分析下表中的内容。1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">基于特征的参数化(FBP):1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">鉴于这是低样本情境,'LODL + FBP' 几乎总是比仅使用LODL表现更好。特别是在添加更多样本可以改善LODL表现的情况下,这种改进尤为明显——例如在立方Top-K领域的“Directed”变体和网络广告领域的“Quadratic”方法中。1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">基于模型的采样(MBS):1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">这一贡献在立方Top-K领域尤为有用,因为在该领域中局部性假设被打破。有趣的是,尽管局部性假设在其他两个领域似乎没有被打破,但MBS仍然提高了性能(见附录D.1中的表4)。本文假设,MBS在这里通过以下两种不同方式帮助提高性能:1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">提高有效样本效率:本文看到,在FBP最有效的情况下,MBS带来的增益与FBP叠加。这表明MBS有助于提高样本效率。本文的假设是,基于模型的采样使本文能够专注于那些能够导致“训练轨迹的分叉”的预测,从而使得在样本较少的情况下提高性能。1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">帮助加权MSE模型:MBS还帮助提高了这些领域中表现最差的加权MSE模型,结合FBP后,甚至超过了使用2048个样本的LODLs。这表明,MBS不仅仅是提高了样本效率。本文假设,MBS还通过限制样本集 y~\tilde{y}y~ 为“现实预测”,从而减少了搜索空间,允许即使是参数较少的加权MSE模型在实践中也能表现良好。1>1>1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">1>1>1><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">7 1>1>1>1><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;text-wrap: wrap;">总结1>1>1>
<1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;">1>1>1>1><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1><1 style="text-wrap-style: initial;">本文提出的增强学习损失函数(EGL)方法在多个领域中表现出色,通过提高样本效率显著减少了所需训练样本的数量,同时保持或超越了现有方法(如LODL)的性能。EGL结合了模型驱动采样(MBS)和基于特征的参数化(FBP),能够有效生成潜在的预测,并通过学习损失函数改善决策质量。实验表明,EGL在“Cubic Top-K”、“Web广告”和“投资组合优化”等多个任务中,尤其是在低样本情况下,表现优异,且在计算时间上比LODL获得了显著加速。MBS通过优化样本生成过程,进一步提高了样本效率并降低了搜索空间,使得即使在较少样本的情况下,加权MSE模型也能表现良好。总体来看,EGL方法在低样本、高计算需求的情境下展现了显著的性能优势和应用潜力。1>1>1>1>1><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;"><1 style="color: rgb(0, 0, 0);font-family: 微软雅黑;font-size: 15.04px;letter-spacing: 1px;"><1 style="text-wrap-style: initial;">1>1>1>1>
相关文章:

超越局部损失函数的预测-优化方法
1 文章信息 文章名为Leaving the Nest : Going Beyond Local Loss Functions for Predict-Then-Optimize。发表在第38届AAAI Conference on Artificial Intelligence. 作者来自哈佛大学。 2 摘要 预测-优化是一种利用机器学习在不确定性下进行决策的方法框架。其核心研究问…...

PDF预览插件
PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…...

node.js之---CommonJS 模块
CommonJS概念 在 Node.js 中,CommonJS 是一种模块化规范,它定义了如何在 JavaScript 中创建和使用模块。CommonJS 是 Node.js 使用的默认模块系统。它让开发者能够分离代码,便于重用和维护。 CommonJS 模块的基本特性 模块导出 在 CommonJ…...

关于AI面试系统2025年趋势评估!
在快速发展的科技浪潮中,AI技术正以前所未有的速度渗透到各行各业。企业招聘领域,作为人才选拔的关键环节,也不例外地迎来了AI面试系统的广泛应用和持续创新。2025年,AI面试系统不仅成为企业招聘的主流工具,更在智能化…...

SQL—替换字符串—replace函数用法详解
SQL—替换字符串—replace函数用法详解 REPLACE() 函数——查找一个字符串中的指定子串,并将其替换为另一个子串。 REPLACE(str, old_substring, new_substring)str:要进行替换操作的原始字符串。old_substring:要被替换的子串。new_substri…...

《Vue3实战教程》40:Vue3安全
如果您有疑问,请观看视频教程《Vue3实战教程》 安全 报告漏洞 当一个漏洞被上报时,它会立刻成为我们最关心的问题,会有全职的贡献者暂时搁置其他所有任务来解决这个问题。如需报告漏洞,请发送电子邮件至 securityvuejs.org。…...

软件项目验收测试需进行哪些测试?软件检测机构分享验收测试作用
在信息技术高速发展的今天,软件项目的验收测试作为软件开发生命周期中至关重要的一环,扮演着不可或缺的角色。软件项目验收测试是在软件开发完成后,依据需求文档和设计规范,对软件系统进行的一项综合性测试。其主要目的是验证开发…...

css实现文字描边
效果 学习啦 -webkit-text-stroke-width: 设置文本描边的宽度,值可以是任何长度单位(如 px, em, rem 等) -webkit-text-stroke-color:设置文本描边的颜色,值可以是任何颜色值(如 red, green, bl…...

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?
在上一篇文章中,我们通过二次函数的例子,讲解了如何训练人工智能。今天,让我们进一步探讨:面对不同的实际问题,应该如何选择合适的函数形式? 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…...

数据挖掘——回归算法
数据挖掘——回归算法 回归算法线性回归最小二乘法优化求解——梯度下降法逻辑回归逻辑回归函数逻辑回归参数估计逻辑回归正则化 决策树回归小结 回归算法 回归分析 如果把其中的一些因素(房屋面积)作为自变量,而另一些随自变量的变化而变化…...

AIGC与未来的通用人工智能(AGI):从生成内容到智能革命
目录 第一部分:AIGC概述 1.1 什么是生成式人工智能(AIGC) 1.2 AIGC的应用 第二部分:通用人工智能(AGI)概述 2.1 什么是通用人工智能(AGI) 2.2 AGI的关键特征 2.3 当前AGI的挑战 第…...

jQuery学习笔记3
jQuery 事件注册 jQuery 事件处理 <div></div><ul><li>我们都是好孩子</li><li>我们都是好孩子</li><li>我们都是好孩子</li><li>我们都是好孩子</li><li>我们都是好孩子</li></ul><o…...

SpringMVC(六)拦截器
目录 1.什么是拦截器 2.拦截器和过滤器有哪些区别 3.拦截器方法 4.单个拦截器的执行流程 5.使用拦截器实现用户登录权限验证(实例) 1.先在html目录下写一个login.html文件 2.在controller包下写一个LoginController文件 3.加拦截器 1.创建一个conf…...

单区域OSPF配置实验
1、绘制拓扑图 2、配置ip地址 R0 Router(config)#interface FastEthernet0/0 Router(config-if)#ip address 192.168.1.1 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)#interface FastEthernet0/1 Router(config-if)#ip address 192.16…...

Linux上vi(vim)编辑器使用教程
vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用…...

虚拟机图像界面打不开了
今天打开虚拟机的时候图形界面打不开,进入到tty1中,而且还没有网,找了好几个办法都不行最后找到这个博主发的,解决了 修复 https://www.cnblogs.com/shuimuqingyang/p/15070690.html...

《经典力学》笔记
文章目录 直线运动弹簧和简谐运动动能,势能,机械能动量动量守恒机械能守恒弹性碰撞和非弹性碰撞冲量 圆周运动匀速圆周运动转动惯量平行轴定理 角动量角动量守恒 英语 直线运动 弹簧和简谐运动 F s → − k x 1 → \overrightarrow{F_s}-k \overrighta…...

【论文+源码】基于Spring和Spring MVC的汉服文化宣传网站
为了实现一个基于Spring和Spring MVC的汉服文化宣传网站,我们需要创建一个简单的Web应用程序来展示汉服文化和相关信息。这个系统将包括以下几个部分: 数据库表设计:定义文章、用户和评论的相关表。实体类:表示数据库中的数据。DAO层接口及MyBatis映射文件:用于与数据库交…...

计算机的错误计算(一百九十九)
摘要 用大模型判断下面四个函数 有何关系?并计算它们在 x0.00024时的值,结果保留10位有效数字。两个大模型均认为它们是等价的。实际上,还有点瑕疵。关于计算函数值,大模型一只是纸上谈兵,没计算;大模型二…...

【AI日记】25.01.02 kaggle 比赛 3-1
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Forecasting Sticker Sales时间:4 小时 读书 书名:秦制两千年时间:5 小时阅读原因:之前看过 《商君书》,对秦制…...

el-pagination 为什么只能展示 10 条数据(element-ui@2.15.13)
好的,我来帮你分析前端为什么只能展示 10 条数据,以及如何解决这个问题。 问题分析: pageSize 的值: 你的 el-pagination 组件中,pageSize 的值被设置为 10:<el-pagination:current-page"current…...

Ps:将数据组作为文件导出
Ps菜单:文件/导出/数据组作为文件 Export/Data Sets as Files “将数据组作为文件导出” Export Data Sets as Files命令是 Photoshop 数据驱动设计功能的一部分,用于结合可变数据和模板,生成多个文件。 1、自动化批量生成 适用于名片、证书、…...

nohup.out日志
1、nohup.out生成 在你执行 nohup java -jar ruoyi-admin.jar & 时,程序原本要输出到控制台的所有内容,包括日志框架输出到控制台的部分,都会被写入 nohup.out 。nohup 命令运行程序时,默认情况下,nohup 会把程序的…...

01 背包
文章目录 前言代码思路 前言 总是感觉有点没有完全懂,但是说起来的时候好像又懂一点点,就是我现在的状态。 代码 二维的直接的版本 #include<iostream> #include<algorithm>using namespace std;const int N 1010; int f[N][N]; int v[…...

QT-------------多线程
实现思路 QThread 类简介: QThread 是 Qt 中用于多线程编程的基础类。可以通过继承 QThread 并重写 run() 方法来创建自定义的线程逻辑。新线程的执行从 run() 开始,调用 start() 方法启动线程。 掷骰子的多线程应用程序: 创建一个 DiceThre…...

【JVM】深入了解Java虚拟机-------内存划分、类加载机制、垃圾回收机制
目录 什么是JVM? 内存划分: 1.堆 (共享) 2.栈 (私有) 3.元数据区(共享) 4.程序计数器(私有) 示例: JVM 类加载 一.类加载过程 1.加载 2.验证 3.…...

k8s部署juicefs
操作系统k8smysqlminiojuicefs内核centos8.21.19.18.0.39RELEASE.2023-12-20T01-00-02Zv0.19.04.18.0-193.el8.x86_64 本文k8s较老采用老版本的juicefs,中间件也都是部署在k8s上。测试是否能成功创建动态pvc挂在到测试pod当中并查看到数据信息。一些偏理论知识就不多…...

【ArcGIS微课1000例】0136:制作千层饼(DEM、影像、等高线、山体阴影图层)
文章目录 一、效果展示二、数据准备三、制作过程1. 打开软件2. 制作DEM图层3. 制作影像层4. 制作TIN层5. 制作等高线层四、注意事项一、效果展示 二、数据准备 订阅专栏后,从专栏配套案例数据包中的0136.rar中获取。 1. dem 2. 影像 3. 等高线 4. tin 三、制作过程 1. 打开软…...

Ajax数据爬取
有时我们用requests 抓取页面得到的结果,可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,而使用requests 得到的结果中并没有这些数据。这是因为 requests 获取的都是原始 HTML 文档,而浏览器中的页面是JavaScript 处理…...

快速上手大模型的对话生成
本项目使用0.5B小模型,结构和大模型别无二致,以方便在如CPU设备上快速学习和上手大模型的对话上传 #mermaid-svg-Z86hUiQZ0hg9BVji {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Z86hUiQZ0h…...