什么是人工智能?人工智能、机器学习、深度学习三者之间有什么关系吗?

news2024/11/25 0:41:13

深度学习是机器学习的一个分支。深度学习是机器学习的一部分,与机器学习的其他分支学科,以及统计学、人工智能等学科都有着紧密的联系。深度学习、机器学习、人工智能、统计学之间的关系如图1-4所示。

图1-4 深度学习、机器学习、人工智能、统计学之间的关系

在实际应用中,深度学习在机器翻译、语音转文字、推荐系统、数据挖掘,以及其他相关领域都取得了非常好的效果。这些任务都具有同样的特征:输入数据到模型中,然后得到输出数据,如图1-5所示。

图1-5 任务同样的特征

深度学习与传统机器学习算法的区别

深度学习与传统机器学习算法最大的不同点在于深度学习可以实现自动特征学习。传统机器学习算法通常需要人工设计,计算数据特征,才能实现较好的预测效果;深度学习基于多层的网络结构,可以自主地学习输入数据的特征,最终得到很好的效果。深度学习与传统机器学习算法的区别如图1-6所示。

图1-6 深度学习与传统机器学习算法的区别

什么是特征学习呢?特征学习是表达输入数据的方式。例如,在判断垃圾邮件的例子中,其最初始的数据是电子邮件,把电子邮件的信息用单词出现的频率表示,并得到表1-2,这就是特征学习。在这个例子中,该过程是人工完成的。也就是说,为了使用传统机器学习算法,我们需要把电子邮件信息表达成表1-2所示的形式,然后把数据输入模型中。

另外,直接以电子邮件(可能需要一些简单处理)作为输入数据,深度学习模型便可以自动地学习电子邮件蕴含的信息作为特征,然后根据自动学习的特征判断电子邮件是否为垃圾邮件。

深度学习是通向人工智能的途径之一。具体来说,它是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。我们坚信机器学习可以构建出在复杂实际环境下运行的AI系统,并且是唯一切实可行的方法。深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽象概括到高级抽象表示)。图1.4说明了这些不同的AI学科之间的关系。图1.5展示了每个学科如何工作的高层次原理。

图1.4 维恩图展示了深度学习既是一种表示学习,也是一种机器学习,可以用于许多(但不是全部)AI方法。维恩图的每个部分包括一个AI技术的实例

机器学习,它既是人工智能的一个分支,也是人工智能的一种方法。虽然深度学习是机器学习的一个子集,但令人眼花缭乱的算法和应用程序集让人很难评估深度学习的具体成分。这就像试图确定制作披萨所需的配料一样困难,因为几乎每种成 分都是可以替代的。

机器学习可以使用数据来学习输入和输出之间的转换,例如在语音识别中将音 频转换为文本。在这样做时,通常需要以适合算法的方式表示数据,以便将这种表示转换为输 出。深度学习是“深度”的,模型学习了许多“层”之间的转换,每一层提供一个层次的表示。 例如,靠近输入的层可以表示数据的低层细节,而接近分类输出的层可以表示用于区分的更抽 象的概念。由于表示学习(representation learning)的目的是寻找表示本身,因此深度学习可 以称为“多层表示学习”。

什么是人工智能

我们声称人工智能很有趣, 但是我们还没有描述它是什么。历史上研究人员研究过几种 不同版本的人工智能。有些根据对人类行为的复刻来定义智能, 而另一些更喜欢用“理性” (rationality)来抽象正式地定义智能,直观上的理解是做“正确的事情”。智能主题的本身也各 不相同:一些人将智能视为内部思维过程和推理的属性,而另一些人则关注智能的外部特征, 也就是智能行为 。a

从人与理性 b 以及思想与行为这两个维度来看,有 4 种可能的组合,而且这 4 种组合都有 其追随者和相应的研究项目。他们所使用的方法必然是不同的:追求类人智能必须在某种程度 上是与心理学相关的经验科学,包括对真实人类行为和思维过程的观察和假设;而理性主义方 法涉及数学和工程的结合,并与统计学、控制理论和经济学相联系。各个研究团体既互相轻视 又互相帮助。接下来,让我们更细致地探讨这 4 种方法。

