当前位置: 首页 > news >正文

Michael Jordan最新报告:去中心化机器学习中的契约、不确定性和激励

5ca7559b3e7ed51a877350a8685a861b.png

‍导读

11月3日,智源研究院学术顾问委员会委员、机器学习泰斗Michael Jordan在以“新一代人工智能前沿”为主题的2023北京论坛 · 新工科专题论坛上,发表了题为Contracts, Uncertainty, and Incentives in Decentralized Machine Learning(去中心化机器学习中的契约、不确定性和激励)的主旨报告,该报告从统计学、经济学和博弈论等独特视角阐释了如何应对机器学习中的不确定性。

6d2432965952698a0c815643d22c69c4.jpeg

Michael I. Jordan

Michael I. Jordan是美国科学院、美国工程院、美国艺术与科学院三院院士,AI领域唯一一位获此成就的科学家,多个重要学术组织(AAAS、AAAI、ACM、ASA、CSS、IEEE、IMS、ISBA、SIAM)的会士。Michael I. Jordan教授现执教于加州大学伯克利分校,担任电机工程与计算机系和统计学系教授、实时智能决策计算平台实验室(RISELab)共同主任、统计人工智能实验室(SAIL)主任、统计系系主任。2016年,Jordan教授被Semantic Scholar评为计算机科学领域最具影响力学者,曾获2021年格林纳德随机理论与建模奖、IJCAI研究卓越奖(IJCAI Research Excellence Award)(2016)、David E.Rumelhart奖(2015),以及ACM/AAAI的Allen Newell奖(2009)等重要奖项。

要点速览

最好不要在个体层面上思考人工智能,而是在集体层面上思考它们。

我想讨论集体系统的设计目标,集体可以是人类和计算机的集合。

我可以通过超大规模的机器学习系统实现比以往好得多的效果。这绝对是进步,但它必须被纳入整个科学问题的范围内。如果用朴素的方式来做,可能会导致很大的错误。 

◆ AI并不是我们现在所拥有,并试图监管的某种秘密的超级智能,而是一个新的工程领域,使我们能够以新的方式思考并构建有助于人类的新型系统。 

当我看待人工智能时,我倾向于认为它尚处于未完待续的状态,只是刚刚开始。英语中有个表达,杯子是半满还是半空(编者按:“Is the glass half empty or half full?”用于表达悲观主义者及乐观主义者面对同一件事时,会有不同的看法——根据传统观点,乐观主义者会看到“杯子是半满”,悲观主义者则会看到“杯子是半空”。部分人会以这一问题测试别人的世界观。)对我来说,杯子总是半空的。我希望将它填补完整。那么机器学习中缺少什么呢?人工智能中又缺少什么呢?我认为缺少很多东西。所以我要谈谈该领域研究中所欠缺的经济方面问题。

经济学和统计学一样,是一门要考虑不确定性的科学。我们当前的人工智能和机器学习技术在不确定性方面表现不佳。大家都知道 ChatGPT,它确实很神奇,但它不太擅长处理不确定性,比如说它不知道世界上正在发生什么。或者它可能会说它不知道,但它并不真正知道“它不知道”。

它无法定量评估对自己知识的匮乏程度。它不知道怎么说我想和你合作,因为你比我懂得多。它不知道如何成为事物集体的一部分。由于没有经过充分的训练,它不知道如何收集新数据。它不知道它是否已被损坏......有很多很多它不知道的事情。

虽然人类并不完美,但我们一直在应对大量的不确定性。这是人类特别擅长的。所以说,谈及人类智能,但却没有一个好的关于不确定性的模型,对我来说,那只杯子只满了一半。所以问题的重点在于不确定性。现在,不确定性不仅仅是噪声,随着我们测量的东西越来越多,不确定性就会消失。这是工程学中思考问题的一种经典方式。

不确定性是指你知道一些我不知道的事情,而你却不愿意告诉我(出于隐私、竞争等原因)。我们不公开分享所有知识的原因有很多,经济学家将此称为信息不对称。

我们最好不要在个体层面上思考人工智能,而最好在集体的层面上思考它们。我们需要通过一种社会化的方式来思考人工智能。仅仅将人类的智慧融入超级智能计算机中,并不能解决我们的问题。计算机需要能够在我们的世界中行动并识别出我们是智能体。我们有欲望。不是每个人都能完全拥有自己想要的东西。它必须能够在我们的世界中发挥作用。我们在人工智能领域对此思考得还不够。

因此我想讨论集体系统的设计目标,集体可以是人类和计算机的集合。人类可以在「不确定性」和「协作」这两件事上人类都做得很好。人类教育的目的正是削减不确定性。那么,我们如何激励利己主义的AI智能体做一些事情,比如贡献数据来帮助测试假设,并将其作为具有协作性的行为来完成,然后创造经济价值?

