扩散模型会成为深度学习的下一个前沿领域吗?

文章目录

  • 一、说明
  • 二、 第 1 部分:了解扩散模型
    • 2.1 什么是扩散模型
    • 2.2 正向扩散
    • 2.3 反向扩散
  • 三、他们的高成本
  • 四、扩散模型的用处
  • 五、为什么扩散模型如此出色
  • 六、第 2 部分:使用扩散模型生成
    • 6.1 用于自然语言处理和 LLM 的文本扩散
    • 6.2 音频+视频生成
    • 6.3 时态数据建模
  • 七、后记

关键词:Diffusion Models

一、说明

谷歌的 AlphaFold 3 因其彻底改变生物技术的潜力而受到广泛关注。与以前的方法相比,导致其性能提升的关键创新之一是它利用了扩散模型。AlphaFold 3 的功能来自其下一代架构和训练,现在涵盖了所有生命分子。该模型的核心是我们的 Evoformer 模块的改进版本——一种深度学习架构,支撑了 AlphaFold 2 令人难以置信的性能。在处理输入后,AlphaFold 3 使用扩散网络组装其预测,类似于 AI 图像生成器中的预测。扩散过程从一团原子开始,经过许多步骤,汇聚到其最终的、最准确的分子结构上。

AlphaFold 3 对分子相互作用的预测超过了所有现有系统的准确性。作为一个以整体方式计算整个分子复合物的单一模型,它能够独特地统一科学见解。

在我们等待最终出版物的同时,我认为这将是研究扩散模型以及它们如何在几个不同领域突破界限的好时机。

本文主要分为两个“部分”。第一部分介绍了 Diffusion 的背景——

什么是机器学习中的扩散模型:扩散模型是生成模型(它们生成的数据与训练的数据相似)。 扩散模型遵循 2 个简单的步骤。首先,我们通过增量添加高斯噪声来破坏训练数据。训练包括通过逆转这个嘈杂的过程来恢复数据。一个训练有素的扩散模型可以从随机噪声池中创建我们想要的任何东西。用嵌入空间代替噪音,你可能会明白我们为什么在这里做饭。

在这里插入图片描述

  • DM的优点: 扩散模型具有 3 个主要优势,使其成为基于生成的任务的有力竞争者 - 高质量生成:扩散模型生成的数据具有卓越的质量和真实性,在许多任务中超越了以前的生成模型;多面性:它们适用于广泛的数据模态,包括图像、音频、分子等;和可控性:扩散模型提供对生成过程的一定程度的控制,允许用户根据特定要求或条件指导输出。
  • 扩散模型的缺点- 从他们的设计中可以明显看出,DM 非常昂贵。有研究可以降低他们的成本,但这仍然是DM的痛点。
  • 为什么扩散模型效果很好(我的推测)- 就其本质而言,扩散模型经过训练,可以在每个推理步骤中全面查看数据点。与 GAN 等生成器相比,Diffusion 可以分多个步骤创建输出,从而为我们提供更精细的控制(想想一次性完成任何复杂的事情是多么困难)。与自动回归(由 ChatGPT 等 LLM 使用)相比,DM 具有更大的灵活性。最后,噪声和去噪过程起着与强数据增强类似的作用,其中模型被迫为特征建立更深层次的关系。我们还可以很好地将扩散模型与其他模型链接起来,从而产生非常酷的应用程序
    在这里插入图片描述
    第 2 部分介绍了多个领域的扩散模型,以展示扩散模型的通用性。这些包括-