1.1.1 类人行为:图灵测试方法

图灵测试(Turing test)是由艾伦 ·图灵(Alan Turing)提出的(Turing, 1950),它被设计 成一个思维实验,用以回避“机器能思考吗? ”这个哲学上模糊的问题。如果人类提问者在提 出一些书面问题后无法分辨书面回答是来自人还是来自计算机,那么计算机就能通过测试。在第 27 章中,我们会讨论图灵测试的细节,以及一台通过图灵测试的计算机是否真的具备智能。目前, 为计算机编程使其能够通过严格的应用测试尚有大量工作要做。计算机需要具备下列能力: • 自然语言处理(natural language processing),以使用人类语言成功地交流; • 知识表示(knowledge representation),以存储它所知道或听到的内容; • 自动推理(automated reasoning),以回答问题并得出新的结论; • 机器学习(machine learning),以适应新的环境,并检测和推断模式。 图灵认为,没有必要对人进行物理模拟来证明智能。然而,其他研究人员提出了完全图灵 测试 (total Turing test),该测试需要与真实世界中的对象和人进行交互。为了通过完全图灵测 试,机器人还需要具备下列能力:

• 计算机视觉(computer vision)和语音识别功能,以感知世界;

• 机器人学(robotics),以操纵对象并行动。

以上 6 个学科构成了人工智能的大部分内容。然而,人工智能研究人员很少把精力用在通 过图灵测试上,他们认为研究智能的基本原理更为重要。当工程师和发明家停止模仿鸟类,转 而使用风洞并学习空气动力学时,对“人工飞行”的探索取得了成功。航空工程学著作并未将 其领域的目标定义为制造“能像鸽子一样飞行,甚至可以骗过其他真鸽子的机器。”

1.1.2 类人思考:认知建模方法

我们必须知道人类是如何思考的,才能说程序像人类一样思考。我们可以通过 3 种方式了 解人类的思维:

• 内省(introspection)——试图在自己进行思维活动时捕获思维;

• 心理实验(psychological experiment)——观察一个人的行为;

• 大脑成像(brain imaging)——观察大脑的活动。

一旦我们有了足够精确的心智理论,就有可能把这个理论表达为计算机程序。如果程序的 输入/输出行为与相应的人类行为相匹配,那就表明程序的某些机制也可能在人类中存在。

例如,开发通用问题求解器(General Problem Solver,GPS )的艾伦 ·纽厄尔(Alan Newell) 和赫伯特 ·西蒙(Herbert Simon )并不仅仅满足于让他们的程序正确地求解问题,他们更关 心的是将推理步骤的顺序和时机与求解相同问题的人类测试者进行比较(Newell and Simon, 1961)。认知科学(cognitive science)这一跨学科领域汇集了人工智能的计算机模型和心理学 的实验技术,用以构建精确且可测试的人类心智理论。

认知科学本身是一个引人入胜的领域,值得多本教科书和至少一部百科全书(Wilson and Keil, 1999)来介绍。我们会偶尔评论人工智能技术和人类认知之间的异同,但真正的认知科 学必须建立在对人类或动物实验研究的基础上。这里,我们假设读者只有一台可以做实验的计 算机,因此我们将把这方面的内容留给其他书籍。

在人工智能发展的早期,这两种方法经常会混淆。有作者认为,如果算法在某个任务中表 现良好,就会是建模人类表现的良好模型,反之亦然。而现代作者将这两种主张分开,这种区 分使人工智能和认知科学都得到了更快的发展。这两个领域相互促进,值得一提的是计算机视觉领域,它将神经生理学证据整合到了计算模型中。最近,将神经影像学方法与分析数据的机 器学习技术相结合,开启了“读心”能力(即查明人类内心思想的语义内容)的研究。这种能 力反过来可以进一步揭示人类认知的运作方式。

1.1.3 理性思考:“思维法则”方法

