探索强化学习(人工智能重要子领域):原理、算法及应用

引言

人工智能(Artificial Intelligence, AI)作为一个广泛的领域,旨在使机器具备模仿或超越人类智能的能力。机器学习(Machine Learning, ML)是实现这一目标的重要手段,通过数据驱动的方法,使机器能够自动改进其性能。机器学习主要分为三大分支:监督学习、无监督学习和强化学习。

监督学习(Supervised Learning):通过提供已标记的训练数据,监督学习算法学习输入和输出之间的映射关系,用于分类或回归任务。常见应用包括图像识别、语音识别和文本分类。

无监督学习(Unsupervised Learning):在没有标签的情况下,无监督学习算法从数据中发现隐藏的模式和结构,主要用于聚类和降维。应用领域包括客户细分、推荐系统和异常检测。

强化学习(Reinforcement Learning, RL):不同于前两者,强化学习通过智能体与环境的交互来学习策略,以最大化累积奖励。智能体在不断试错中改进其行为策略,这使得强化学习特别适合解决复杂的决策和控制问题。

强化学习的独特之处在于它专注于学习如何在环境中采取行动,以实现长期目标。这种方法不仅适用于静态任务,还能够应对动态和复杂的情境,尤其适合那些无法预先定义明确目标函数的问题。

重要性

近年来,强化学习引起了广泛关注,这主要归因于其在多个前沿领域的突破性应用和潜在影响。强化学习的几个主要应用领域包括:

游戏AI:强化学习在游戏领域取得了显著成就,最著名的例子是AlphaGo,它在围棋比赛中击败了世界冠军。这不仅展示了RL在复杂策略游戏中的强大能力,还引发了对其在其他领域应用的广泛兴趣。

机器人控制:通过强化学习,机器人可以在现实世界中执行复杂的任务,如运动控制、路径规划和自动操作,显著提高了机器人的自主性和灵活性。

自动驾驶:RL在自动驾驶系统中用于学习驾驶策略,处理复杂的交通状况,从而提升自动驾驶车辆的安全性和效率。

金融交易:在金融领域,强化学习被用来优化交易策略,通过学习市场动态来最大化投资回报,降低风险。

智能推荐系统:强化学习可以优化推荐策略,动态调整推荐内容,以提高用户满意度和参与度。

强化学习的独特能力使其在解决实际问题方面具有巨大的潜力。这种方法不仅能够处理高维和非线性问题,还能在不确定和动态的环境中进行有效决策。随着计算能力的提升和算法的进步,强化学习在未来有望在更多领域带来革命性的变化。

一、基本概念

强化学习作为机器学习的重要分支,不同于传统的监督学习和无监督学习,它通过智能体与环境的互动学习来实现决策和行为优化。在强化学习中,智能体通过尝试不同的行动来探索环境,根据环境的反馈(奖励)调整策略,以最大化长期累积的奖励值。这种学习方式使得强化学习特别适用于面对不确定和复杂环境下的决策问题,如游戏智能、机器人控制、自动驾驶和金融交易等领域。强化学习的发展不仅提升了人工智能系统的智能水平,也深刻影响了现代技术和应用的发展方向。

878e36135c264d06948250c02baa51d4.jpeg

1、智能体与环境

智能体(Agent)和环境(Environment)是强化学习中的两个核心组成部分。

智能体:智能体是强化学习系统中的决策者,它通过感知环境并执行动作来实现某种目标。智能体可以是机器人、软件程序或任何能够与环境交互并采取行动的实体。

环境:环境是智能体所处的外部世界,包括智能体能感知和影响的一切。环境为智能体提供状态信息,并根据智能体的动作给出相应的反馈。

交互关系:智能体和环境之间的交互是通过一个循环过程进行的。智能体在每个时间步感知当前状态(s),基于所采用的策略(π)选择一个动作(a),然后执行该动作,环境随之更新状态并给予智能体一个奖励(r)。这个过程不断重复,使智能体通过试错学习到最优策略,以最大化累积奖励。

2、状态、动作、奖励