图像生成和处理: 这就是他们出名的原因。扩散模型在与图像相关的任务中表现出色,因为它们能够学习自然图像的复杂分布。通过逐渐去噪随机噪声,它们生成的图像具有出色的保真度和多样性,使其成为创意应用和图像恢复任务的理想选择。还有一些非常令人兴奋的研究使用扩散模型来重建医学图像。我们将涵盖所有这些内容。
音频生成和处理: 扩散模型的顺序特性使其非常适合音频生成和处理。它们可以捕获音频数据中的时间依赖关系,从而实现逼真的高质量音频合成和增强。我们也可以将两者结合起来做视频生成。
分子设计和药物发现: 扩散模型通过轻松驾驭广阔的化学空间,为分子设计提供了一种新颖的方法。他们可以学习分子结构中的潜在模式,从而能够生成具有所需特性的分子,用于制药和材料科学应用。
语言模型: 我创作这篇文章的灵感之一,Diffusion 在 NLP 和文本生成方面显示出一些前景。文本扩散可能是 LLM 的下一个前沿领域,至少对于特定类型的任务而言是这样。我们将在本文后面讨论基于自回归与扩散的文本生成的细节。
时态数据建模:扩散模型擅长处理时间序列等顺序数据。它们可以填补缺失的数据点(插补)、预测未来值(预测)并生成逼真的音频波形(波形信号处理)。
稳健的学习:扩散模型有助于构建更强大的人工智能系统。它们可以“净化”被对抗性攻击破坏的图像,消除恶意噪音并恢复原始图像。这有助于使 AI 模型更能抵御操纵。
本文的其余部分将更详细地探讨这些想法。当我们深入研究这些想法(尤其是第 2 部分)时,我觉得有必要强调一点。我的文章没有声称学术上受人尊敬或中立。像 Diffusion 这样的技术有大量的用法和相关论文可供参考。本文不是对该技术的全面概述。我与几位专家进行了交谈,查看了不同的出版物,选择了我认为最有趣/最有用的出版物,并根据它们进行写作/实验。 我错过或选择跳过了很多用例/出版物。进行研究以评估其对您的特定用例的效用。这篇文章(我的所有作品)旨在作为你自己探索这个主题的基础,而不是你问题的最终答案。
在这里插入图片描述
扩散比很多人意识到的要深得多。

7BBV — 酶:AlphaFold 3 对具有酶蛋白(蓝色)、离子(黄色球体)和单糖(黄色)以及真实结构(灰色)的分子复合物的预测。这种酶存在于土壤传播的真菌(黄萎病菌)中,这种真菌会损害多种植物。深入了解这种酶如何与植物细胞相互作用可以帮助研究人员开发更健康、更有弹性的作物。

二、 第 1 部分:了解扩散模型

如果您了解扩散模型,请跳过此部分(或向下滚动到相关小节)

2.1 什么是扩散模型

正如我们所讨论的,扩散模型基于噪声和去噪输入。虽然细节各不相同,但我们可以将基于扩散的生成归结为两个步骤——

2.2 正向扩散

我们获取数据样本,如图像,并在每一步迭代添加少量高斯噪声。这会慢慢破坏图像,直到它变成无法识别的噪点。该模型学习每一步添加的噪声模式。这对于反向过程至关重要。

在这里插入图片描述

2.3 反向扩散

我们从步骤 1 中的纯噪声开始作为输入。该模型预测前向过程中每一步添加的噪声并将其消除。这会逐渐对输入进行降噪,逐渐将其转换为有意义的数据样本。
在这里插入图片描述
冒着过于简单化的风险,我们将从这里开始。Diffusion 有很多重要的数学细节隐藏在细节中,但我认为讨论如何/为什么使用 Diffusion 来解决各种挑战更为重要。我也没有任何有见地的评论可以添加到数学/推导中。如果您对此感兴趣,请参阅 Weng 的上述文章或查看 Assembly AI 的这篇文章。
在这里插入图片描述

训练扩散模型以对 2D 瑞士轧辊数据进行建模的示例。(图片来源:Sohl-Dickstein et al., 2015)

现在,我们进入下一节。当存在其他技术时,为什么要使用扩散模型(正如您可能想象的那样,它们可能非常昂贵)?有两种方法可以回答这个问题。首先,我们将讨论为什么 DM 是好的。然后,我将推测为什么扩散比技术更有优势。

三、他们的高成本

生成过程的迭代性质涉及许多去噪步骤,需要大量的计算能力和时间,尤其是对于高分辨率数据。这使得它们对于实时应用程序或资源受限的环境不太实用,并且是一个巨大的障碍。

​为了提高DM的效率,研究人员正在探索几种途径。优化的采样技术旨在减少去噪步骤的数量,同时保持样品质量。这包括采用更智能的离散化方案,开发专为扩散量身定制的常微分方程/SDE 求解器,以及利用知识蒸馏来训练更快的采样器。

此外,探索潜在空间扩散可以通过在数据的低维表示中执行扩散过程来显着减轻计算负担。
在这里插入图片描述
最后,将 DM 与其他技术(如压缩和其他生成器)相结合以提高效率总是好的。