希腊哲学家亚里士多德是最早试图法则化“正确思维”的人之一,他将其定义为无可辩驳的 推理过程。他的三段论(syllogism)为论证结构提供了模式,当给出正确的前提时,总能得出正确 的结论。举个经典的例子, 当给出前提苏格拉底是人和所有人都是凡人时, 可以得出结论苏格拉 底是凡人。[这个例子可能是塞克斯都 ·恩披里柯(Sextus Empiricus)提出的而不是亚里士多德提 出的。]这些思维法则被认为支配着思想的运作,他们的研究开创了一个称为逻辑(logic)的领域。

19 世纪的逻辑学家建立了一套精确的符号系统, 用于描述世界上物体及其之间的关系。 这与普通算术表示系统形成对比,后者只提供关于数的描述。到 1965 年,任何用逻辑符号描 述的可解问题在原则上都可以用程序求解。人工智能中所谓的逻辑主义(logicism)传统希望 在此类程序的基础上创建智能系统。

按照常规的理解,逻辑要求关于世界的认知是确定的,而实际上这很难实现。例如,我们 对政治或战争规则的了解远不如对国际象棋或算术规则的了解。概率 (probability)论填补了 这一鸿沟,允许我们在掌握不确定信息的情况下进行严格的推理。原则上,它允许我们构建全 面的理性思维模型,从原始的感知到对世界运作方式的理解,再到对未来的预测。它无法做到 的是形成智能行为。为此,我们还需要关于理性行为的理论,仅靠理性思考是不够的。

1.1.4 理性行为:理性智能体方法

智能体 (agent)就是某种能够采取行动的东西(agent 来自拉丁语 agere,意为“做”)。当 然, 所有计算机程序都可以完成一些任务, 但我们期望计算机智能体能够完成更多的任务: 自主运行、感知环境、长期持续存在、适应变化以及制定和实现目标。理性智能体(rational agent)需要为取得最佳结果或在存在不确定性时取得最佳期望结果而采取行动。

基于人工智能的“思维法则”方法重视正确的推断。做出正确推断有时是作为理性智能体 的一部分,因为采取理性行为的一种方式是推断出某个给定的行为是最优的,然后根据这个结 论采取行动。但是,理性行为的有些方式并不能说涉及推断。例如,从火炉前退缩是一种反射 作用,这通常比经过深思熟虑后采取的较慢的动作更为成功。

通过图灵测试所需的所有技能也使智能体得以采取理性行为。知识表示和推理能让智能体 做出较好的决策。我们需要具备生成易于理解的自然语言句子的能力,以便在复杂的社会中生 存。我们需要学习不仅是为了博学多才,也是为了提升我们产生高效行为的能力,尤其是在新 环境下,这种能力更加重要。

与其他方法相比,基于人工智能的理性智能体方法有两个优点。首先,它比“思维法则” 方法更普适,因为正确的推断只是实现理性的几种可能机制之一。其次,它更适合科学发展。 理性的标准在数学上是明确定义且完全普适的。我们经常可以从这个标准规范中得出可以被证明 能够实现的智能体设计,而把模仿人类行为或思维过程作为目标的设计在很大程度上是不可能的。

由于上述这些原因,在人工智能领域的大部分历史中,基于理性智能体的方法都占据了上 风。在最初的几十年里,理性智能体建立在逻辑的基础上,并为了实现特定目标制定了明确的 规划。后来,基于概率论和机器学习的方法可以使智能体在不确定性下做出决策,以获得最佳期望结果。简而言之,人工智能专注于研究和构建做正确的事情的智能体,其中正确的事情 是我们提供给智能体的目标定义。这种通用范式非常普遍,以至于我们可以称之为标准模型 (standard model)。它不仅适用于人工智能,也适用于其他领域。控制理论中,控制器使代价函 数最小化;运筹学中,策略使奖励的总和最大化;统计学中,决策规则使损失函数最小;经济 学中,决策者追求效用或某种意义的社会福利最大化。

