人工智能与机器学习原理精解【19】
文章目录
- 马尔科夫链
- 概述
- 定义与性质
- 分类
- 应用领域
- 收敛性
- 马尔科夫链蒙特卡洛方法
- 马尔科夫链原理详解
- 一、定义
- 二、特性
- 三、数学描述
- 四、类型
- 五、应用
- 六、示例
- 定义
- 性质
- 转移概率矩阵
- 应用举例
- 结论
- 马尔科夫链在语音识别和语音合成中的应用
- 一、马尔科夫链在语音识别中的应用
- 1. 基本概念
- 2. 核心算法原理
- 3. 具体操作步骤
- 4. 优缺点
- 二、马尔科夫链在语音合成中的应用
- 1. 基本概念
- 2. 核心算法原理
- 3. 具体操作步骤
- 4. 优缺点
- 一、算法原理
- 二、算法步骤
- 三、算法特点
- 四、应用领域
- Viterbi算法作应用实例
- 1. 语音识别
- 2. 机器翻译
- 3. 拼音转汉字
- 4. 自然语言处理中的词性标注和句法分析
- 5. 生物信息学
- 6. 无线通信中的信道解码
- 7. 语音识别和关键字识别
- HMM,即隐马尔可夫模型(Hidden Markov Model)
- 1. 双重随机过程
- 2. 马尔科夫性
- 3. 观测独立性
- 4. 隐状态不可观测
- 5. 概率分布描述
- 6. 广泛应用领域
- 7. 求解算法
- 参考文献
马尔科夫链
概述
马尔科夫链(Markov Chain, MC)是概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。以下是对马尔科夫链的详细解释:
定义与性质
- 定义:马尔科夫链是一组具有马尔可夫性质的离散随机变量的集合。具体地,对概率空间内以一维可数集为指标集的随机变量集合,若随机变量的取值都在可数集内,且随机变量的条件概率满足特定关系,即未来状态的概率分布仅依赖于当前状态,而与过去状态无关。
- 性质:马尔可夫链的无记忆性(或称无后效性)是其核心特征,即给定当前状态,未来状态与过去状态无关。这种性质使得马尔可夫链在建模和分析具有随机性和不确定性的系统时具有独特优势。
分类
- 离散时间马尔可夫链(DTMC):在离散时间马尔可夫链中,过程在固定的时间点进行状态转换,状态空间可以是有限的或无限的。状态转移由一个转移矩阵表示,矩阵中的每个元素表示从一个状态转移到另一个状态的概率。
- 连续时间马尔可夫链(CTMC):在连续时间马尔可夫链中,状态转换可以在任何时间发生,转移概率由一个称为速率矩阵或强度矩阵的矩阵给出。
应用领域
马尔科夫链由于其独特的无记忆性质,被广泛应用于各个领域:
- 金融:在金融市场分析中,马尔可夫模型被用来预测股票价格、利率等的变化,以及用于风险管理和衍生品定价。
- 排队理论:在服务系统如银行、呼叫中心和网络数据传输中,马尔可夫链被用于建模服务请求的等待时间和系统的服务能力。
- 生物信息学:在生物序列分析中,马尔可夫模型被用于基因预测、蛋白质结构预测和生物序列的模式识别。
- 计算机科学:在算法设计中,马尔可夫链被用于随机化算法和模拟退火算法中。在人工智能中,马尔可夫决策过程(MDP)是用于建模决策问题的一个重要工具。搜索引擎如谷歌的PageRank算法就是使用马尔可夫链来对网页进行排名的。
- 语言模型:在自然语言处理中,马尔可夫模型被用于构建语言模型,用来预测句子中下一个单词的出现概率。
- 其他:马尔科夫链还被用于谱曲、天气预测、人口统计学、信号处理和游戏理论等领域。
收敛性
马尔科夫链的收敛性是其应用中的一个重要方面。一个不可约和正常返的马尔可夫链是严格平稳的马尔可夫链,拥有唯一的平稳分布。遍历马尔可夫链(ergodic MC)的极限分布收敛于其平稳分布。这种收敛性使得马尔可夫链在长时间运行后能够达到一个稳定状态,从而可以用于各种预测和分析任务。
马尔科夫链蒙特卡洛方法
马尔科夫链蒙特卡洛方法(Markov Chain Monte Carlo, MCMC)是一种在贝叶斯理论框架下,通过计算机进行模拟的蒙特卡洛方法。该方法将马尔科夫过程引入到Monte Carlo模拟中,实现抽样分布随模拟的进行而改变的动态模拟。MCMC方法突破了传统蒙特卡罗积分只能静态模拟的缺陷,使得贝叶斯推断和分析在处理复杂高维问题时变得更加可行和有效。
总之,马尔科夫链作为一种具有无记忆性质的随机过程模型,在各个领域都有广泛的应用。其独特的性质和广泛的应用前景使得马尔科夫链成为概率论和数理统计中的一个重要概念。
马尔科夫链原理详解
一、定义
马尔科夫链(Markov Chain)是一种数学系统,描述了一种状态序列,其每个状态值取决于前面有限个状态。具体来说,它是具有马尔可夫性质的随机变量 X 1 , X 2 , X 3 . . . X_1,X_2,X_3... X1,X2,X3...的一个数列。这些变量的范围,即它们所有可能取值的集合,被称为“状态空间”,而 X n X_n Xn的值则是在时间n的状态。如果 X n + 1 X_{n+1} Xn+1对于过去状态的条件概率分布仅是X_n的一个函数,即 P ( X n + 1 = x ∣ X 1 = x 1 , X 2 = x 2 , . . . , X n = x n ) = P ( X n + 1 = x ∣ X n = x n ) P(X_{n+1}=x|X_1=x_1,X_2=x_2,...,X_n=x_n) = P(X_{n+1}=x|X_n=x_n) P(Xn+1=x∣X1=x1,X2=x2,...,Xn=xn)=P(Xn+1=x∣Xn=xn),则称该随机变量序列具有马尔可夫性质。马尔可夫链是时间和状态都是离散的马尔可夫过程。
二、特性
马尔科夫链的核心特性是其无记忆性或马尔可夫性质,即未来状态的概率分布只依赖于当前状态,而与过去状态无关。这种性质大大简化了计算过程,使得马尔可夫链成为预测和建模的有力工具。
三、数学描述
马尔科夫链的数学描述涉及状态空间、转移矩阵、初始状态分布等概念。
- 状态空间:系统可能存在的所有状态的集合。
- 转移矩阵:表示状态之间转移概率的矩阵,矩阵的元素Pij表示从状态i转移到状态j的概率。转移矩阵的每一行元素之和为1,表示状态i的概率分布。
- 初始状态分布:系统在时间开始时各状态的概率分布。
四、类型
马尔科夫链有多种类型,如齐次马尔可夫链、可逆马尔可夫链、稳态马尔可夫链等。
- 齐次马尔可夫链:如果转移概率不随时间变化,则称该马尔可夫链为齐次的。
- 可逆马尔可夫链:如果一个马尔可夫链可以从其任何一个状态出发,经过一系列的转移概率回到原来的状态,则称这个链是可逆的。
- 稳态马尔可夫链:如果存在一个概率分布,使得随着时间的推移,状态分布不再改变,那么这个分布称为稳态或平稳分布。
五、应用
马尔科夫链在众多领域都有广泛的应用,包括但不限于:
- 物理学:用于建模排队理论、布朗运动等。
- 生物学:模拟生物人口过程、基因预测等。
- 经济学:预测市场走势、商品存货问题等。
- 计算机科学:算法设计、复杂性理论、网络科学和人工智能等领域。
例如,在自然语言处理中,N-Gram模型就是一种基于马尔科夫链的语言模型,它假设一个词的出现仅与前面的N-1个词有关。
六、示例
以一个简单的天气模型为例,假设有两种可能的天气状态:晴天和阴天。如果今天是晴天,明天有90%的概率还是晴天,有10%的概率变成阴天;如果今天是阴天,明天有50%的概率是晴天,也有50%的概率仍然是阴天。这个模型就是一个马尔科夫链,其状态空间为{晴天,阴天},转移矩阵为 0.9 0.1 0.5 0.5 \begin{matrix} 0.9 & 0.1 \\ 0.5 & 0.5 \end{matrix} 0.90.50.10.5。
综上所述,马尔科夫链原理基于其无记忆性特性,通过状态空间和转移矩阵来描述系统状态的变化趋势,从而实现预测和建模的目的。其应用领域广泛,是数学、物理学、生物学、经济学等多个学科的重要工具。
马尔科夫链转移概率是马尔可夫链理论中的一个核心概念,它描述了系统从一个状态转移到另一个状态的概率。以下是对马尔科夫链转移概率的详细解析:
定义
马尔科夫链转移概率,简称转移概率,是指在马尔科夫链中,系统从某一时刻的某一状态转移到另一时刻的另一状态的条件概率。设{Xn, n≥0}为离散时间马尔可夫链,对任何m≥0, n≥1, i,j∈E(E为状态空间),令pij(m,m+n)=P{Xm+n=j|Xm=i}。称pij(m,m+n)为链在m时刻处于状态i,再经n步转移到状态j的转移概率,简称n步转移概率。特别地,当n=1时,称为一步转移概率,记为pij(m,m+1)或Pij(m)。
性质
转移概率具有以下基本性质:
- 非负性:对一切 m , n , i , j ,有 p i j ( m , m + n ) ≥ 0 m,n,i,j,有p_{ij}(m,m+n)≥0 m,n,i,j,有pij(m,m+n)≥0。
- 行和为1:对一切 m , n , i ,有 ∑ j p i j ( m , m + n ) = 1 m,n,i,有∑_jp_{ij}(m,m+n)=1 m,n,i,有∑jpij(m,m+n)=1,即每一行的元素之和等于1。
转移概率矩阵
如果以pij(m,m+n)作为矩阵P(m,m+n)的第i行第j列元素,则P(m,m+n)称为马氏链的n步转移阵。当E为有限集时,它是一个方阵;当E为可列无穷集时,它是一个有可列无穷多个行及列的矩阵。转移概率矩阵是一个具有非负元素的方阵,且其各行元素之和等于1。满足这些条件的矩阵统称为随机矩阵或马尔可夫矩阵。
应用举例
马尔科夫链转移概率在许多领域都有广泛的应用,如:
- 排队模型:在服务系统中,可以用马尔科夫链来描述顾客的到达和服务过程,通过计算一步转移概率和转移概率矩阵来预测系统的状态变化。
- 生物信息学:隐蔽马尔可夫模型被用于生物信息学中的编码区域或基因预测,其中转移概率是模型的重要组成部分。
- 金融市场分析:在金融市场分析中,马尔科夫链可以用来模拟股票价格的变化趋势,转移概率反映了股票价格在不同状态之间的转移可能性。
结论
马尔科夫链转移概率是马尔可夫链理论中的一个核心概念,它描述了系统在不同状态之间的转移规律。通过计算转移概率和转移概率矩阵,可以对系统的未来状态进行预测和分析。马尔科夫链转移概率在许多领域都有广泛的应用价值。
马尔科夫链在语音识别和语音合成中的应用是人工智能领域中的重要研究方向,它涉及到自然语言处理、信号处理、机器学习等多个领域的知识和技术。以下将详细讲解马尔科夫链在语音识别和语音合成中的应用。
马尔科夫链在语音识别和语音合成中的应用
一、马尔科夫链在语音识别中的应用
1. 基本概念
马尔科夫链是一种有限状态机,用来描述随机过程的状态转移。在语音识别中,马尔科夫链被广泛应用于隐马尔可夫模型(Hidden Markov Model, HMM)的建立和识别。HMM是一种概率模型,用于描述一个含有隐含未知参数的马尔科夫过程,它可以通过观测到的随机过程来推断隐含的参数。
2. 核心算法原理
- 状态表示:在语音识别中,HMM的状态通常表示语音信号的不同特征,如音素、发音方式等。
- 观测值:观测值表示语音信号的特征值,如音频波形、频谱等。
- 状态转移概率:状态转移概率表示从一个状态转移到另一个状态的概率。
- 观测值概率:观测值概率表示从一个状态产生观测值的概率。
通过训练HMM模型,可以得到这些概率分布参数,进而用于语音信号的识别。
3. 具体操作步骤
- 特征提取:对语音信号进行预处理,提取音频波形、频谱等特征值。
- 模型训练:使用训练数据集来估计HMM的参数,包括初始状态概率、转移概率和观测概率。
- 识别过程:对于给定的语音信号,通过计算观测序列与HMM模型之间的匹配度,使用Viterbi算法等方法找到最有可能的隐藏状态序列,从而实现语音信号的识别。
4. 优缺点
- 优点:HMM模型简单易理解,易于实现和优化。
- 缺点:HMM假设观测值是独立同分布的,这在实际应用中可能不太符合现实情况。此外,HMM对于复杂语音信号的建模能力有限。
二、马尔科夫链在语音合成中的应用
1. 基本概念
在语音合成中,马尔科夫链同样被用于建模语音信号的状态转移过程。通过构建合适的HMM模型,可以生成符合特定语音特征的语音信号。
2. 核心算法原理
- 状态表示:在语音合成中,HMM的状态通常表示语音信号的不同发音单元或音节。
- 观测值:观测值表示语音信号的特征向量,如频谱参数、基频等。
- 状态转移概率和观测值概率:与语音识别类似,这些概率分布参数用于描述语音信号的状态转移和观测过程。
3. 具体操作步骤
- 文本分析:将给定的文本信息转化为一系列的发音单元或音节。
- 模型训练:使用语音数据库来训练HMM模型,得到各状态的概率分布参数。
- 语音生成:根据文本信息对应的发音单元或音节序列,利用训练好的HMM模型生成相应的语音信号。通过调整模型参数和合成算法,可以生成具有不同语音特征(如语速、语调等)的语音信号。
4. 优缺点
- 优点:HMM模型为语音合成提供了一种有效的建模方法,能够生成较为自然的语音信号。
- 缺点:与语音识别类似,HMM模型在语音合成中也存在观测值独立同分布的假设问题。此外,HMM模型对于复杂语音信号的生成能力有限,可能无法完全捕捉到语音信号的所有细节特征。
综上所述,马尔科夫链在语音识别和语音合成中具有重要的应用价值。随着人工智能技术的发展和深度学习等方法的兴起,未来将有更多先进的技术被应用于这两个领域以提高识别准确率和合成质量。
Viterbi算法是一种动态规划算法,由安德鲁·维特比(Andrew Viterbi)于1967年提出,主要用于寻找最有可能产生观测事件序列的隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型(HMM)中。以下是关于Viterbi算法的详细解析:
一、算法原理
Viterbi算法通过动态规划的方式,在给定观测序列和隐马尔可夫模型(HMM)参数(包括状态转移概率、观测概率和初始状态概率)的情况下,求解出最有可能产生观测序列的隐藏状态序列。其核心思想是利用动态规划减少重复计算,通过保存之前的最优路径,再选择当前步的最优路径并记录,从而降低时间复杂度。
二、算法步骤
Viterbi算法通常包括以下步骤:
-
初始化:为每个隐藏状态设置初始概率,并计算第一个时间点的累积概率。
-
递归计算:对于每个时间点和每个隐藏状态,计算给定观察序列的最可能路径的概率。这一步通常通过动态规划表格来实现,表格中的每个元素代表到当前时间点为止,观测到当前观测序列,且隐藏状态为特定状态时的最大概率。
-
终止:在最后一个时间点,找到概率最高的隐藏状态。
-
回溯:从最高概率的最终状态开始,回溯到初始状态,构建最可能的隐藏状态序列。
三、算法特点
-
高效性:通过动态规划减少重复计算,时间复杂度显著降低。
-
准确性:在隐马尔可夫模型等概率图模型中,能够找到最有可能产生观测序列的隐藏状态序列。
四、应用领域
Viterbi算法在信息论、编码理论、语音识别、生物信息学等领域有着广泛的应用。以下是几个具体的应用场景:
-
语音识别:将语音信号转换为文本表示,声音信号作为观察到的事件序列,而文本字符串被看作是隐含的产生声音信号的原因。
-
机器翻译:在解码阶段,找到给定源语言句子的最佳目标语言句子。
-
拼音转汉字:在中文处理中,将拼音序列转换为汉字序列,预测给定拼音序列的最可能的汉字序列。
-
分词:在中文等语言的分词任务中,通过分析上下文信息来最大概率地划分词语。
-
句法分析:在句法分析中,用于构建句子的语法结构,预测句子中各个成分的语法角色。
-
数字通信:在CDMA和GSM数字蜂窝网络等通信系统中,用于卷积码的解码,确保数据的完整性和准确性。
Viterbi算法作应用实例
1. 语音识别
在语音识别系统中,Viterbi算法用于将输入的语音信号转换为文本。声音信号被视为观测到的事件序列,而文本字符串则被视为隐含的、产生这些声音信号的原因。通过训练好的隐马尔可夫模型(HMM),Viterbi算法能够找到与给定语音信号最匹配的文本序列,从而实现高精度的语音识别。
2. 机器翻译
在机器翻译任务中,特别是在统计机器翻译模型中,Viterbi算法可以用于解码过程。给定源语言句子的翻译候选和目标语言的语法结构,Viterbi算法能够找到最符合语法规则和上下文语义的目标语言句子,从而生成高质量的翻译结果。
3. 拼音转汉字
在中文输入法中,用户输入的拼音序列可以看作是一系列观测到的事件,而对应的汉字序列则是隐含的、产生这些拼音的原因。Viterbi算法可以根据语言模型和拼音到汉字的转换概率,找到与给定拼音序列最匹配的汉字序列,提高输入法的准确性和效率。
4. 自然语言处理中的词性标注和句法分析
在词性标注和句法分析任务中,Viterbi算法可以用于寻找给定句子中最可能的词性标注序列或句法结构。通过训练好的模型,算法能够考虑上下文信息和语言规则,为句子中的每个词分配最合适的词性标签或构建最合理的句法树。
5. 生物信息学
在生物信息学领域,Viterbi算法也被用于DNA序列分析、蛋白质结构预测等任务中。例如,在基因序列分析中,算法可以根据已知的基因序列特征和统计模型,预测给定DNA序列中的基因位置和结构。
6. 无线通信中的信道解码
在无线通信系统中,Viterbi算法被广泛应用于卷积码的解码过程。通过计算接收序列与所有可能发送序列之间的差异(如汉明距离或欧氏距离),算法能够找到与接收序列差异最小的发送序列作为解码结果,从而提高通信系统的可靠性。
7. 语音识别和关键字识别
除了基本的语音识别任务外,Viterbi算法还可以用于关键字识别系统中。在这些系统中,算法需要实时地分析输入的语音信号,并识别出特定的关键字或短语。通过训练好的模型和高效的解码算法,系统能够在复杂的环境中准确地识别出用户所说的内容。
综上所述,Viterbi算法在信息论、自然语言处理、生物信息学以及无线通信等多个领域都有着广泛的应用场景。其高效性和准确性使得它成为处理序列数据问题的重要工具之一。
HMM,即隐马尔可夫模型(Hidden Markov Model)
一种统计信号模型,用参数表示,用于描述随机过程统计特性的概率模型。它是由Markov链演变而来的,但与之不同的是,HMM的观察结果不是与状态有确定的对应关系,而是系统所处状态的概率函数,所以模型本身是隐藏的,与观察结果之间还有一层随机的关系。以下是HMM的一些关键性质:
1. 双重随机过程
- HMM可以看作是一个数学上的双重随机过程:一个是用具有有限状态的Markov链来模拟隐含随机过程的状态变化,另一个是与Markov链的每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的具体参数是不可测的。
2. 马尔科夫性
- HMM满足马尔科夫性,即系统在某一时刻t的状态只依赖于前一个状态t-1,而与之前的状态无关。这种特性称为“无记忆性”或马尔科夫性质。
3. 观测独立性
- 在HMM中,任意时刻的观测只与该时刻马尔可夫链状态有关,与其他观测与状态无关。即观测序列在给定状态序列的条件下是独立的。
4. 隐状态不可观测
- HMM中的状态序列是不可直接观测的,只能通过观测序列来间接推测。这是HMM与标准Markov链的主要区别之一。
5. 概率分布描述
- HMM由三个基本要素描述:初始状态概率分布(π),状态转移概率分布(A),以及观测概率分布(B)。这三个分布共同决定了HMM的行为。
6. 广泛应用领域
- HMM因其强大的序列建模能力,被广泛应用于语音识别、自然语言处理、生物信息学等领域。例如,在语音识别中,HMM可以用来描述语音信号的产生过程,通过观测到的语音特征来推测语音背后的状态(如音素)。
7. 求解算法
- 针对HMM的不同问题(评估、解码、学习),有不同的求解算法。例如,前向算法用于评估问题,即计算在给定模型参数和观测序列下,观测序列出现的概率;Viterbi算法用于解码问题,即找到最可能的隐藏状态序列;Baum-Welch算法(EM算法在HMM中的应用)用于学习问题,即估计模型参数使得观测序列出现的概率最大。
综上所述,HMM作为一种强大的序列建模工具,具有双重随机过程、马尔科夫性、观测独立性、隐状态不可观测等关键性质,并在多个领域有着广泛的应用。
参考文献
1.《语音识别实践》
2. 文心一言
相关文章:
人工智能与机器学习原理精解【19】
文章目录 马尔科夫链概述定义与性质分类应用领域收敛性马尔科夫链蒙特卡洛方法 马尔科夫链原理详解一、定义二、特性三、数学描述四、类型五、应用六、示例定义性质转移概率矩阵应用举例结论 马尔科夫链在语音识别和语音合成中的应用一、马尔科夫链在语音识别中的应用1. 基本概…...
DingoDB:多模态向量数据库的实践与应用
DingoDB:多模态向量数据库的实践与应用 1. 引言 在当今数据驱动的时代,高效处理和分析大规模、多样化的数据变得至关重要。DingoDB作为一个分布式多模态向量数据库,为我们提供了一个强大的解决方案。本文将深入探讨DingoDB的特性、安装过程…...
03.01、三合一
03.01、[简单] 三合一 1、题目描述 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。 构造函数会传入一个stackSize参数…...
github上clone代码过程
从 GitHub 上拉取代码的过程非常简单,一般通过 git clone 命令来完成。以下是详细步骤: 下载git工具 要下载并安装 Git,你可以根据你的操作系统来选择相应的步骤。以下是如何在不同操作系统上安装 Git 的详细说明: 1. 在 Windo…...
ChatGLM3模型搭建教程
一、介绍 ChatGLM3 是智谱 AI 和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型…...
多层建筑能源参数化模型和城市冠层模型的区别
多层建筑能源参数化(Multi-layer Building Energy Parameterization, BEP)模型和城市冠层模型(Urban Canopy Model, UCM)都是用于模拟城市环境中能量交换和微气候的数值模型,但它们的侧重点和应用场景有所不同。以下是…...
27. Redis并发问题
1. 前言 对于一个在线运行的系统,如果需要修改数据库已有数据,需要先读取旧数据,再写入新数据。因为读数据和写数据不是原子操作,所以在高并发的场景下,关注的数据可能会修改失败,需要使用锁控制。 2. 分布式场景 2.1 分布式锁场景 面试官提问: 为什么要使用分布式锁?…...
JVM四种垃圾回收算法以及G1垃圾回收器(面试)
JVM 垃圾回收算法 标记清除算法:标记清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。 在标记阶段通过根节点,标记所有从根节点开始的对象。然后,在清除阶段,清除所有未被标记的对象 适用场合: 存活对…...
Python 数学建模——Vikor 多标准决策方法
文章目录 前言原理步骤代码实例 前言 Vikor 归根到底其实属于一种综合评价方法。说到综合评价方法,TOPSIS(结合熵权法使用)、灰色关联度分析、秩和比法等方法你应该耳熟能详。Vikor 未必比这些方法更出色,但是可以拓展我们的视野。…...
计算机网络八股总结
这里写目录标题 网络模型划分(五层和七层)及每一层的功能五层网络模型七层网络模型(OSI模型) 三次握手和四次挥手具体过程及原因三次握手四次挥手 TCP/IP协议组成UDP协议与TCP/IP协议的区别Http协议相关知识网络地址,子…...
AMD CMD UMD CommonJs ESM 的历史和区别
这几个东西都是用于定义模块规范的。有些资料会提及到这些概念,不理清楚非常容易困惑。 ESM(ES Module) 这个实际上我们是最熟悉的,就是ES6的模块功能。出的最晚,因为是官方出品,所以大势所趋,…...
人工智能数据基础之微积分入门-学习篇
目录 导数概念常见导数和激活导数python代码绘制激活函数微分概念和法则、积分概念微积分切线切面代码生成案例链式求导法则反向传播算法(重要) 一、概念 二、常见导数及激活导数 常见激活函数及其导数公式: 在神经网络中,激活函数用于引入非线性因素&…...
【PSINS】ZUPT代码解析(PSINS_SINS_ZUPT)|MATLAB
这篇文章写关于PSINS_SINS_ZUPT的相关解析。【值得注意的是】:例程里面给的这个m文件的代码,并没有使用ZUPT的相关技术,只是一个速度观测的EKF 简述程序作用 主要作用是进行基于零速更新(ZUPT)的惯性导航系统(INS)仿真和滤波 什么是ZUPT ZUPT是Zero Velocity Update(…...
多态(上)【C++】
文章目录 多态的概念多态的实现多态产生的条件什么是虚函数?虚函数的重写和协变重写协变 析构函数的重写为什么有必要要让析构函数构成重写? 多态的概念 C中的多态是面向对象编程(OOP)的一个核心特性,指的是同一个接口…...
如何驱动一枚30年前的音源芯片,YMF288驱动手记 Part2
一些问题 在上一篇里面虽然策划了想要驱动YMF288所需要做的事情以及目标。但是,在板子打出来后,我在进一步的研究中,发现我犯了个错误,那就是YMF288并不是使用现在很多轻量化的嵌入式,比如ESP32常用的I2S协议的&#x…...
yarn webpack脚手架 react+ts搭建项目
安装 Yarn 首先,确保你已经安装了 Node.js 和 Yarn。如果还没有安装 Yarn,可以通过以下命令安装: npm install -g yarn创建项目 使用 create-react-app 脚手架创建一个带有 TypeScript 的项目,node更新到最新版,并指定…...
防蓝光护眼灯有用吗?五款防蓝光效果好的护眼台灯推荐
现在孩子的很多兴趣班和课后辅导班都是在线上举行,通常对着手机电脑长时间。电子产品有大量蓝光和辐射,会伤害到孩子的眼睛。但为了学习,也是没办法。护眼台灯的出现可以让孩子们的眼睛得到保护,防止蓝光对眼睛的伤害。防蓝光护眼…...
Mac使用Elasticsearch
下载 Past Releases of Elastic Stack Software | Elastic 解压tar -xzvf elasticsearch-8.15.1-darwin-x86_64.tar.gz 修改配置文件config/elasticsearch.yml xpack.security.enabled: false xpack.security.http.ssl: enabled: false 切换目录 cd elasticsearch-8.15.1/…...
DevOps -CI/CD 与自动化部署
DevOps - CI/CD 与自动化部署详解 DevOps 是一种结合开发(Development)与运维(Operations)的方法论,旨在通过工具和文化变革,促进软件开发和运维之间的协作,提升软件交付的效率、质量和稳定性。…...
单体架构系统是不是已经彻底死亡?
单体架构系统并未“彻底死亡”,尽管在复杂和大规模的应用场景中,它可能不再是首选的架构模式。单体架构系统,也称为巨石系统(Monolithic),在软件发展过程中是最广泛的架构风格之一,出现时间最早…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果。默认使用更快的md4哈希算法。AST直接从Loa…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