四、扩散模型的用处

从本质上讲,整个扩散过程为我们提供了三个优势

高品质一代:扩散模型生成的数据具有卓越的质量和真实性,在许多任务中通常超过以前的生成模型。这源于他们通过迭代去噪过程以精细方式学习底层数据分布的能力。从纯噪声到连贯数据样本的缓慢而稳定的细化产生了高度逼真的输出。
在这里插入图片描述

  • 多面性:扩散模型非常灵活,可以应用于各种数据模式,包括图像、音频、分子等。这种多功能性来自模型处理噪声的核心机制,这一概念可以应用于任何以数字方式表示的数据类型。无论是图像中的像素、声波中的振幅还是分子中的原子,扩散模型都可以学习生成和操纵它们。扩散也可以塑造成不同的用例。
  • 分步控制:扩散模型中的分步生成过程使用户能够更好地控制最终输出。与一次性产生输出的传统生成模型不同,扩散模型将生成的数据从噪声逐步细化为最终样本。这为我们提供了更大的透明度,并能够跳到中间,在新的方向上进行实验。
    好的,但为什么 DM 能像它们一样好用呢?我找不到任何具体的理论解释,所以让我们做一些理论制作。

五、为什么扩散模型如此出色

以复杂的生成任务为例,例如撰写本文。像 GAN 这样的传统生成器一次性生成所有内容。随着复杂性的增加,这变得非常困难。想想看,在画布上扔一次颜料来画一个详细的场景是多么困难。这基本上就是GAN的作用。如果你读过 JJK(你绝对应该),这与 Sukuna’s Domain 的整个“给别人水而不给他们瓶子”的解释非常相似。
这就是为什么现代文本生成器基于自动回归的原因。AR 的扩展性要好得多,这使我们的模型能够处理更复杂的任务。由于 AR 是一步一步来的,你也有能力中途停止生成或将其带入一个新的方向。这是自回归相对于传统生成器的两个优势。然而,AR模型可能会迷失在他们的酱汁中(我相信我们都有过这样的经历)。回到我们的文章示例 - 如果不非常清楚地了解您想要做什么,就很难仅使用自动完成来写出好文章。纯 AR 也会迅速退化,我们无法返回并编辑以前生成的组件(如果我逐字逐句地写一篇文章,那么我无法回到之前的段落进行重组)。

扩散具有与 AR 相同的分步优势,但有所不同。由于我们在每个时间步都对整个输入进行降噪/输入,因此 Diffusion 使我们能够更加符合上下文。这是最接近我的写作方式。我通常对我想涵盖的内容有一个模糊的想法,随着我写得更多,这个想法会越来越完善。在每一步中,我都可能会返回并修复一个更早的组件。这使得最终结果更具凝聚力。

抛开所有这些背景,让我们终于开始研究扩散模型在各种情况下的使用。

这种方法使我们能够快速学习、采样和评估具有数千层或时间步长的深度生成模型中的概率,以及在学习模型下计算条件和后验概率。

  • 使用非平衡热力学的深度无监督学习。 有趣的事实 - 物理学是扩散模型的灵感来源。 不要只研究人工智能/技术论文。 拳击你的知识只会伤害你。

六、第 2 部分:使用扩散模型生成

视觉相关任务
注意:我将在特定的图像生成/视频中省略很多细节。视觉扩散是一个巨大的领域,我将把它们分组到一般家庭中。自己看看 deets。

SDEdit 不需要针对特定任务的训练或反转,可以自然地实现真实感和忠实度之间的平衡。SDEdit 在真实度方面明显优于最先进的基于 GAN 的方法,在真实度方面高达 98.09%,在总体满意度得分方面高达 91.72%

-SDEdit:使用随机微分方程进行引导式图像合成和编辑

扩散模型显示出惊人的原始生成能力——
在这里插入图片描述
与以前的SOTA模型相比,RPG [318]在生成的图像中表现出更出色的表达复杂和组合文本提示的能力(彩色文本表示关键部分)。