对我来说,相较于大型数据集和大型语言模型和预测,这是更大的技术问题。

从 AlphaFold 看机器学习系统的不确定性

我在UC Berkley的四位优秀学生一直在与我一起从事这个项目,该项目称为“预测驱动的推理”(Prediction Powered Inference)。两年前,AlphaFold 是大家讨论的焦点。现在,大语言模型则站在了风口浪尖。它们都是非常大的机器学习系统,由大量工程师花费大量资金构建而成。 AlphaFold 可以预测蛋白质的结构。

22798babcd3a675aabbcae02e31632ab.png

我可以通过超大规模的机器学习系统实现比以往好得多的效果。这绝对是进步,但它必须被纳入整个科学问题的范围内。如果用朴素的方式来做,可能会导致很大的错误。 

1507f6f14404f83638946e1e94252f50.png

例如,蛋白质会折叠,形成结构或进行酶促反应。目前,存在数十万个已知结构的氨基酸序列。几十万看似很多,但对医学和生物学来说却是很小的数字。了解它们的功能十分重要。 

这个数字一直在增长。20年前,有10,000种结构的蛋白质,而现在有10万了,它仍在增长。另一方面,AlphaFold 将产生数亿个这样的预测,而且它们非常准确。似乎,我们可以只获取 AlphaFold 的结果并使用 AlphaFold 进行科学研究,而不是使用实际的蛋白质进行科学研究。 

事实上,这就是最近发生的事情,这是2004年生物学领域的一篇著名论文,这些作者正在研究蛋白质内在紊乱在生物学上具有重要意义的可能性。

这意味着什么?蛋白质会折叠。当它折叠时,它会在细胞中进行酶促反应等等。但有时蛋白质不会完全折叠。它可能有一根像这样垂下来的「细线」。过去人们认为这只是一种不完美的蛋白质。但事实证明,首先,它的发生是有原因的,某种量子涨落使其不会被折叠。

但事实证明,如果你有许多蛋白质,这些蛋白质带有「细线」,你就可以开始将它们放在一起,形成像这样的小图案,并将它们放入膜中,它们可以调节进出细胞的物质。

事实上,它看起来对生物学来说非常重要。去年在上海颁发的 WLA 生物学奖得主就是从事这一工作的。研究者认为应该测试这个假设,即内在紊乱是否与蛋白质活性相关(磷酸化)。

为了检验一个假设,我们要收集尽可能多的数据,并进行统计。在这种情况下,统计数据称为比值比,即内在紊乱的比例,活跃比上不活跃。如果该数字为 1,则不存在关联。如果该数字大于 1,则存在关联。

这些人利用 2004 年所有可用的数据完成了这项工作。即 10,000 个蛋白质结构。他们为比值比制定了一个置信区间,这个包含「1」的置信区间很大。我们必须等待更多数据,于是20 年后,现在有 100,000 个数据点。但研究者决定开始让AlphaFold 为我们提供数据,于是他们使用 2 亿个 AlphaFold 序列作为数据。

d85dddcda8a03c334928f0955eca50d4.png

AlphaFold 是一个非常准确的系统,它可以很好地预测蛋白质结构。为什么不直接使用它作为数据呢?研究人员使用这个比值比进行了假设检验。

我认为这很可能是一件坏事。这种事一直如此,只是最近《自然》、《科学》和《Plos Biology》等杂志上的一些文章,比如电力供应、贫困预测、基因调控 DNA,出现完全相同的情况。他们采用机器学习模型来产生非常好的预测,一个生成式的人工智能系统,并将其用作数据,然后测试假设。

0cb055457a214be10c20209418a67b79.png

如下图所示,这是 AlphaFold 预测会折叠的蛋白质的实例,它存在内在的紊乱,真正的蛋白质不会是这样。AlphaFold 总体上是准确的,但在某些小子集中可能会出现糟糕的结果。

5d1eb253e8186164675eb71b54c16f66.png

特别是,科学家很少对他们过去研究过的所有东西感兴趣。有一些前沿知识是 AlphaFold 从未见过的新事物,这些新事物正是 AlphaFold可能不擅长的。在无法判断先验知识对错时,只是运行 AlphaFold 并得到结果。

于是我们重新进行了所有这些实验。如下图所示,x 轴表示比值比,根据统计数据,如果结果是1,则没有关联。如果大于1,则存在关联。这些数据往往含有噪声,我们在统计数据上设置了置信区间,黄色区域指的是使用 AlphaFold 的置信区间。

7b236f76ceaae431e01220bfd7bd5078.png

我们可以采用所有 2 亿个结构来计算比值比。这个数字约等于 3,置信区间分布在 3 附近。置信区间大概率将不包含 1。因此,我们认为,预测是有效的。

现在,我们尝试使用一半数据重新进行实验,通过大型蒙特卡罗实验找到另一半数据的真实值。