在强化学习中,状态、动作和奖励是描述智能体与环境交互的基本元素。

状态(State, s):状态是对环境在某一时刻的描述,可以是环境的全面描述或某些关键特征的集合。状态为智能体提供了决策所需的信息。状态的表示可以是离散的(如棋盘上的位置)或连续的(如机器人的位置信息)。

动作(Action, a):动作是智能体在给定状态下可以执行的操作。动作空间可以是有限的离散动作集,也可以是无限的连续动作集。智能体通过选择动作来影响环境,并向新的状态过渡。

奖励(Reward, r):奖励是环境对智能体所执行动作的反馈信号,用于衡量该动作在当前状态下的好坏。奖励函数定义了每个状态-动作对的即时回报。智能体的目标是通过选择合适的动作最大化其累积奖励。

3、策略、价值函数与Q函数

强化学习的目标是找到一种策略,使智能体在与环境的交互中获得最大的累积奖励。

策略(Policy, π):策略是智能体在每个状态下选择动作的规则或函数,可以是确定性的(在每个状态下选择一个固定动作)或随机的(在每个状态下以一定概率选择不同的动作)。策略可以表示为π(s) = a,表示在状态s下选择动作a,或者π(a|s),表示在状态s下选择动作a的概率。

价值函数(Value Function, V):价值函数用于评估某个状态在执行特定策略时的预期累积奖励。状态价值函数V(s)表示从状态s出发,遵循策略π所能获得的预期累积奖励。

Q函数(Q-Function, Q):Q函数(状态-动作值函数)评估在特定状态下执行特定动作所能获得的预期累积奖励。Q值函数Q(s, a)表示在状态s下执行动作a,然后遵循策略π所能获得的预期累积奖励。

价值函数和Q函数是强化学习中的关键工具,用于评估和优化策略。通过学习和更新这些函数,智能体能够逐步改进其策略,达到最优决策。

二、强化学习的关键过程

强化学习的核心在于智能体如何通过与环境的互动学习并改进其行为。关键过程包括探索与利用的权衡以及如何有效地评估和最大化累积奖励。探索与利用问题涉及智能体在探索新策略与利用已有知识之间寻找平衡,而累积奖励则是衡量智能体行为优劣的主要标准。强化学习的这些过程不仅影响了算法的性能和稳定性,也决定了其在实际应用中的成功与否。

2ccaf6503bd7e580b8a646fde3e86599.jpeg

1、探索与利用

在强化学习中,智能体面临一个重要的决策:在探索和利用之间进行权衡。

探索(Exploration):探索是指智能体尝试新的动作或策略,以获取关于环境的更多信息。通过探索,智能体可以发现新的、有潜在更高回报的策略。探索有助于智能体在未知的环境中学到更多知识,但可能会导致短期内的回报较低。

利用(Exploitation):利用是指智能体根据当前已知的最佳策略选择动作,以最大化即时回报。利用可以帮助智能体在短期内获得较高的回报,但可能会忽略那些未曾尝试过的、更优的策略。

权衡的挑战:智能体在探索和利用之间的权衡被称为“探索-利用困境”。过度探索会浪费时间在次优策略上,而过度利用则可能导致智能体陷入局部最优,无法发现全局最优解。

解决方法:

ε-贪婪策略:在这种策略下,智能体以一定的概率(ε)选择随机动作(探索),以较高的概率(1-ε)选择当前最优动作(利用)。通过逐渐减少ε的值,智能体可以在训练初期更多地探索,后期更多地利用。

软max策略:这种策略根据每个动作的估计价值,以一定的概率选择动作,概率与动作的价值成正比,从而在高价值动作之间进行平衡。

上置信界(Upper Confidence Bound, UCB):UCB算法根据动作的预期值和不确定性选择动作,优先探索那些不确定性较大的动作,以更有效地平衡探索和利用。

2、回报与折扣因子

在强化学习中,智能体的目标是最大化累积回报。累积回报考虑了智能体在整个时间序列中获得的奖励。