但他们可以超越这一点来帮助完成以下任务——

  • 超分辨率:提高低分辨率图像的分辨率以创建更高分辨率的版本。SR3 和 CDM 等扩散模型通过迭代去噪逐渐细化图像,从而实现高质量的放大。我们之前分享了一个例子(戴帽子的猪)。
  • 编辑:扩散不仅可以用于填充图像的缺失或损坏部分。它可用于在特定部分中填写全新的部分。
    在这里插入图片描述
    来自 GLIDE 的文本条件图像修复示例。绿色区域将被擦除,模型会根据给定的提示填充它。我们的模型能够匹配周围环境的风格和照明,以产生逼真的完成。

生成式预训练:基于扩散的模型可能非常适合相关的视觉模型。
点云完成和生成:点云是对象的 3D 表示。扩散模型有助于生成和完成。“Luo et al. 2021 [173] 采取了将点云视为热力学系统中的粒子的方法,使用热浴来促进从原始分布扩散到噪声分布。同时,点体素扩散(PVD)模型[346]将去噪扩散模型与3D形状的点体素表示相结合。点扩散-细化(PDR)模型[178]使用条件DDPM从部分观测值生成粗略完成;它还在生成的点云和地面实况之间建立了逐点映射。
医学影像重建- 医学图像的获取成本很高。它们更难注释,因为只有专业人士才能做到这一点。(尽管你很爱我,但你可能不希望我看你的X光片来告诉你你的骨骼是否状况良好)。DM在重建医学图像方面显示出巨大的前景。
稳健的学习: 扩散模型可用于通过添加噪声和重建干净版本来净化对抗性示例,从而减轻对抗性扰动的影响。 我们还可以基于扩散的预处理步骤来增强模型对对抗性攻击的鲁棒性。
在这里插入图片描述
异常检测: 扩散模型可用于识别图像中不寻常或意外的模式。“这些方法可能比基于对抗性训练的替代方案表现更好,因为它们可以通过有效的采样和稳定的训练方案更好地对较小的数据集进行建模。
在这里插入图片描述

6.1 用于自然语言处理和 LLM 的文本扩散

我一直在为一些客户研究很多大型上下文长度的 RAG,这时我遇到了“文本扩散模型的迁移学习”。本报告希望“看看是否可以通过我们称之为’AR2Diff’'的轻量级适应程序将预训练的AR模型转换为文本扩散模型”。
在这里插入图片描述
我们的 AR2Diff 方法的图示。1)使用因果注意预训练AR解码器。2) 继续预训练作为具有双向注意力的扩散模型。3)在最终任务上微调为扩散模型

虽然文本扩散在机器翻译中落后,但它在代码合成和问答方面显示出前景,甚至优于自回归模型。这些发现表明,对于长文本来说,文本扩散速度更快,值得进一步探索。
在这里插入图片描述
各种模型在三个任务和三种大小中的性能,比较:(i) AR 基线,(ii) 扩散基线,以及 (iii) AR2Diff 模型,这些模型通过扩散训练调整预训练 AR 基线 N 步,然后使用扩散进行微调,N ∈ {0, 10K, 100K}。

Microsoft的GENIE在论文“Text generation with diffusion language models: a pre-training approach with continuous paragraph denoise”中介绍,是另一个有趣的LLM扩散示例。

GENIE是一个大规模的预训练扩散语言模型,由编码器和基于扩散的解码器组成,可以通过将随机噪声序列逐渐转换为连贯的文本序列来生成文本。…我们的实验结果表明,GENIE在这些基准测试上实现了与最先进的自回归模型相当的性能,并生成了更多样化的文本样本。

我不知道是不是只有我一个人,但 Text Diffusion 似乎充当了基于黑白编码器和解码器的桥接 LM。这就是为什么我对他们的潜力感到特别兴奋。

6.2 音频+视频生成

许多高质量的音频和视频发生器也依赖于扩散模型。DM在文本音频生成方面掀起了波澜:“Grad-TTS [215]提出了一种新颖的文本到语音模型,具有基于分数的解码器和扩散模型。它逐渐变换编码器预测的噪声,并通过单调对齐搜索方法进一步与文本输入对齐[219]。Grad-TTS2 [136] 以自适应方式改进了 Grad-TTS。Diffsound [310] 提出了一种基于离散扩散模型 [6, 254] 的非自回归解码器,该解码器预测每个步骤中的所有 mel-spectrogram 标记,然后在以下步骤中细化预测标记。EdiTTS [267] 利用基于分数的文本转语音模型来完善经过粗略修改的 mel-spectrogram 先验。ProDiff[109]没有估计数据密度的梯度,而是通过直接预测干净的数据来参数化去噪扩散模型。