如上图所示,虚线代表真实值。黄色的区间根本没有包含真实值。因此,这个置信度很高的系统有很小的置信区间,但是它的预测基本是错误的。事实证明,系统正确地判断了存在关联,但原因是错误的。

你可能认为我们不应该实时使用预测,我们只会使用真实数据。所以,灰色置信区间是只使用 100,000个数据点的真实数据的情况。但这仍然不够,因为置信区间包含「1」。我们仍然无法得出任何科学结论。

现在我要展示的是一种新方法,称之为「预测驱动的推理」(Prediction Powered Inference)。 它使用纠正置信区间的机器学习系统来生成置信区间。即使机器学习系统在大多数情况下存在偏见,但我们会通过某种方式纠正实际的科学推理,这真的很重要。如上图所示,绿色的置信区间包含真实值且不包含「1」。它比根本不使用机器学习的灰色朴素区间要小得多。

假设有一些人为提供的标记数据,并且拥有 AlphaFold 等预测系统提供的大量数据。未来,通过生成式人工智能产生大量数据,通过人类标注小数据子集的标签将会成为常态。

53551eb30b869fde2943efe066b9581c.png

这看起来像是监督学习。尽管相似,但还是有所不同。如上图所示,X 为带标记的数据(例如,氨基酸序列), y 是实验室实验给出的蛋白质结构,即黄金标准。f 是 AlphaFold 的预测结果。

现在,我们有大量的生成式人工智能,它只接受输入序列 x,没有任何结构化标签,并根据 AlphaFold 进行预测。我们如何利用它们得到很小的良好置信区间?该置信区间a0560e1aa09a82c27d1df029d07654f6.png以大于 99% 的概率包含真实值。

我们正在努力将这两个想法结合在一起,以获得两全其美的效果。 

  • 案例:基因表达预测

再举一例,在分子生物学中,如果你试图将一段 DNA 放入细胞中,基因是否会表达。然后,再设计一个新的 DNA,同样看看是否能表达。我们希望模型能够对基因的表达情况进行预测。

由于没有太多数据来测试表达,我们使用计算机机器学习算法来预测表达。通过这种方法,我们将得到黄色的较窄的置信区间,该置信区间并没有包含真实值。同时,灰色的朴素置信区间包含真实值,但是却太大(也包含了「1」)。绿色的新型置信区间获得了两全其美的效果。

  • 案例:私人健康保险预测

在根据人口统计数据预测某人是否拥有私人健康保险时,需要估计收入的逻辑回归系数。我们使用机器学习模型对该系数进行预测。该模型存在极大的偏差,其置信区间非常窄,与真实值相差较远。

该结果的确定性很强,但错误程度也很大。如果这是像医学一样生死攸关的决定,就有很大风险。在此例中,经典的置信区间仍然很大,绿色的置信区间包含了真实值,但是并不太窄。这是因为他们使用了较差的机器学习算法。

我们希望的是,即使机器学习算法很糟糕,仍然可以给出一个并不精确,但是很诚实的答案。

那么我们该如何解决这个问题呢?这张幻灯片向您展示了一张幻灯片。这是一幅漂亮的图画。如果您真的想知道,请阅读我们的论文,该论文在档案中免费提供,并将在本周晚些时候发表在期刊上。

预测驱动的推理

3801e714ff8f52a689bdd7bb5b7c002c.png

「预测驱动的推理」是一个较新的思想,涉及一定统计学知识。如上图所示,9d1029cee1bcd7dbc71b03a0e9e49d88.png是真实参数。如果有无限的数据,就可以知道该参数。但是我们没有无限的数据。此外,5b91e3d0e9e3fd62bbf953b80c49ae0d.png是 AlphaFold 看过无限数据后的输出。现在,AlphaFold 存在偏见,偏差值为01421784b2d7403fe2d90445478bf4e2.png,即校正项。 

统计学家可以收集数据,获得校正项的置信区间。这样一来,就可以获得从有偏的实体到无偏的实体转变的置信区间。有了置信区间(我们称之为 R),现在要做的就是获取 AlphaFold 的样本,用所有可能的方式在置信区间内进行合理的校正。我们将校正项应用到 AlphaFold 输出,得到一个新的绿色置信区间。这样的校正可以在任何代码的输出中实现,只需大约 5 行代码。希望广大科学家能够这样做。他们应该去获取一些黄金标准。不应该简单地使用生成式人工智能来开展科学研究。

  • 凸估计问题

e730ec6633fb98cb6f335d2fec68fb64.png

通过简单的加减法,我们可以得到一个估计值和一个校正项。根据估计器的定义,期望为零。只需对其余部分进行统计,就可以得到这个置信区间。

联邦学习场景

b5c018717106a65b399527c402975be1.png