累积回报:累积回报是指智能体从某一状态开始,通过一系列动作获得的总奖励。这一概念强调了长期收益,而不是单纯的即时回报。

折扣因子(Discount Factor):折扣因子是一个介于0和1之间的数值,用于平衡即时奖励和未来奖励的重要性。折扣因子越接近1,智能体越重视未来的回报;折扣因子越接近0,智能体越重视即时的回报。

折扣因子的作用:

权衡短期与长期回报:折扣因子帮助智能体在短期和长期回报之间进行权衡。较高的折扣因子使得智能体更关注长期策略,而较低的折扣因子则使得智能体更关注即时收益。

收敛性和稳定性:在无限时间序列的情况下,折扣因子确保累积回报的总和是有限的,从而使得价值函数的计算更加稳定。

探索与利用、回报与折扣因子是强化学习中至关重要的过程。智能体需要在探索新策略和利用现有知识之间找到平衡,并通过合理设定折扣因子来优化短期和长期回报的权衡。这些过程共同确保智能体能够在动态环境中有效地学习和决策。

三、主要算法

强化学习涵盖了多种核心算法,每种算法都旨在解决不同类型的决策问题。这些算法包括值迭代、策略迭代、Q学习、深度Q网络(DQN)、策略梯度方法和演员-评论家方法等。它们通过不同的方式处理智能体与环境之间的交互,并通过优化策略来最大化预期的累积奖励。这些算法不仅在理论研究中得到广泛探讨,也在实际应用中展现出了巨大的潜力和价值。

d87f129606d048e161c9dbf9291ffd88.jpeg

1、值迭代和策略迭代

值迭代和策略迭代是两种经典的求解马尔可夫决策过程(MDP)的方法。

值迭代

值迭代通过迭代更新状态的价值来找到最优策略。其步骤如下:

初始化:设定所有状态的初始价值。

迭代更新:根据每个状态的当前价值,更新其未来价值。这一过程持续进行,直到价值收敛。

策略提取:从收敛的价值函数中提取最优策略,即在每个状态下选择能够最大化未来价值的动作。

策略迭代

策略迭代通过交替进行策略评估和策略改进来找到最优策略。其步骤如下:

初始化:设定一个初始策略和价值。

策略评估:评估当前策略的价值,直到价值收敛。

策略改进:基于评估的价值,改进策略,选择在当前状态下能够最大化未来价值的动作。

重复:重复策略评估和改进,直到策略不再变化。

2、Q学习

Q学习是一种无模型的强化学习算法,通过学习状态-动作值函数(Q函数)来找到最优策略。其特点包括:

初始化:设定所有状态-动作对的初始Q值。

迭代更新:在每个时间步,智能体选择一个动作、执行该动作、观察奖励和新状态,然后更新Q值。

策略提取:从更新后的Q值中提取最优策略,即在每个状态下选择具有最高Q值的动作。

Q学习的优势在于不需要环境的模型信息,可以直接从环境的交互中学习。

3、深度Q网络(DQN)

DQN结合了深度学习和Q学习,适用于复杂和高维的状态空间。其主要特点包括:

神经网络:使用深度神经网络来近似Q值函数,从而处理高维输入(如图像)。

经验回放:存储智能体的经历,随机采样小批量数据进行训练,打破数据相关性,提高学习效率。

目标网络:使用两个神经网络,一个用于生成目标Q值,另一个用于更新Q值,增加训练的稳定性。

DQN在复杂环境中表现优异,如在 Atari 游戏中超越人类水平。

4、策略梯度方法

策略梯度方法直接优化策略,通过最大化预期回报来找到最优策略。其主要特点包括:

策略表示:用参数化函数表示策略,通过调整参数来优化策略。

梯度更新:基于策略梯度定理,计算策略参数的梯度,并使用梯度上升法更新参数。

策略梯度方法适用于连续动作空间,并能够处理复杂策略优化问题。

5、演员-评论家方法

演员-评论家方法结合了策略优化和价值函数评估,通过两个主要组件来提高学习效率:

演员(Actor):负责选择动作,并根据策略梯度优化策略。