然而在复杂的环境中,完美理性(总是采取精确的最优动作)是不可行的,它的计算代价 太高了,因此需要对标准模型做一些重要的改进。第 5 章和第 17 章会探讨有限理性(limited rationality)的问题,也就是在没有足够时间进行所有可能的计算的情况下,适当地采取行动。 但是,完美理性仍然是理论分析的良好出发点。

1.1.5 益机 a

自标准模型被提出以来,其一直是人工智能研究的指南,但从长远来看,它可能不是一个 正确的模型,原因是标准模型假设我们总是为机器提供完全指定的目标。

人为定义的任务,如国际象棋或最短路径计算之类的,都附带固有的目标,因此标准模型 是适用的。然而,在真实世界中,我们越来越难以完全正确地指定目标。例如,在设计自动驾 驶汽车时,我们可能会认为目标是安全到达目的地。但是,由于存在其他司机失误、设备故障 等原因,在任何道路上行驶都有可能受伤,因此,严格的安全目标是要求待在车库里而不要上 路驾驶。向目的地前进和承担受伤风险是需要权衡的,应该如何进行这种权衡?此外,我们能 在多大程度上允许汽车采取会惹恼其他司机的行动?汽车应该在多大程度上调控其加速、转向 和刹车动作,以避免摇晃乘客?这类问题很难预先回答。在人机交互的整个领域,这些问题尤 其严重,自动驾驶只是其中一个例子。

在我们的真实需求和施加给机器的目标之间达成一致的问题称为价值对齐问题(value alignment problem),即施加给机器的价值或目标必须与人类的一致。如果我们在实验室或模 拟器中开发人工智能系统(就像该领域的大多数历史案例一样),就可以轻松地解决目标指定 不正确的问题:重置系统、修复目标然后重试。随着人工智能的发展,越来越强大的智能系统 需要部署在真实世界中,这种方法不再可行。部署了错误目标的系统将会导致负面影响,而 且,系统越智能,其负面影响就越严重。

回想看似没有问题的国际象棋案例,想象一下,如果机器足够智能,可以推断并采取超出 棋盘限制的动作,会发生什么。例如,它可能试图通过催眠或勒索对手,或贿赂观众在对手思 考时发出噪声等手段来增加获胜的机会。b 它也可能会为自己劫持额外的计算能力。这些行为 不是“愚蠢”或“疯狂”的,这些行为是将获胜定义为机器唯一目标的逻辑结果 。

一台实现固定目标的机器可能会出现很多不当行为,要预测所有不当行为是不可能的。因此,我们有足够理由认为标准模型是不充分的。我们不希望机器“聪明”地实现它们的目标,而是希望它们实现我们的目标。如果我们不能将这些目标完美地传达给机器,就需要一个新的表述,也就是机器正在实现我们的目标,但对于目标是什么则是不确定的。当一台机器意识到它不了解完整的目标时,它就会有谨慎行动的动机,会寻求许可,并通过观察来更多地了解我们的偏好,遵守人为控制。最终,我们想要的是对人类可证益的(provablybeneficial)智能体。

什么是机器学习?

机器学习的英文词组(machine learning)于1960年前后首次提出,该术语由两个单词组成——机器和学习,机器是指计算机、机器人或其他设备,学习是指人类所擅长的一种活动或事件模式。

那么,我们为什么需要机器学习呢?我们为什么想让机器像人那样去学习呢?因为很多问题会牵扯到大型数据集或复杂的计算,对于这种问题,最好让计算机来完成所有的工作。一般而言,计算机和机器人不会疲倦,无须睡觉,而且成本也许还更低。还有一种新兴的思想流派,名为主动学习(active learning)或人类参与的学习(human-in-the-loop),它倡导将懂得学习的机器和人的成果结合起来。该思想认为有些枯燥的例行工作更适合用计算机处理,创造性任务则更适合交由人处理。根据这种理念,机器按照人设计的规则(或算法)去学习,并完成本期望由人完成的重复性的任务和某些逻辑推理任务。

机器学习不涉及使用业务规则的传统类型的编程。有一个广为流传的说法,说世界上大部分代码要处理的简单规则,很可能已用Cobol语言实现,这些Cobol代码覆盖了大部分的可能的职员的交互场景。既有此先例,我们为何不雇佣很多软件程序员,继续编写代码,实现新规则?