考虑多智能体环境下,智能体间机器学习算法交互的情况。在联邦学习中,我们有一个试图从手机等边缘设备收集大量数据的中央服务器。 例如,如果我们在没有大量数据的情况下他们为什么要这么做? 好吧,也许他们正在尝试构建一个大模型,就需要利用联邦学习。我们要在不需要太多带宽、保护隐私的前提下做到数据的收集和利用。在我看来,我们不仅要考虑边缘设备,还需要考虑人类。在这个集体世界中,人们出于各种自身的目的收集数据。

现在人们在手机上做各种有创意的事情。从某种程度上说,中央实体不应该承担这些功能。它需要保护隐私,应该更多地保证重视用户的数据,为用户的贡献支付费用,认可创造性行为。

事实上,大语言模型不仅在技术上不完善。从社会学上说,维基百科这样的平台包含大量的知识,人们投入了大量的工作。像 ChatGPT 这样的大型语言模型直接利用了这些知识。现在人们去 ChatGPT 提出问题并获得实际上来自维基百科的答案,而创建维基百科的人却得不到认可,也没有得到金钱回报。从经济学上说,这是很糟糕的,不会激励人们做更多这样的事情。

a0af77f8a55c419e521b9e4d60aa9709.png

我们必须考虑在边缘提供信用、资金、传播财富和利益。我们需要一个机器学习的集体模型。如上图所示,各个节点将重视他们的数据。我们需要经济意义上的与学习算法良好交互的机制。这一问题仍有待解决。

统计契约理论

契约理论是经济学中的一个主题,曾多次获得诺贝尔奖。这是一个重要的话题,但它根本不是基于数据的。它以经济学家给出的一些方程为基础,设计一系列契约。我们则试图使其成为一个自适应系统。

关于激励理论,经济学中有各种与之相关的数学方法,大量的微分方程和随机过程等。这也涉及到博弈论。博弈论是描述具有策略的智能体的数学方法,参与博弈的各方要么合作,要么竞争,并且有自己的利益。博弈中不只有一种最佳方案,存在某种合作或平衡。

通过博弈论,我们试图描述智能体交互时会发生什么。与物理学类似,博弈也存在反问题。物理学中的反问题被称为机械工程。我们想建立一个物理系统,按照我们希望的方式运作。 

同样,对于经济学,假设有一个期望的结果,例如,某种市场被创造出来,人们以某种方式获得报酬,财富以某种方式传播。我想弄清楚我可以设计怎样的博弈过程。这就是博弈论的逆过程,在经济学中被称为机制设计。 

在对称博弈中,博弈各方都是相同的,可以实现所谓的纳什均衡。反过来,就需要进行拍卖。然而,世界很少是对称的,有些人比其他人了解更多。

经济学中还有另一种均衡,称为斯塔克尔伯格均衡。合约是一种在没有统一价格的情况下考虑定价的方法。例如,当您乘坐飞机时,不同座位具有不同的价格。如果定价方式不公平,人们不会喜欢它。你需要给人们一堆选择,指出服务和相应的价格。

给每个人提供同样的服务和价格, 这是合法的。实际上,你试图让一些人购买价格更高的商品。例如,花更多的钱坐商务舱,你会得到一小杯酒,一个更大的座位,感觉非常好。

一些人选择走过商务舱,回到经济舱,他们没有小红酒或大座位,但他们付的钱少得多,他们也很高兴。航空公司同样很高兴,因为他们把飞机装满了,获得了经济收益。实际上,这是一种经济模型,可以让产品发挥作用。模型知道我们在不同的时间对不同的东西有不同的支付意愿。这就是契约理论,你可以用它来进行数学计算。 

在美国,FDA,即联邦药物管理局决定什么药物可以进入市场。进行临床试验来做出这些决定需要花费大量资金。 临床试验大约有 30,000 人参加,其中一半接受药物,另一半不接受药物。 疫苗就是这样开发的。 每个国家每年要做这件事要花费几千万美元、几亿人民币。

806b13ed8b977644ba1b2bec79e06207.png

而现有机制缺乏激励措施。首先,FDA 并不是这里唯一的参与者,FDA 只负责测试,他们不产生候选人。他们不关注新药。通常情况下,有些制药公司有能力生产新的候选药物。 

9f63eaa70d01e65490fbf321c808f307.png

制药公司知道药物的优势,但FDA根本不知道。FDA 无法要求制药公司告知药物的所有优点。这是因为制药公司想要获得有利的许可条款,他们想赚钱但不想向其他人透露他们的秘密。这是一个不对称的问题。这种不对称性并不会因为获得更多数据而消失。 

而如果药物不好,FDA保证批准的概率只有5%。这就是所谓的误报率。另一方面,如果药物效果好,他们的测试批准的概率为 80%。

58c01da293a1c9c405e97347dd6ea893.png