评论家(Critic):负责评估当前策略,通过估计价值函数或Q函数提供反馈,帮助优化策略。

这种方法结合了策略梯度和值函数方法的优点,能够更有效地学习和优化策略。

值迭代和策略迭代是经典的MDP求解方法,Q学习是一种无模型的强化学习算法,DQN结合深度学习处理复杂问题,策略梯度方法直接优化策略,演员-评论家方法则结合价值评估和策略优化,综合各自优点。这些算法共同构成了强化学习的核心技术体系,适用于不同类型和复杂度的任务。

四、强化学习与人工智能的关系

强化学习(Reinforcement Learning,RL)是人工智能(Artificial Intelligence,AI)的一个重要子领域。两者之间的关系可以简要描述如下:

1、人工智能的范畴

人工智能是一个广义的概念,涵盖了使机器具备模仿或超越人类智能的各种技术和方法。其主要子领域包括:

bcb456fa61dd398f73c120d2048ad159.jpeg

机器学习(Machine Learning,ML):通过数据和经验来训练模型,使机器能够执行特定任务而不需要明确编程。

自然语言处理(Natural Language Processing,NLP):处理和理解人类语言。

计算机视觉(Computer Vision,CV):使机器能够理解和解释视觉信息。

专家系统和知识表示:模拟专家的决策能力和知识存储。

2、强化学习在人工智能中的位置

强化学习是机器学习中的一种方法,专注于通过与环境的交互来学习如何采取行动以最大化累积奖励。它在以下方面与人工智能密切相关:

学习方法:强化学习与监督学习和无监督学习一起,构成了机器学习的三大类方法。它特别适用于需要序列决策和策略优化的问题。

自主决策:强化学习赋予智能体自主决策的能力,使其能够在复杂和动态的环境中表现出智能行为。这与人工智能的总体目标一致,即创造能够自主完成任务的智能系统。

应用领域:强化学习在许多AI应用中发挥关键作用,包括但不限于机器人控制、游戏AI(如AlphaGo)、自动驾驶车辆和智能推荐系统。这些应用展示了RL在实现高级AI功能方面的潜力。

3、强化学习与其他AI方法的关系

强化学习常常与其他AI方法结合使用,以提高系统性能:

深度学习:深度强化学习(Deep Reinforcement Learning,DRL)将深度神经网络与RL结合,用于处理高维输入数据(如图像)并在复杂环境中进行决策。

监督学习和无监督学习:这些方法可以用于预训练模型,提供初始策略或状态表示,从而加速强化学习的训练过程。

强化学习是人工智能的一个重要组成部分,通过与环境的交互和奖励反馈来优化决策过程。它在实现智能体自主决策和复杂任务完成方面具有独特优势,推动了AI在许多实际应用中的发展。

五、应用实例

强化学习在各种现实世界的应用中展现了其强大的潜力和广泛的适用性。从游戏人工智能到机器人控制,再到自动驾驶和金融交易策略优化,强化学习正逐步改变着我们生活和工作中的多个领域。通过智能体与环境的交互学习,强化学习能够实现复杂决策任务的自动化和优化,为技术和科学进步注入了新的活力。

e1ebba0cf7b11b0e9f16d54514bf4eaa.jpeg

1、游戏AI:AlphaGo在围棋中的应用

AlphaGo是Google DeepMind开发的深度强化学习算法,其在围棋领域取得了显著的成就。

案例分析:

背景:围棋是一种复杂的策略游戏,其状态空间极其庞大,远超过国际象棋。传统的计算机围棋程序在面对顶尖人类棋手时表现不佳,主要原因是难以处理庞大和复杂的状态空间。

AlphaGo的架构:

策略网络:使用深度卷积神经网络(CNN)来预测每个可能动作的概率分布。

价值网络:通过监督学习训练,评估当前局面的胜率。

蒙特卡罗树搜索(MCTS):结合策略网络和价值网络,使用MCTS来模拟未来可能的局面,并选择最优的动作。

训练过程:

AlphaGo使用大规模自我对弈来训练网络,不断优化策略和价值估计。