原因之一是随着时代的发展,定义、维护和更新规则的成本越来越高。一项活动或事件,可能的模式也许数不胜数,因而穷尽所有情况不现实。动态发展、一直处于变化中或实时演进的事件,为其编写规则的难度更大。而开发学习规则或算法,让计算机从海量数据中学习、抽取模式和理解数据之间的关系则更简单,效率更高。

另一个原因是数据量呈指数级增长。如今,文本、音频、图像和视频数据的洪流滚滚而来,我们难以洞察它们。物联网(Internet of Things,IoT)是最近发展起来的一种新型因特网,它要打通日常生活所用的各种设备。物联网将把家用设备和自动驾驶汽车的数据推至数据处理的前沿阵地。当今,一般公司大多数职员是活生生的人,但也不全是,比如社交媒体公司往往拥有很多机器人账号。该趋势很可能会持续下去,机器人越来越多,它们之间的沟通也会多起来。不仅是数量,数据的质量在过去几年随着存储价格的下降也在不断提升。这些因素为机器学习算法和数据驱动的解决方案的演进,提供了强有力的支持。

什么是深度学习

深度学习指训练一个神经网络,该网络包括两个以上非输出层。在过去,随着网络层数的增加,训练也越来越困难。由于训练网络参数需要使用梯度下降法,随之而来的两个主要挑战有梯度爆炸(exploding gradient)和梯度消失(vanishing gradient)。

相比之下,梯度爆炸问题较容易解决。简单的办法有梯度剪裁(gradient clipping)以及L1或L2正则化等。梯度消失问题则持续困扰了我们几十年。

那么,什么是梯度消失?它又是怎么造成的呢?一般情况下,我们使用一种反向传播(backpropagation)算法更新神经网络参数。反向传播使用链式法则,可以很高效地计算神经网络的梯度。在第4章中,我们已经介绍过如何使用链式法则计算一个复杂函数的偏导数。在梯度下降的每次迭代中,网络参数的更新与成本函数对当前参数的偏导数成正比。问题在于,有时候梯度会小到接近于零,造成一些参数的值不再改变。在最坏的情况下,神经网络完全无法继续训练。

传统的激活函数,如之前我们提到的双曲正切函数,其梯度的值域是(0,1)。反向传播通过链式法则计算梯度。在一个n层网络中,计算前几层(最左边)的梯度需要将n个很小的值相乘。可想而知,梯度随着n增加呈指数级减小。结果造成前几层的训练非常缓慢,甚至停滞不前。

好消息是,现代的算法实现允许我们高效地训练非常深的神经网络(高达几百层)。这得益于多种技术进步的结合,包括ReLU、LSTM(以及其他门控单元,我们下面会介绍)。其他方法还有残差神经网络(residual neural network)中的跳层连接(skip connection),以及对梯度下降算法的高级改进。

如今,梯度消失和爆炸等问题已经在很大程度上得到有效解决(或影响较小)。“深度学习”一词特指使用现代的算法和数学工具训练神经网络,而无关网络深度。在实践中,很多实际业务问题可以由输入层与输出层之间只有两三层的神经网络解决。我们将既不是输入层也不是输出层的网络层称为隐藏层(hidden layer)。

总结来说,人工智能、机器学习和深度学习三者之间有着紧密的关系,它们之间的技术范畴是逐层递减的。人工智能是最宽泛的概念,机器学习是实现人工智能的一种有效方法,而深度学习则是机器学习算法中的一个重要分支。这三者共同推动着人工智能领域的发展,并在实际应用中发挥着重要作用。