实际上,这种方法在某些情况下会失败。有时,利润非常微博。假设您花费了 2000 万美元进行一项试验。如果获得批准,你将赚取 2 亿美元,因此对于小市场来说,这将是一种非常小的药物。如果我不知道我的药实际上不好,那么我的预期利润将是 - 1000 万,因为大多数情况下我会被拒绝,而我仍然要为每项测试支付 2000 万美元。

所以我不会向监管机构 FDA 发送很多药物。因此,监管机构只会找到好的候选药物,并且他们有良好的统计协议。

现在,CEO可以做同样的计算,如果theta等于0,我的利润期望为 8000 万,即使这个药物在现实中没有效果,如果我将其送审至 FDA,我也会赚8000万美元。因为 5% 虽然很小,但也有成功的可能。

这是统计学与经济学的结合,涉及微观经济学、激励措施。我们必须找到一种方法将它们放入统计问题中。

为此,我们设计所谓的统计契约。博弈各方将收到这份包含四项内容的清单,并询问他们是否想参与博弈。如果你想参与博弈,首先要做的就是支付预订费,比如2000万。

de4ce0cfb62fcbff6ad726bee079315a.png

统计试验从自然界中获取随机变量 z。指的是看看这个药到底有没有作用。Z 是随机的,但你有一些证据。现在,将随机变量放入支付函数中,然后向博弈一方支付。 

然后监管者、政府收到为许可证支付的费用,它也依赖于的真实值。随着时间的推移,人们会意识到监管机构做得好不好。我们拥有让监管机构真正进行机器学习并做出受激励的良好决策的所有要素。如果没有所有这些要素,我不知道如何解决统计世界的监管问题。

无论如何,我们可以基于已有的公式进行数学计算,计算选择列表、最佳选项、预期收入,市场故障的概率。我们可以在这里取得良好的经济效益。 

在这里,激励对齐意味着在零假设下,药物根本不起作用,期望收入减去必须支付的金额小于或等于零。

我们所做的工作表明,统计与微观经济学中的契约密切相关。我们可以将其应用到联邦学习的一系列问题上,设计一些机制来激励用户提供数据。

5fa1b06aebe0cd407e18583721ce8a4f.png

除了监管,授权问题同样值得研究。Scale、亚马逊、Appen 和 Upwork等公司正在这样做。他们考虑制定合约,并营造一个健康的市场。

我认为人工智能应该被视为一个新兴的工程领域。与任何工程领域一样,它确实需要大量的工作。这并不是说我们现在有了一些可以用来做事的魔法。深度学习,大型语言模型可以做一些简单形式的推理,但我坚信人类在其他重要的方面更加聪明。人类和机器在社会环境中的整合才是有趣的,这是一项工程任务。

a1d4632d2b87c2b6154412582d7c1453.png

总结,AI不是我们现在所拥有,并试图监管的某种秘密的超级智能,而是一个新的工程领域,使我们能够以新的方式思考并构建有助于人类的新型系统。 

更多内容 尽在智源社区

相关文章:

Michael Jordan最新报告:去中心化机器学习中的契约、不确定性和激励