通过与自身对弈,AlphaGo能够积累大量经验,学习到高效的围棋策略。

应用效果:

在2016年,AlphaGo击败了世界冠军李世石,引起了全球对人工智能在复杂策略游戏中的关注。

AlphaGo的成功证明了深度强化学习在解决复杂决策问题上的潜力,其算法和方法也被广泛应用于其他领域。

2、机器人控制:强化学习在机器人运动和行为优化中的应用

强化学习在机器人领域的应用可以帮助机器人学习复杂的运动控制和行为优化。

应用场景:

动作控制:机器人需要学习执行各种动作,如行走、抓取物体等。强化学习可以帮助机器人通过与环境的交互,学习到如何调整关节角度和力度来完成任务。

路径规划:在复杂环境中,机器人需要学习有效的路径规划策略,以避开障碍物并达到目标点。强化学习可以通过优化奖励函数,使机器人学习到最优的路径规划策略。

自主决策:面对未知和动态环境,机器人需要能够自主决策。强化学习可以使机器人从经验中学习,逐步改进策略,以适应各种环境和任务要求。

案例示例:

Deep Reinforcement Learning for Robotic Manipulation:研究团队使用深度强化学习训练机器人进行物体抓取任务,通过优化奖励函数和使用视觉信息,使机器人能够在仿真和真实环境中成功地执行抓取任务。

3、自动驾驶:强化学习在自动驾驶策略优化中的应用

自动驾驶技术的发展面临着复杂的交通环境和多变的驾驶场景,强化学习被广泛应用于优化自动驾驶系统的决策和控制。

应用场景:

路径规划:自动驾驶车辆需要通过学习和优化路径规划策略,选择最安全和高效的行驶路径,同时考虑交通流量和行人等因素。

车辆控制:强化学习可以帮助车辆学习如何调整速度和转向,以适应不同的交通情况和路面条件,提高驾驶的安全性和舒适性。

决策制定:面对复杂的交通场景和紧急情况,自动驾驶系统需要能够做出快速而准确的决策。强化学习可以通过模拟和训练,使系统学习到如何应对各种驾驶挑战和突发事件。

案例示例:

Waymo(谷歌旗下自动驾驶公司):Waymo使用强化学习来优化自动驾驶车辆的路径规划和决策制定。他们通过大量的模拟和真实世界数据,训练车辆在各种复杂交通环境下安全地行驶。

4、金融交易:利用强化学习优化交易策略以实现更高的投资回报

强化学习在金融领域的应用主要集中在优化交易策略和风险管理方面,以实现更高的投资回报。

应用场景:

交易策略优化:强化学习可以帮助金融交易员和机构学习和优化交易策略,根据市场动态和历史数据,调整买入和卖出的时机和数量,以最大化投资回报。

风险管理:通过强化学习算法,可以开发和优化风险管理策略,帮助投资者在波动的市场中更好地管理风险和损失。

高频交易:在高频交易领域,强化学习可以通过快速学习和适应市场的变化,改进算法交易策略,以实现更高的交易执行效率和利润。

案例示例:

Deep Reinforcement Learning in High Frequency Trading:研究团队使用深度强化学习算法来优化高频交易策略,通过模拟和实时交易数据,提高交易执行速度和准确性,从而获得更高的投资回报。

强化学习在游戏AI、机器人控制、自动驾驶和金融交易等领域展示了广泛的应用潜力。通过优化决策和策略,强化学习使得智能体能够在复杂和动态的环境中学习并改进其行为,从而实现更高的任务性能和投资回报。

六、挑战与前沿

尽管强化学习在多个领域取得了显著进展,但其面临着诸多挑战和未来的发展前沿。从提高样本效率到处理大规模问题,再到确保算法的稳定性和收敛性,这些挑战不仅需要技术上的创新,还需要跨学科的合作和深入的理论研究。未来,随着技术和理论的进步,强化学习将继续扩展其在智能系统和自动化决策中的应用范围。

9c87dbf5dfefa14e8ab1039098ab060f.jpeg

1、样本效率