基于 DM 的视频编辑器也很受欢迎,像 Imagen 这样的大牌非常有名。

6.3 时态数据建模

时间序列插补:对于基于时间序列的数据来说,丢失数据可能是一个巨大的威胁。考虑到他们的训练方式,DM 可以处理 TS 的数据插补也就不足为奇了。CSDI公司 利用基于分数的扩散模型,以自我监督的方式进行训练,以捕获时间相关性,以实现有效的时间序列插补。“与现有的基于分数的方法不同,条件扩散模型是针对插补进行明确训练的,可以利用观测值之间的相关性。 在医疗保健和环境数据方面,CSDI 在流行绩效指标上比现有的概率插补方法提高了 40-65%。此外,与最先进的确定性插补方法相比,CSDI的确定性插补可将误差降低5-20%。此外,CSDI还可以应用于时间序列插值和概率预测,并且与现有基线相比具有竞争力。
在这里插入图片描述

时间序列预测:预测时间序列中的未来值,这对于各种预测任务很重要。以 TimeGrad 为例,这是一种自回归模型,它采用扩散概率模型来估计数据分布的梯度。作者表明,这种方法“是一种新的最先进的多变量概率预测方法,适用于具有数千个相关维度的真实世界数据集。

在这里插入图片描述

六个真实世界数据集上模型的测试集 CRPSsum 比较(越低越好)。通过重新训练和评估 10 次获得的 TimeGrad 的平均和标准误差指标。

如您所见,扩散模型不仅仅是简单的图像生成器。它们在材料设计和药物发现方面也有其他用途,但我将在专门针对这些主题的特别文章中介绍它们(我们有专门介绍用于药物发现、芯片设计、材料开发等的人工智能的文章正在开发中)。如果你想让我把它们中的任何一个推到上面,给我发个信息。否则——放轻松,继续工作,我很快就会抓住你们。和平。

七、后记

如果您喜欢这篇文章并希望分享它,请参阅以下指南。
这件作品就是这样。感谢您抽出宝贵时间。与往常一样,如果您有兴趣与我合作或查看我的其他作品,我的链接将位于此电子邮件/帖子的末尾。如果你在这篇文章中发现了价值,我将不胜感激你与更多的人分享。正是像您这样的口碑推荐帮助我成长。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【APP移动端自动化测试】第一节.环境配置和adb调试工具

文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名,界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…

空间搜索geohash概述;redis的geo命令

概述 通常在一些2C业务场景中会根据用户的位置来搜索一些内容。通常提供位置搜索的都是直接通过redis/mongodb/es等中间件实现的。 但是这些中间件又是怎么实现位置搜索的呢; 查了一番资料,发现背后一个公共的算法Geohash。 搜索的时候可以根据距离对…

「C系列」C 指针及其应用案例

文章目录 一、C 指针1. 指针的定义2. 指针的初始化3. 指针的解引用4. 指针的运算5. 动态内存分配6. 指针的NULL初始化7. 指针作为函数参数和返回值8. 指针数组和数组指针9. 多级指针 二、C语言中有哪些内置的指针操作符三、常见应用案例1. 交换两个变量的值2. 数组与指针3. 字符…

SwiftUI中自定义Shape与AnimateableData的使用

上一篇文章主要介绍了一下在SwiftUI中如何自定义Shape,本篇文章主要介绍Shape中的 一个关键的属性AnimatableData,它用于定义可以被动画化的数据。通过实现 Animatable 协议,可以让自定义视图或图形响应动画变化。 AnimatableData 是 Animata…

flutter 环境搭建(windows)(先装 jdk 建议1.8起步)

1:先从 官网 下载一个合适版本的SDK 2:下载完成之后 解压到一个合适的盘符下面(本文在 D 盘 3.10.0版本) 3;双击 flutter_console.bat文件可以看到一些基本信息 4:配置环境 1.添加用户变量 FLUTTER_STORAGE…

DSSA(Domain-Specific Software Architecture)方法论

DSSA(Domain-Specific Software Architecture)方法论是一种针对特定问题领域的软件架构设计方法。在软件开发中,有些问题在特定领域是共通的,这些问题可以通过通用的抽象和解决方案来处理。DSSA方法论正是利用这一特点&#xff0c…

Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求 有一个form是通过v-for生成出来的&#xff0c;并且数量不确定&#xff0c;每个表单中的字段都需要做校验&#xff0c;就将自己的解决方法记录了下来。 完整代码如下 <template><div class"for-form"><el-button type&quo…