相关书籍推荐

  • 《人工智能:现代方法》(第4版)是人工智能领域的经典之作,深入地探讨了人工智能(AI)领域的理论和实践,以统一的风格将当今流行的人工智能思想和术语融合到引起广泛关注的应用中,真正做到理论和实践相结合。全书分7个部分,共28章,理论部分介绍了人工智能研究的主要理论和方法并追溯了两千多年前的相关思想,内容主要包括逻辑、概率和连续数学,感知、推理、学习和行动,公平、信任、社会公益和安全;实践部分完美地践行了“现代”理念,实际应用选择当下热度较高的微电子设备、机器人行星探测器、拥有几十亿用户的在线服务、AlphaZero、人形机器人、自动驾驶、人工智能辅助医疗等。本书适合作为高等院校人工智能相关专业本科生和研究生的教材,也可以作为相关领域专业人员的参考书。
  • 《动手学机器学习》,本书系统介绍了机器学习的基本内容及其代码实现,是一本着眼于机器学习教学实践的图书。
    本书包含4个部分:第一部分为机器学习基础,介绍了机器学习的概念、数学基础、思想方法和简单的机器学习算法;第二部分为参数化模型,讲解线性模型、神经网络等算法;第三部分为非参数化模型,主要讨论支持向量机和决策树模型及其变种;第四部分为无监督模型,涉及聚类、降维、概率图模型等多个方面。本书将机器学习理论和实践相结合,以大量示例和代码带领读者走进机器学习的世界,让读者对机器学习的研究内容、基本原理有基本认识,为后续进一步涉足深度学习打下基础。
  • 《深度学习》这本书,由全球知名的三位专家IanGoodfellow、YoshuaBengio和AaronCourville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云安全在金融领域的作用是什么?

云安全在金融领域发挥着至关重要的作用,使金融机构能够保护敏感数据、遵守监管要求并推动创新。通过实施强有力的安全措施、利用先进技术并对新出现的威胁保持警惕,金融机构可以保护其数字资产并维持客户的信任。 金融机构面临的挑战 1.缺乏全网数据支撑…

再探Java为面试赋能(二)Java基础知识(二)反射机制、Lambda表达式、多态

文章目录 前言1.4 反射机制1.4.1 Class对象的获取1.4.2 Class类的方法1.4.3 通过反射机制修改只读类的属性 1.5 Lambda表达式1.5.1 函数式接口1.5.2 Lambda表达式的使用 1.6 多态1.6.1 多态的概念1.6.2 多态的实现条件1.6.3 重载(Overload)和重写&#x…

Java入门-数组

数组 什么是数组 数组( array )是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。 数组的内存结构是分配一系列内存大小相等的连续空间。 …

ESP32cam 摄像头 AIcam 全球远程视频监控的实现方法

AIcam远程视频监控 ​ 在学习应用各种物联网创客场景时我们时常会用到远程视频监控,当然我们可以通过发送图片的方式的来远程查看,但如果能视频查看将会更加的生动,比如在公司查看家里宠物的动态,鱼儿的活动情况。。。。。。 这个…

illustrator编组后透明图形也能挡住后面的不透明图形的问题

今日学习使用illustrator,使用3D中的突出和斜角生成了一个圆柱体之后,扩展图形,修改之后发现一个奇怪的问题,编组中的透明物体挡住了后面的图形(后面的图形是有颜色的) 后面发现,原来是扩展生成…

在 Amazon Bedrock 上使用 Mistral Large 处理复杂的推理任务

上个月,我们宣布两款高性能的 Mistral AI 模型(即 Mistral 7B 和 Mixtral 8x7B)已在 Amazon Bedrock 上线。作为 Mistral 的首个基础模型,Mistral 7B 支持英语文本生成任务,并具备自然编码能力;Mixtral 8x7…

oj赛(双周赛第二十四次)

目录 1. 八大藤校2025fall标化要求已全部出炉 2. 上海“2024人才储备”计划启动! 伐木工小码哥 杰瑞吃奶酪 小码哥处理订单 黑手党 第k小的距离 养竹鼠 甜品配置 礼物 合数分解 均分糖果 持盾 咖啡品鉴师小码哥 1. 八大藤校2025fall标化要求已全部…

安全威胁情报的漏洞挖掘

前段时间edu上出现了两个网安总队收取安全情报,不收漏洞,下面简单分析一下如何挖掘安全情报。 在发现在edu中新增了两个网安总队收安全情报等漏洞,那威胁情报又会包含哪些内容呢?以前或许会看到各种ss网站、bc网站、yx网站满天飞&…