在强化学习中,样本效率是一个重要挑战,尤其是在面对复杂环境和大规模问题时。样本效率指的是智能体在学习过程中所需的样本数量,以及如何通过有效的数据利用来提高学习效率。

研究进展:

经验回放(Experience Replay):经验回放技术允许智能体从先前的经历中学习,而不是仅仅依赖即时的交互经验。这种方法有效地利用历史数据,加速学习过程,并提高算法的稳定性。

模型辅助强化学习(Model-Based Reinforcement Learning):结合模型学习和强化学习方法,通过对环境动态的建模来指导智能体的决策,减少对真实环境的交互次数,从而提高学习效率。

自适应控制:使用自适应算法和优化方法,例如自适应学习率和参数调整,以根据当前任务和环境动态调整智能体的学习速率和策略更新频率。

探索策略优化:设计更智能和有效的探索策略,如基于不确定性的探索和多臂老虎机问题中的探索-开发平衡,以在探索和利用之间找到最优的权衡点。

2、大规模问题处理

处理高维状态空间和动作空间是强化学习面临的另一个重要挑战,特别是在需要处理复杂实际问题时。

最新方法:

分层强化学习(Hierarchical Reinforcement Learning):将复杂任务分解为多个子任务或动作序列,以减少状态空间和动作空间的复杂性,提高学习效率和性能。

函数逼近:使用高效的函数逼近方法,如深度神经网络(DNN),来近似价值函数或策略函数,以处理高维输入和输出空间,如图像和连续动作空间。

并行化和分布式学习:利用并行计算和分布式学习架构,加速大规模强化学习算法的训练和执行过程,以处理大量的数据和复杂的计算任务。

3、算法稳定性与收敛性

在强化学习中,算法的稳定性和收敛性直接影响到其在实际应用中的可靠性和效果。

分析方法:

优化算法设计:设计更稳定和收敛速度更快的优化算法,例如使用适当的学习率调度、正则化技术和参数初始化策略,以减少训练过程中的波动和震荡。

经验回放与目标网络:通过经验回放和目标网络技术,降低训练中的相关性和过拟合风险,提高算法的稳定性和泛化能力。

收敛性分析:开展深入的理论分析和实证研究,验证强化学习算法在不同环境和任务下的收敛性和性能表现,从而指导实际应用中的算法选择和调优。

4、多智能体强化学习

多智能体强化学习涉及多个智能体在共享环境中协同工作或竞争,是当前研究的前沿之一。

最新研究进展:

协同工作与竞争:研究如何设计智能体之间的协作和竞争策略,以达到共同目标或优化个体回报,如在多智能体博弈和协作任务中的应用。

通信和协调:研究如何通过通信和信息共享来提高多智能体系统的整体性能,例如分布式学习和集体决策问题。

竞争与均衡:探索多智能体系统中竞争和均衡问题,如资源分配和竞争性任务分配,以实现系统的稳定和效率。

应用案例:

多智能体交通控制系统:通过多智能体强化学习,优化城市交通流量和信号控制,以减少拥堵和提高道路利用率。

分布式协作机器人团队:设计和控制多个协作机器人执行复杂任务,如搜索与救援、建筑施工等。

样本效率、大规模问题处理、算法稳定性与收敛性以及多智能体强化学习是当前强化学习研究的重要挑战和前沿。通过深入研究和创新方法,可以不断推动强化学习在各个领域的应用和发展。

强化学习作为机器学习的重要分支,通过智能体与环境的交互学习,在面对不断变化的环境中进行决策和行动。其基本原理包括定义智能体与环境、状态、动作和奖励,以及通过学习策略来最大化累积回报。主要算法涵盖了值迭代、策略迭代、Q学习、深度Q网络(DQN)、策略梯度方法和演员-评论家方法等,这些方法在不同的应用场景中展现出其独特的优势和适用性。

在应用领域上,强化学习已经取得了显著进展和广泛应用:

游戏AI:例如AlphaGo在围棋中的成功应用,展示了强化学习在复杂策略游戏中的能力。