‍ ‍导读 11月3日,智源研究院学术顾问委员会委员、机器学习泰斗Michael Jordan在以“新一代人工智能前沿”为主题的2023北京论坛 新工科专题论坛上,发表了题为Contracts, Uncertainty, and Incentives in Decentralized Machine Learning(去…...

3ds Max渲染用专业显卡还是游戏显卡?

使用3dsmax建模时,会面临诸多选择,除了用vr还是cr的决策,硬件选择上也存在着疑问,比如用专业显卡还是消费级游戏显卡?一般来说,除非是特别专业的大型项目和软件,且预算在5位数以上,常…...

airlearning-ue4安装的踩坑记录

最近要安装airlearning-ue4,用于实现无人机仿真环境,该项目地址为:GitHub - harvard-edge/airlearning-ue4: Environment Generator for Air Learning Project. This version is build on top of UE4 game engine 由于这个项目已经完成好几年…...

uniapp优化h5项目-摇树优化,gzip压缩和删除console.log

1.摇树优化 勾选摇树优化,打包删除死代码 2.gzip压缩和删除console.log 安装插件webpack和compression-webpack-plugin webpack插件 npm install webpack4.46.0 --save-devcompression-webpack-plugin插件 npm install compression-webpack-plugin6.1.1 --save-devconst Com…...

Pycharm之配置python虚拟环境

最近给身边的人写了脚本,在自己电脑可以正常运行。分享给我身边的人,却运行不起来,然后把报错的截图给我看了,所以难道不会利用pycharm搭建虚拟的环境?记录一下配置的过程。 第一步:右键要打开的python的代…...

如何使用MybatisPlus进行数据分页显示

如何使用MybatisPlus进行数据的分页呢? 使用Mybatis Plus提供的分页插件来简化开发,在MybatisPlusInterceptor的拦截器中添加自动分页的PaginationInnerInterceptor拦截器,当前配置需要交给spring的bean管理,类上添加注解Configu…...

代码随想录 Day49 单调栈01 LeetCode LeetCodeT739每日温度 T496 下一个最大元素I

前言 折磨的死去活来的动态规划终于结束啦,今天秋秋给大家带来两题非常经典的单调栈问题,可能你不清楚单调栈是什么,可以用来解决什么问题,今天我们就来一步一步的逐渐了解单调栈,到能够灵活使用单调栈.注意以下讲解中,顺序的描述为 从栈头到栈底的顺序 什么时候用单…...

高可用--限流熔断降级

熔断 熔断是应对微服务雪崩效应的一种链路保护机制。 场景 服务端出现问题 服务指标:响应时间、错误率、连续错误数等,超过阈值出发熔断。硬件指标:CPU、网络IO、内存 目的 服务端恢复需要时间、服务端需要休息避免全调用链路崩溃&…...

win10电脑无法联网,设置IPv4,点击属性无法打开,闪退

win10设置IPv4,点击属性无法打开,闪退 问题:win10设置IPv4,点击属性无法打开,闪退 问题:win10设置IPv4,点击属性无法打开,闪退 第1步:用管理员打开cmd命令窗口,然后输入下面的命令&…...

【数据结构】邻接表与邻接矩阵的转换

一.基本思想 1.邻接矩阵转换为邻接表: 先设置一个空的邻接表,然后查找邻接矩阵的值不为零元素,找到后在邻接表的单链表对应位置加入表边节点。 2.邻接表转换为邻接矩阵: 在邻接表上顺序取出每个表边结点,将邻接矩阵…...

VR智慧景区:VR赋能文旅产业,激活消费潜能

随着国家数字化战略的不断深入实施,文旅产业数字化转型的步伐也在逐渐加快,以VR技术赋能文旅产业,让文旅景区线上线下双渠道融合,进一步呈现文化底蕴、激活消费潜能。 VR智慧景区以沉浸式、互动式、科技感的方式,将景区…...

Spring Boot EasyPOI 使用指定模板导出Excel

相信大家都遇到过,用户提出要把界面上的数据导成一个Excel,还得是用户指定的Excel格式,用原生的POI,需要自己去实现,相信是比较麻烦的,所以我们可以使用开源的EasyPOI. 先上个图,看看是不是大家…...

postgresql:记录表膨胀引起的io问题的处理

文章目录 1. io异常2.查看profile报告2.1 生成事发时间段的pgprofile2.2 查看报告 3.检查table是否膨胀4.执行vacuum full5.总结 1. io异常 iostat -x 1 20 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq…...

Windows下安装RabbitMQ

1.安装Erlang 因为RabbitMQ是用Erlang语言编写的,所以在安装RabbitMQ之前需要先安装Erlang。 如果还未安装Erlang,官方下载安装包,点击Download Windows installer下载Erlang Downloads - Erlang/OTP 下载Erlang/OTP后,双击otp的…...

广州华锐互动VRAR:利用VR开展刑事案件公安取证培训,沉浸式体验提升实战能力

随着科技的飞速发展,虚拟现实(VR)技术为我们的生活和工作带来了前所未有的便利。近年来,VR技术在刑事案件公安取证培训中的应用逐渐显现出其独特优势。通过模拟真实的犯罪现场,VR技术为学员提供了沉浸式的体验,使他们在安全的环境…...

消息消费过程

前言 本文介绍下Kafka消费过程, 内容涉及消费与消费组, 主题与分区, 位移提交,分区再平衡和消费者拦截器等内容。 消费者与消费组 Kafka将消费者组织为消费组, 消息只会被投递给消费组中的1个消费者。因此, 从不同消费组中的消费者来看, Kafka是多播(Pub/Sub)模式…...

使用Lychee搭建个人图片存储系统并进行远程访问设置实现公网访问本地私人图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站,可以看做是云存储的一部分,既可…...

12-2- DCGAN -简单网络-卷积网络

功能 随机噪声→生成器→MINIST图像。 训练方法 0 损失函数:gan的优化目标是一个对抗损失,是二分类问题,用BCELoss 1 判别器的训练,首先固定生成器参数不变,其次判别器应当将真实图像判别为1,生成图像判别为0 loss=loss(real_out, 1)+loss(fake_out, 0) 2 生成器的…...

Redis持久化策略之RDB与AOF

文章目录 1.RDB1)基本介绍2)自动触发3)手动触发4)RDB文件5)优点缺点 2.AOF1)基本介绍2)使用方式3)工作流程4)重写机制5)AOF文件6)优点缺点 3.RDB AOF 我们都知道,redis 是一个基于内存的数据库。基于内存的好处是访问速度快,缺点是“不持久”——当数据…...