Class-Aware Self-Distillation for Remote SensingImage Scene Classification

这篇文章提出了一种新的蒸馏方式&#xff0c;由于遥感场景图像具有类间相似性和类内多样性的特点&#xff0c;这篇文章试图解决这个问题。通过三个共享权重的分支&#xff0c;同时输入三张图片&#xff0c;其中两张类别相同的图片&#xff0c;一张类别不同但地物特征相似的图片…

AcWing 477:神经网络 ← 拓扑排序+链式前向星

【题目来源】https://www.acwing.com/problem/content/479/【题目描述】 人工神经网络&#xff08;Artificial Neural Network&#xff09;是一种新兴的具有自我学习能力的计算系统&#xff0c;在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。 对神经网络的研究…

179.二叉树:合并二叉树(力扣)

代码解决 /*** 二叉树节点的定义。* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, Tre…

记录在京东云ICP备案全流程,适用于网站备案和APP备案

记录一下在京东云ICP备案全流程&#xff0c;本文适用用于网站域名备案和APP备案&#xff0c;域名备案和APP备案其实差不多&#xff0c;就是服务类型选择网站或APP的区别&#xff0c;阿腾云整理详细京东云服务器备案全流程&#xff0c;大家可以收藏下&#xff0c;非常详细的备案…

爬虫相关面试题

一&#xff0c;如何抓取一个网站&#xff1f; 1&#xff0c;去百度和谷歌搜一下这个网站有没有分享要爬取数据的API 2, 看看电脑网页有没有所需要的数据&#xff0c;写代码测试调查好不好拿&#xff0c;如果好拿直接开始爬取 3&#xff0c;看看有没有电脑能打开的手机网页&a…

Unity与Js通信交互

目录 1.Js给Unity传递消息 2.Unity给Js传递消息 简介: Unity 与 JavaScript 通信交互是指在 Unity 项目中实现与 JavaScript 代码进行数据交换和功能调用的过程。 在 Unity 中&#xff0c;可以通过特定的接口和技术来与外部的 JavaScript 环境进行连接。这使得 Unity 能够利…

怎么修改Visual Studio Code中现在github账号

git config --global user.name “你的用户名” git config --global user.email “你的邮箱” git config --global --list git push -u origin your_branch_name git remote add origin

鸿蒙轻内核A核源码分析系列五 虚实映射(2)虚实映射初始化

2、 虚拟映射初始化 在文件kernel/base/vm/los_vm_boot.c中的系统内存初始化函数OsSysMemInit()会调用虚实映射初始化函数OsInitMappingStartUp()。该函数代码定义在文件arch/arm/arm/src/los_arch_mmu.c&#xff0c;代码如下。⑴处函数使TLB失效&#xff0c;清理虚实映射缓存…

基于STM32的简易智能家居设计(嘉立创支持)

一、项目功能概述 1、OLED显示温湿度、空气质量&#xff0c;并可以设置报警阈值 2、设置4个继电器开关&#xff0c;分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统&#xff0c;可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…

在k8s中部署Elasticsearch高可用集群详细教程

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Elasticsearch简介 2、为什么在k8s中部署elasti…

计算机毕业三年的我,辞职两次后找不到工作回家,此时是真的羡慕有手艺在手的人

栀子花香&#xff0c;弥漫在空气中&#xff0c;却掩盖不了内心的苦涩。 半年&#xff0c;两份工作&#xff0c;两次裸辞&#xff0c;我&#xff0c;又成了一个身无分文的“废人”。 曾经&#xff0c;我也是人人羡慕的互联网人&#xff0c;月薪6K&#xff0c;过着“955”的“神…

LeetCode | 27.移除元素

这道题的思路和26题一模一样&#xff0c;由于要在元素组中修改&#xff0c;我们可以设置一个index表示目前要修改原数组的第几位&#xff0c;由于遍历&#xff0c;访问原数组永远会在我们修改数组之前&#xff0c;所以不用担心数据丢失的问题&#xff0c;一次遍历数组&#xff…

别再忽视数组排序的重要性了

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…