机器人控制:帮助机器人学习运动控制和行为优化,从简单的抓取任务到复杂的路径规划和自主决策。

自动驾驶:优化驾驶策略,提高安全性和效率,应对复杂的交通环境和道路条件。

金融交易:通过优化交易策略,实现更高的投资回报,尤其在高频交易和风险管理中有广泛应用。

未来展望

强化学习在未来的发展中面临着许多挑战和机遇,以下是展望其未来的发展方向和潜在应用:

提升算法效率和稳定性:继续研究和优化算法,提高样本效率、处理大规模问题的能力,确保算法在不同环境和任务中的稳定性和收敛性。

多学科交叉应用:强化学习将继续与其他领域如计算机视觉、自然语言处理和生物医学等领域相结合,开发更加智能和综合的应用系统。

自适应和灵活性:发展能够适应动态和复杂环境的强化学习方法,例如在不断变化的市场和社会情境中进行决策和行动。

多智能体系统:进一步探索多智能体系统中协作和竞争的问题,如城市交通管理、工业自动化和分布式协作任务中的应用。

伦理和安全考量:随着强化学习技术的应用范围扩大,加强对其伦理和安全影响的研究和监管,确保其在社会中的良性应用和发展。

综上所述,强化学习作为一种强大的学习范式,不断在理论和实践中演进和深化。未来,随着技术的进步和理论的发展,强化学习将在各个领域展示出更广阔的应用前景,为人类社会带来更多创新和进步。

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

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

相关文章

Android笔记-adb keycode大全

使用方法 用adb发送按键事件时,可以使用下面表中的枚举值或者直接使用数值,比如 adb shell input keyevent KEYCODE_HOME 或者 adb shell input keyevent 3 下面按三种排序方法列出所有按键的 keycode, 分别是: 按功能分 按枚…

keil仿真,查看函数执行时间和执行次数

Execution Profiler执行档案器 The Execution Profiler records timing and execution statistics about instructions for the complete program code. To view the values in the Editor or Disassembly Window, use Show Time or Show Calls from the menu Debug — Executi…

Maven高级的聚合和继承

聚合和继承 我们的项目已经从以前的单模块,变成了现在的多模块开发。项目一旦变成了多模块开发以后,就会引发一些问题,在这一节中我们主要会学习两个内容聚合和继承,用这两个知识来解决下分模块后的一些问题。 3.1 聚合 分模块开…

风控图算法之社群发现算法(小数据集Python版)

风控图算法之社群发现算法(小数据集Python版) 在风险控制领域,图算法扮演着日益重要的角色。(这方面的资料有很多,不再赘述) 图算法在风控场景的应用 图分析方法在业务风控中的应用 特别是社群发现算法&a…

软件测试必看!5分钟掌握sql查询的聚合函数

数据查询操作之排序 语法格式: select * from 表名 order by 字段名 asc| desc 重点: 1 字段名可以有多个,如果字段名1 相同,再按照字段名2排序 2 默认情况下按照从小到大去排列 3 asc 就是从小到大排列 desc 从大到小排列 …

每个 Node.js 开发人员都应该知道的13个库(上)

1. Sequelize Sequelize是一个基于promise的Node.js对象关系映射器(ORM),它使开发人员更容易使用关系数据库。 支持PostgreSQL,MySQL,MariaDB,SQLite和更多数据库。 Sequelize使用JavaScript对象对数据库…

二叉树——二叉树的构建及遍历

目录 1:题目分析和思路 1:分析 2:思路 2:代码实现及分析 1:构建结构体 2:主函数 2:创建二叉树 3:中序遍历 3:总代码 1:题目分析和思路 1&#xff1…

Web应用安全测试-专项漏洞(一)

Web应用安全测试-专项漏洞(一) 专项漏洞部分注重测试方法论,每个专项仅列举一个例子。实际测试过程中,需视情况而定。 文章目录 Web应用安全测试-专项漏洞(一)Web组件(SSL/WebDAV)漏…

力扣爆刷第155天之TOP100五连刷41-45(下一个排列、正序数组中位数、归并排序链表)