Python学习笔记--初识 Python 正则表达式

初识 Python 正则表达式 正则表达式是一个特殊的字符序列,用于判断一个字符串是否与我们所设定的字符序列是否匹配,也就是说检查一个字符串是否与某种模式匹配。 Python 自 1.5 版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正…...

webAPP基础学习

###视觉基础 part-I ####1.面试中常见的像素问题 >什么是像素? *1.什么是px? px-虚拟像素,css像素的单位 px是一个相对单位,相对于设备像素而言 >相对性 a.相对于同一个设备,css像素的可变的 css像素物理像素>会受到缩放的影响 css像素缩放倍数*单个物理像…...

RIP路由信息协议

RIP路由信息协议(Routing Information Protocol) 最先得到广泛应用的协议,最大优点是简单要求网络中的每个路由器都要维护一张表,表中记录了从它自己到其他每一个目的网络的距离RIP是应用层协议,它在传输层使用UDP,RIP报文作为UD…...

kubernetes 高可用集群

目录 一、haproxy负载均衡 二、pacemaker高可用 三、部署control-plane 四、部署worker node 实验环境 主机名 IP 角色 docker 192.168.67.10 harbor k8s1 192.168.67.11 control-plane k8s2 192.168.67.12 control-plane k8s3 192.168.67.13 control-plane k8s…...

java实现插入排序