小程序开发SSL证书下载和安装

在开发小程序时,确保数据的安全传输至关重要,而实现这一目标的关键在于正确获取与安装SSL证书。以下详细介绍了从获取到安装SSL证书的完整流程,以助您为小程序构建可靠的加密通信环境。 一、小程序SSL证书类型选择: 域名验证型D…

简单的跳马问题,遍历dp[j][i]到某个值那个数据不对了,如何解决??

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

K8s技术全景:架构、应用与优化

一、介绍 Kubernetes的历史和演进 Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化应用程序的部署、扩展和管理。它最初是由Google内部的Borg系统启发并设计的,于2014年作为开源项目首次亮相。 初始阶段 Kubernetes的诞生…

测开面经分享:计算机网络part2

什么是 HTTP 和 HTTPS?它们之间有什么区别? a. HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是用于在Web上传输数据的协议。它们之间的区别在于安全性和数据传输方式。 b. HTTP是一种不安全的协议&…

聚道云连接器打通红圈CRM和金蝶云星辰,赋能环境科技公司数字化转型

一、客户介绍 某环境科技有限公司是一家专注于环保科技领域的领先企业,致力于为客户提供全方位的环境解决方案。公司拥有一支经验丰富、技术精湛的团队,不断推动环保技术的创新与应用。作为业内的佼佼者,该公司在环境治理、资源回收和节能减…

利用Java代码调用Lua脚本改造分布式锁

4.8 利用Java代码调用Lua脚本改造分布式锁 lua脚本本身并不需要大家花费太多时间去研究,只需要知道如何调用,大致是什么意思即可,所以在笔记中并不会详细的去解释这些lua表达式的含义。 我们的RedisTemplate中,可以利用execute方…

【D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形中的天花板实现,源码实现】

这里写自定义目录标题 D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形中的天花板实现,源码实现D3 简介D3 官网有很多例子,这里说的是Tidy tree[树形图表svg][左侧关系->中间对象<-右侧关系 ] 树形实现 D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形…

C语言易错知识点(3):字符数组的修改、sscanf、sprintf

字符数组是一个很细节的语法&#xff0c;涉及很多知识点&#xff0c;这篇文章我主要分享一下如何理解字符数组&#xff0c;以及对应的sscanf、sprintf有什么用 1.字符数组的初始化以及内容修改易错点 字符数组的初始化方式有两种&#xff0c;一种是直接用字符串进行初始化&am…

【SCI绘图】【热力图系列1 R】多特征相关性分析热力图R语言实现

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【热力图系列1 R】多特征相关性分析热力图R语言实现 1.环境准备 library(gplots) library(RColorBrewer) 2.数据示例 ###…

Qt快速入门到熟练(3.程序运行发布与设置图标)

程序运行发布 当我们执行过qt过后&#xff0c;将会在项目目录里面生成出一个debug构建目录&#xff0c;点击进去选择debug文件夹&#xff0c;就可以看到我们生成出来的可执行文件。 很显然我们的项目就叫做MyFirstWidget&#xff0c;所以生成的可执行文件在没有人为设置的情…

深入理解JVM垃圾收集器

相关系列 深入理解JVM垃圾收集算法-CSDN博客 目前市面常见的垃圾收集器有Serial、ParNew、Parallel、CMS、Serial Old、Parallel Old、G1、ZGC以及有二种不常见的Epsilon、Shenandoah的&#xff0c;从上图可以看到有连线的的垃圾收集器是可以组合使用&#xff0c;是年轻代老年代…

LeetCode初级算法书Java题解日常更新

LeetCode初级算法高效题解&#xff08;含思路注释&#xff09; 文章目录 LeetCode初级算法高效题解&#xff08;含思路注释&#xff09;前言一、数组1.删除排序数组中的重复项2.买卖股票的最佳时机 II3.旋转数组4.存在重复元素 总结 前言 决定用四个月过一下算法 一、数组 1.…