力扣爆刷第155天之TOP100五连刷41-45(下一个排列、正序数组中位数、归并排序链表) 文章目录 力扣爆刷第155天之TOP100五连刷41-45(下一个排列、正序数组中位数、归并排序链表)一、31. 下一个排列二、4. 寻找两个正序数组的中位数三…

明明设置允许跨域,为什么还会出现跨域请求的问题

一、问题 在微服务项目中,明明已经设置允许跨域访问: 为什么还会出现跨域请求问题? 二、为什么 仔细查看错误提示信息:When allowCredentials is true, allowedOrigins cannot contain the special value "*" since t…

单元测试,一直转圈,既不报错也不运行结束(ssm junit4 test )

修改dataSource.properties文件 然后把mysql.version的版本修改为8.x.x 如果没有效果,再看看连接数据库的用户名和密码是否正确,一般是连接数据库出了错,单元测试才回一直转圈,我是检查了一上午才发现,用户名错了。 检…

性能测试 —— Jmeter日志查看与分析

一、Jmeter日志概览 Jmeter日志文件保存在bin目录中,名称为jmeter.log。我们可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起 另外,Jmeter可以很方便地设置日志输出级别: 通过这种方式修…

工业制造业怎样进行进行智能、高效的机台文件管控?

对于工业制造业而言,机台是极为关键的基础设施,是正常生产经营的前提。工业制造业的机台包括很多种类,数控机床、防静电工作台、旋转工作台、机床工作台、车床等。 工业制造业机台产生的文件类型也有很多种类,如: 工艺…

NUC 14 Pro+:超越想象,夏日必备神机

夏日最让打工人意难平的大概是呼呼作响的主机风扇,即使在凉爽的空调房中,轰响的主机也让人心浮气躁。要怎样才能与它和平共处?它怎么就不明白,安安静静的陪伴真的很重要! 这时候NUC 14 Pro 就是你最佳的伙伴 &#xff…

【专业性强】地球科学SCI期刊,中科院2区,学术影响力大

一、期刊名称 GIScience & Remote Sensing 二、期刊简介概况 期刊类型:SCI 学科领域:地球科学 影响因子:6.7 中科院分区:2区 三、期刊征稿范围 GIScience & Remote Sensing是一本完全开放获取的期刊,发表…

音视频开发30 FFmpeg 视频编码- 流程以及重要API,H264编码原理说明,该章节使用h264编码说明

一.H264编码原理 1 视频为什么需要进行编码压缩 ◼ 一张为 720x480 的图像,用 YUV420P 的格式来表示,其大小为: 720*480*1.5 约等于 0.5MB 。 ◼ 如果是 25 帧, 10 分钟的数据量 0.5M*10*60*25 7500MB -> 7GB 多 ◼ …

RestTemplate修改默认转换器,使用FastJsonConverter

问题描述: 在使用RestTemplate发送POST请求时,发现发送的数据并未按配置的JSONField转换,导致服务方一直收不到参数 排查过程: 将itemList改成Items传输即可 原因分析: RestTemplate有默认的转换器,所以…

引入基于图的增强框架实现大模型的可控文本生成

尽管LLMs能够生成丰富多样的文本,但它们在生成特定属性文本时仍面临挑战。例如,如何确保生成的文本不仅语言流畅、语义准确,同时还具有所需的情感色彩或避免包含不当内容,是一个亟待解决的问题。传统的可控文本生成(CT…

2. jenkins发布java项目

jenkins发布java项目 一、环境描述二、部署tomcat业务服务器三、部署git服务器,上传测试代码1、部署git服务器2、上传测试代码 四、jenkins对接组件1、安装必要的插件2、对接git客户端3、对接maven工具4、配置maven需要的jdk5、配置gitlab服务器的连接6、在jenkins上…

windows下载jdk并安装步骤(保姆级教程)

一、下载jdk 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二、双击下载好的jdk 更改安装目录然后点击下一步 然后会弹出jre的安装,需要选择路径(注意:这里的路径必须跟前面的jdk在…