图解 以下是Java实现插入排序的代码: public class InsertionSort {public static void main(String[] args) {int[] arr {5, 2, 4, 6, 1, 3};insertionSort(arr);System.out.println(Arrays.toString(arr)); // output: [1, 2, 3, 4, 5, 6]}public static void i…...

深度学习之基于YoloV5血红细胞检测识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习已经在许多领域中得到了广泛的应用,包括医疗健康领域。其中,YOLO(You O…...

8、可视化高斯滤波器并完成高斯滤波

本节一起绘制一个可视化的高斯滤波器,同时对一个彩色图像增加高斯噪声,最后通过一个高斯滤波器对图像进行降噪处理。 就像上节说的那样,滤波不是学习重点,下面通过实操了解下原理即可。 可视化高斯滤波器 高斯滤波器符合高斯分布,并且是二维高斯分布,这一点在上一节高斯…...

Linux MMC子系统 - 5.eMMC 5.1工作模式-引导模式

By: Ailson Jack Date: 2023.11.19 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/archives/164.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。…...

2342. 数位和相等数对的最大和 --力扣 --JAVA

题目 给你一个下标从 0 开始的数组 nums ,数组中的元素都是 正 整数。请你选出两个下标 i 和 j(i ! j),且 nums[i] 的数位和 与 nums[j] 的数位和相等。 请你找出所有满足条件的下标 i 和 j ,找出并返回 nums[i] num…...

linux如何重置root密码

目录 当我们想要重置root管理员密码时,我们可以有两种方法进行: 方法一、init方法 1、重启系统,在下图所示界面按e键 2、随后进入以下界面,、将ro修改为rw,在行末尾添加init/bin/sh。​编辑 3、随后按Ctrlx启动到s…...

Java 类之 java.util.Properties

Java 类之 java.util.Properties 文章目录 Java 类之 java.util.Properties一、简介二、主要功能1、存储键值对2、读取文件与属性代码示例运行结果截图 3、设置属性并保存文件代码示例结果截图 4、遍历属性代码示例运行结果 关联博客:《基于 Java 列举和说明常用的外…...

我遇到的bug(活动)

目录 方向一:身为程序员遇到过的奔溃瞬间 方向二:如何解决遇到的奔溃瞬间 方向三:在解决完后获得的收获和体会 方向一:身为程序员遇到过的奔溃瞬间 在一个项目中,我负责实现一个复杂的图像处理算法。经过几天的努力…...

MIB 6.1810实验Xv6 and Unix utilities(3)pingpong

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题_Isana_Yashiro的博客-CSDN博客 Write a user-level program that uses xv6 system calls to ping-pong a byte between two processes over a pair of pipes, one for each direction. The parent should send a byte to…...

压力测试总共需要几个步骤?思路总结篇

在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。今天我们就来深入了解下压力测试! 1、首先,什么是压力测试&…...

03_面向对象高级_多态

多态 1. 什么是多态? “多态” 是在 “继承” 的基础上实现的一种现象,具体表现为:对象多态、行为多态。 public class HelloWorld {public static void main(String[] args) {// 1. 对象多态Human h1 new Student();Human h2 new Teach…...

【Kingbase FlySync】界面化管控平台:2.配置数据库同步之KES>KES

【Kingbase FlySync】界面化管控平台:3.配置数据库同步之KES->KES 部署KES数据库到KES数据库同步服务1.登录KFS管理平台2.开始配置数据节点信息(1)配置node1数据节点(2)配置node2数据节点 3.KFS拓扑图配置4.开始部署5.启动同步程序并查验是否运行正常 测试同步1.从node1数据…...

企业计算机服务器中了mallox勒索病毒怎么解决,勒索病毒解密文件恢复

随着科技技术的不断发展,网络技术得到了快速提升,但网络安全威胁也不断增加,近期,云天数据恢复中心陆续接到很多企业的求助信息,企业的计算机服务器遭到了mallox勒索病毒攻击,导致企业的所有业务中断&#…...

Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401

报错及修改: 报错:INFO: Can’t get Compute Engine task status.Retry… org.sonarqube.ws.connectors.ConnectionException: HTTP error: 401, msg: , query: org.apache.commons.httpclient.methods.GetMethod7a021f49 ERROR: Problem generating PD…...

storage和正则表达式

一、Storage 1.认识Storage WebStorage主要提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式: localStorage:本地存储,提供的是一种永久性的存储方法,在关闭掉网页重新打开时,存…...

【数据结构】图的广度优先遍历

一.广度优先遍历的基本思想 (1)访问顶点v; (2)依次访问v的各个未被访问的邻接点v1,v2,v3……,vk; (3)分别从v1,v2,v3……...

AM@函数展开成幂级数@间接法@常用麦克劳林幂级数展开公式

文章目录 间接法推导幂级数展开常用麦克劳林幂级数展开公式应用例例例 间接法推导幂级数展开 已知函数的幂级数展开公式间接推导其他函数幂级数 使用原始的推导公式推导函数的幂级数展开是繁琐不便的,需要分别计算各项系数 a n f ( n ) ( 0 ) n ! a_{n}\frac{f^{(n)}(0)}{n!}…...

LeetCode994.腐烂的橘子

看完题我觉得这不是和上一道岛屿的题一样简单嘛,然后写了将近2个小时才写出来,我的思路就是,用check()先对grid检查一下,是否有以下情况: (如果有1的周围都是空,则这个位置用不腐烂,…...

【开源】基于Vue和SpringBoot的康复中心管理系统

项目编号: S 056 ,文末获取源码。 \color{red}{项目编号:S056,文末获取源码。} 项目编号:S056,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…...

【音视频基础】AVI文件格式

AVI文件采用的是RIFF文件结构方式。波形音频wave,MIDI和数字视频AVI都采用这种格式存储。 AVI文件的整体结构如下图所示 构造RIFF文件的基本单元叫做数据块(Chunk),每个数据块包含3个部分 4字节的数据块标记(或者叫…...

图书馆整理I(从尾到头打印列表),剑指offer,力扣

目录 题目地址: 我们直接看题解吧: 解题方法: 难度分析: 审题目事例提示: 解题思路(辅助栈): 代码(递归): 代码(列表插入): 相似题目对…...

C++编写的多线程自动爬虫程序

目录 引言 一、程序的设计 二、程序的实现 三、程序的测试 四、优化与改进 五、代码示例 总结 引言 随着互联网的快速发展,网络爬虫程序已经成为数据采集、信息处理的重要工具。C作为一种高效的编程语言,具有高效的并发处理能力和丰富的网络编程…...

SMB信息泄露的利用

一、背景 今天分享SMB信息泄露,SMB(Server Message Block)网络通信协议,早些时候被用于Web链接和客户端与服务器之间的信息通信,现在大部分Web页面使用HTTP协议,在web领域应用较少。另一方面SMB协议还是被…...

QT自定义信号,信号emit,信号参数注册

qt如何自定义信号 使用signals声明返回值是void在需要发送信号的地方使用 emit 信号名字(参数)进行发送 在需要链接的地方使用connect进行链接 ct进行链接...

06.webpack性能优化--构建速度

优化babel-loaderhappyPackIgnorePluginparalleUglifyPluginnoParse自动刷新 1 happypack多进程打包 js单线程,开启多进程打包提高构建速度(特别是多核CPU) const HappyPack require(happypack)module.exports smart(webpackCommonConf,…...

11-15 周三 softmax 回归学习

11-15 周三 softmax 回归学习 时间版本修改人描述2023年11月15日11:17:27V0.1宋全恒新建文档 简介 softmax分享可以参考什么是softmax 回归估计一个连续值,分类预测一个离散类别。 恶意软件的判断 回归和分类 分类可以认为从回归的单输出变成多输出 B站学习 softm…...

React新手必懂的知识点

react思想:组件化开发 React 的核心概念是组件化开发,将用户界面拆分成独立的可复用组件。学习如何创建和使用 React 组件,以及组件之间的数据传递和通信是非常重要的。 React的思想就是拆分组件与使用组件。 import React from react;// 定…...