【HMM】Hidden Markov Model

news2024/11/27 8:30:31

文章目录

  • 1 HMM 的概念
    • 1.1 引入
      • 1.1.1 Markov property
      • 1.1.2 Markov chain
      • 1.1.3 一阶离散马尔可夫模型
    • 1.2 HMM 的定义
    • 1.3 观测序列的生成过程
    • 1.4 HMM 的 3 个基本问题
  • 2 三个基本问题的解法
    • 2.1 概率计算算法
      • 2.1.1 直接计算法
      • 2.1.2 向前算法
      • 2.1.3 向后算法
      • 2.1.4 一些概率与期望值的计算
    • 2.2 学习算法
    • 2.3 预测算法

来自《统计学习方法》—李航


隐马尔可夫模型(Hidden Markov Model,HMM)是可用于标注问题(tagging,给定观测的序列预测其对应的标记序列)的统计学模型,描述由隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型。HMM 在语音识别、自然语言处理、生物信息、模式识别等领域有着广泛的应用。

输入变量与输出变量均为连续变量的预测问题称为回归问题;
输出变量为有限个离散变量的预测问题称为分类问题;
输入变量与输出变量均为变量序列的预测问题称为标注问题。

1 HMM 的概念

1.1 引入

这里写图片描述

马尔可夫模型的观测序列本身就是状态序列;
隐马尔可夫模型的观测序列不是状态序列

1.1.1 Markov property

如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程。
X ( t + 1 ) = f ( X ( t ) ) X(t+1) = f(X(t)) X(t+1)=f(X(t))

1.1.2 Markov chain

时间状态都离散的马尔可夫过程称为马尔可夫链

几种典型形状的马尔可夫链

这里写图片描述

  • (a). 状态转义概率组成的A矩阵没有零值的Markov链
  • (b). A矩阵有零值的Markov链
  • (c./d). 左-右形式的Markov链

Probabilistic Graphical Model

1.1.3 一阶离散马尔可夫模型

在这里插入图片描述

  • N N N 个状态, S 1 S_1 S1, S 2 S_2 S2 S N S_N SN
  • 存在一个离散的时间序列 t = 0 , t = 1 … … t=0,t=1…… t=0,t=1……
  • 在每个时刻t,系统只能处于唯一一个状态 q t q_t qt
  • 下一个时刻所处的状态是随机出现的
  • 当前状态 q t q_t qt 只与前面相邻的一个状态 q t − 1 q_{t-1} qt1 有关,与其他状态无关(日光族,积蓄什么的,不存在的)

P [ q t = j ∣ q t − 1 = i , q t − 1 = k ] = P [ q t = j ∣ q t − 1 = i ] P[q_t = j | q_{t-1} = i, q_{t-1} = k] = P[q_t = j | q_{t-1} = i] P[qt=jqt1=i,qt1=k]=P[qt=jqt1=i]

1.2 HMM 的定义

HMM 是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列(state sequence),再由各个状态生成一个观测而产生观测随机序列(观测序列,observation sequence)的过程。

序列的每一个位置又可以看作是一个时刻。

HMM 由初始概率分布状态转移概率分布以及观测概率分布确定,定义如下:

  • Q Q Q 是所有可能的状态的集合 V V V 是所有可能的观测的集合

Q = { q 1 , q 2 , . . . , q N } , V = { v 1 , v 2 , . . . , v M } Q = \{q_1,q_2,...,q_N\},V = \{v_1,v_2,...,v_M\} Q={q1,q2,...,qN}V={v1,v2,...,vM}

其中, N N N 是可能的状态数, M M M 是可能的观测数

  • I I I 是长度为 T T T状态序列 O O O 是对应的观测序列
    I = ( i 1 , i 2 , . . . , i T ) , O = ( o 1 , o 2 , . . . , o T ) I = (i_1,i_2,...,i_T),O = (o_1,o_2,...,o_T) I=(i1,i2,...,iT)O=(o1,o2,...,oT)

  • A A A状态转移概率矩阵

A = [ a i j ] N × N A = [a_{ij}]_{N \times N} A=[aij]N×N

其中,

a i j = P ( i t + 1 = q j ∣ i t = q i ) , i = 1 , 2 , . . . , N ; j = 1 , 2 , . . . , N a_{ij} = P(i_{t+1} = q_j|i_t = q_i), i = 1,2,...,N; j = 1,2,...,N aij=P(it+1=qjit=qi),i=1,2,...,N;j=1,2,...,N

是在时刻 t t t 处于状态 q i q_i qi 条件下在时刻 t + 1 t+1 t+1 转移到状态 q j q_j qj 的概率。

  • B B B观测概率矩阵

B = [ b j ( k ) ] N × M B = [b_j(k)]_{N \times M} B=[bj(k)]N×M

其中,

b j ( k ) = P ( o t = v k ∣ i t = q j ) , k = 1 , 2 , . . . , M ; j = 1 , 2 , . . . , N b_j(k) = P(o_t = v_k | i_t = q_j), k=1,2,...,M;j = 1,2,...,N bj(k)=P(ot=vkit=qj),k=1,2,...,M;j=1,2,...,N
是在时刻 t t t 处于状态 q j q_j qj 的条件下生成观测 v k v_k vk 的概率。

  • π \pi π初始状态概率向量

π = ( π i ) \pi = (\pi_i) π=(πi)

其中,

π = P ( i 1 = q i ) , i = 1 , 2 , . . . , N \pi = P(i_1 = q_i),i=1,2,...,N π=P(i1=qi),i=1,2,...,N

是时刻 t = 1 t=1 t=1 处于状态 q i q_i qi 的概率。


HMM 由初始状态概率向量 π \pi π状态转移概率矩阵 A A A观测概率矩阵 B B B 决定。 π \pi π A A A 决定状态序列, B B B 决定观测序列。因此 HMM λ \lambda λ 可用如下的三元符号表示:

λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)

A , B , π A,B,\pi A,B,π 称为 HMM 的三要素。

状态转移概率矩阵 A A A 与初始状态概率向量 π \pi π 确定了隐藏的马尔可夫链,生成不可观测的状态序列。观测概率矩阵 B B B 确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列

我们仔细分析下有效参数量

  • π ∈ R N \pi \in \mathbb{R}^{N} πRN,有效参数量为 N − 1 N-1 N1,因为所有初始状态概率的和要求为 1
  • A ∈ R N × N A \in \mathbb{R}^{N \times N} ARN×N,有效参数量为 N × N − N N×N-N N×NN,因为每行的概率的和要求为 1
  • B ∈ R N × M B \in \mathbb{R}^{N \times M} BRN×M,有效参数量为 N × M − N N×M-N N×MN,因为每行的概率的和要求为 1

从定义可知,HMM 作了两个基本假设:

  • 齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻 t t t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t t t 无关。
  • 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。

P ( o t ∣ i r , o r , i T − 1 , o T − 1 , . . . , i t + 1 , o t + 1 , i t , i t − 1 , o t − 1 , . . . . , i 1 , o 1 ) = P ( o t ∣ i t ) P(o_t|i_r,o_r,i_{T-1},o_{T-1},...,i_{t+1},o_{t+1},i_t,i_{t-1},o_{t-1},....,i_1,o_1) = P(o_t | i_t) P(otir,or,iT1,oT1,...,it+1,ot+1,it,it1,ot1,....,i1,o1)=P(otit)

HMM 可以用于标注(tagging),这时状态对应着标记,标注问题是给定观测的序列预测其对应的标记序列(反向操作)。可以假设标注问题的数据是由 HMM 生成的,这样我们可以利用 HMM 的学习和预测算法进行标注。


下面看一个 HMM 的例子。

盒子和球模型)假设有 4 个盒子,每个盒子里都装有红白两种颜色的球,盒子里红白数如下表所示:

盒子1234
红球数5368
白球数5742

按照下面的方法抽球,产生一个球的颜色的观测序列:开始,从 4 个盒子里以等概率随机选取 1 个盒子,从这个盒子里随机抽出 1 个球,记录其颜色后,放回;然后,从当前盒子随机转移到下一个盒子,规则是:如果当前盒子是盒子 1,那么下一盒子一定是盒子 2,如果当前是盒子 2 或 3,那么分别以概率 0.4 和 0.6 转移到左边或右边的盒子,如果当前是盒子 4,那么各以 0.5 的概率停留在盒子 4 或转移到盒子 3;确定转移的盒子后,再从这个盒子里随机抽出一歌球,记录其颜色,放回去;如此下去重复 4 次,得到一个球的颜色的观测序列

O = { 红,红,白,白,红 } O = \{红,红,白,白,红\} O={红,红,白,白,红}

在这里插入图片描述
在这个过程中,观察者只能观测到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列(状态序列)。

在这个例子中有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列)。前者是隐藏的,只有后者是可观测的。这是一个 HMM 的例子,根据所给条件,可以明确状态集合、观测集合、序列长度以及模型的三要素。

  • 盒子对应状态,状态的集合是
    Q = { 盒子 1 ,盒子 2 ,盒子 3 ,盒子 4 } Q =\{盒子1,盒子2,盒子3,盒子4\} Q={盒子1,盒子2,盒子3,盒子4}

  • 球的颜色对应观测,观测的集合是

V = { 红,白 } , M = 2 V = \{红,白\},M=2 V={红,白},M=2

  • 状态序列观测序列长度 T = 5 T=5 T=5

  • 初始概率分布 π \pi π

π = ( 0.25 , 0.25 , 0.25 , 0.25 ) T \pi = (0.25,0.25,0.25,0.25)^T π=(0.25,0.25,0.25,0.25)T

  • 状态转移概率分布 A A A

A = [ 0 1 0 0 0.4 0 0.6 0 0 0.4 0 0.6 0 0 0.5 0.5 ] A = \begin{bmatrix} 0& 1& 0& 0\\ 0.4& 0& 0.6& 0\\ 0& 0.4& 0& 0.6\\ 0& 0& 0.5& 0.5 \end{bmatrix} A= 00.400100.4000.600.5000.60.5

  • 观测概率分布 B B B

B = [ 0.5 0.5 0.3 0.7 0.6 0.4 0.8 0.2 ] B = \begin{bmatrix} 0.5 & 0.5\\ 0.3 & 0.7\\ 0.6 & 0.4\\ 0.8 & 0.2 \end{bmatrix} B= 0.50.30.60.80.50.70.40.2

1.3 观测序列的生成过程

根据 HMM 定义,可以将一个长度为 T T T 的观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT) 的生成过程描述如下:

输入: HMM λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π),观测序列长度 T T T
输出: 观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT)

(1)按照初始状态分布 π \pi π 产生状态 i 1 i_1 i1
(2)令 t = 1 t=1 t=1
(3)按照状态 i t i_t it 的观测概率分布 b i t ( k ) b_{i_t}(k) bit(k) 生成 o t o_t ot
(4)按照状态 i t i_t it 的状态转移概率分布 { a i t , i t + 1 a_{i_t,i_{t+1}} ait,it+1}, i t + 1 = 1 , 2 , . . . , N i_{t+1} = 1,2,...,N it+1=1,2,...,N
(5)令 t = t + 1 t = t+1 t=t+1;如果 t < T t<T t<T,转步(3);否则,终止

1.4 HMM 的 3 个基本问题

HMM 有三个基本问题:

(1)概率计算问题(评估问题,求观测序列出现的概率)。给定模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),计算在模型 λ \lambda λ 下观测序列 O O O 出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

(2)学习问题(求HMM模型参数)。已知观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),估计模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 参数,使得在该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ) 最大。即用极大似然估计的方法估计参数。

(3)预测问题(求状态序列),也称解码(decoding)问题。已经模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),求给定观测序列条件概率 P ( I ∣ O ) P(I|O) P(IO) 最大的状态序列 I = ( i 1 , i 2 , . . . , i T ) I=(i_1,i_2,...,i_T) I=(i1,i2,...,iT)。即给定观测序列,求最有可能的对应的状态序列。

下面用一个例子,来形象化上面三个问题

赌场的欺诈

在这里插入图片描述
在这里插入图片描述

某赌场在投骰子根据点数决定胜负时,暗中采取了如下作弊手段,在连续多次投骰子的过程中,通常使用公平骰子 S 1 S_1 S1,偶尔混进一个灌铅骰子 S 2 S_2 S2

公平骰子 S 1 S_1 S1 和灌铅骰子 S 2 S_2 S2 的区别如下:

骰子 S 1 S_1 S1骰子 S 2 S_2 S2
1 1 11/60
2 2 21/61/8
3 3 31/61/8
4 4 41/63/16
5 5 51/63/16
6 6 61/63/8

一次连续投骰子的过程模拟如下:

时间1234567
骰子 S 1 S_1 S1 S 1 S_1 S1 S 1 S_1 S1 S 2 S_2 S2 S 1 S_1 S1 S 1 S_1 S1 S 1 S_1 S1
投出点数3345162

上表中,第二列“骰子”相当于状态序列(隐序列),第三列“投出点数”相当于观测序列(明序列)

问题1—概率计算问题(评估问题)

  • 一个骰子投出的点数记录为,131452,会出现这个点数记录的概率有多大

问题2—学习问题(似然估计)

  • 一个骰子投出的点数记录为,131452,作弊骰子投出各点数的概率是怎么样?公平骰子投出各点数的概率又是怎么样的?赌场是何时换用骰子的(转换概率如何)?——从大量的点数序列样本中学习得出

问题3—预测问题(解码问题)

  • 一个骰子投出的点数记录为,131452,点数序列中的哪些点数是用骰子 S 2 S2 S2 投出的?

2 三个基本问题的解法

2.1 概率计算算法

概率计算问题(评估问题,求观测序列出现的概率)。给定模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),计算在模型 λ \lambda λ 下观测序列 O O O 出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

一个骰子投出的点数记录为,131452,会出现这个点数记录的概率有多大

本小节介绍计算观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ) 的向前(forward)与向后(backward)算法。先介绍概念上可行但计算上不可行的直接计算法。

2.1.1 直接计算法

给定模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),计算在模型 λ \lambda λ 下观测序列 O O O 出现的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。最直接的方法是按概率公式直接计算。通过列举所有可能的长度为 T T T 的状态序列 I = ( i 1 , i 2 , . . . , i T ) I = (i_1,i_2,...,i_T) I=(i1,i2,...,iT),求各个状态序列 I I I 与观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT) 的联合概率 P ( O , I ∣ λ ) P(O,I|\lambda) P(O,Iλ),然后对所有可能的状态序列求和,得到 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

状态序列 I = ( i 1 , i 2 , . . . , i T ) I = (i_1,i_2,...,i_T) I=(i1,i2,...,iT) 的概率是

P ( I ∣ λ ) = π i 1 a i 1 i 2 a i 2 i 3 . . . a i T − 1 i T P(I|\lambda) = \pi_{i_1}a_{i_1i_2}a_{i_2i_3}...a_{i_{T-1}i_T} P(Iλ)=πi1ai1i2ai2i3...aiT1iT

对固定的状态序列 I = ( i 1 , i 2 , . . . , i T ) I = (i_1,i_2,...,i_T) I=(i1,i2,...,iT),观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT) 的概率是 P ( O ∣ I , λ ) P(O|I,\lambda) P(OI,λ)

P ( O ∣ I , λ ) = b i 1 ( o 1 ) b i 2 ( o 2 ) . . . b i T ( o T ) P(O|I,\lambda) = b_{i_1}(o_1)b_{i_2}(o_2)...b_{i_T}(o_T) P(OI,λ)=bi1(o1)bi2(o2)...biT(oT)

O O O I I I 同时出现的联合概率为

P ( O , I ∣ λ ) = P ( O ∣ I , λ ) P ( I ∣ λ ) = π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1 i T b i T ( o T ) P(O,I|\lambda) = P(O|I,\lambda)P(I|\lambda)=\pi_{i_1} b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...a_{i_{T-1}i_T}b_{i_T}(o_T) P(O,Iλ)=P(OI,λ)P(Iλ)=πi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)

然后,对所有可能的状态序列 I I I 求和,得到观测序列 O O O 的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ),也即

P ( O ∣ λ ) = ∑ I P ( O , I ∣ λ ) = ∑ i 1 , i 2 , . . . , i T π i 1 b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1 i T b i T ( o T ) P(O|\lambda) = \sum_IP(O,I|\lambda) = \sum_{i_1,i_2,...,i_T}\pi_{i_1} b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...a_{i_{T-1}i_T}b_{i_T}(o_T) P(Oλ)=IP(O,Iλ)=i1,i2,...,iTπi1bi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)

但是,上面公式的计算量很大,是 O ( T N T ) O(TN^T) O(TNT) 阶的( I I I 的所有排列组合是 T ! T! T!,采用递归方式计算的话,复杂度是 T T T,序列长度 T T T,每个位置 N N N 种情况,也就是 N T N^T NT),这种算法不可行!下面介绍计算观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ) 的有效算法,前向-后向算法(forward-backward algorithm)

未完待续。。。

2.1.2 向前算法

2.1.3 向后算法

2.1.4 一些概率与期望值的计算

2.2 学习算法

2.3 预测算法

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

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

相关文章

基于springboot+vue的智慧生活商城系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

反射与串扰

一、 反射 原因&#xff1a;由于AD采集端与传感器端和双绞线的阻抗不匹配而导致待测信号在AD处反射叠加&#xff1b; 解决办法&#xff1a;1、对AD采集端和炮榄传感器端进行合适于炮榄的阻抗匹配。具体来说可 以在AD采集端并联一个匹配电阻&#xff0c;电阻的阻值需要和传输线…

免费录音软件大集合,轻松录制高品质音频

“有没有免费的录音软件推荐呀&#xff1f;最近我在制作一个关于环境保护的宣传片&#xff0c;需要录制一些大自然的声音。但是我发现自己并不擅长录音&#xff0c;甚至不知道如何开始。希望有人能推荐一些免费且易用的录音软件&#xff0c;感激不尽&#xff01;” 在当今信息…

保护王国的钥匙:探索特权访问管理 (PAM) 的深度

在零信任架构的范例中&#xff0c;特权访问管理&#xff08;PAM&#xff09;正在成为网络安全策略的关键组成部分&#xff0c;旨在控制和监控组织内的特权访问。本文深入探讨了 PAM 在现代网络安全中的关键作用&#xff0c;探讨了其原理、实施策略以及特权访问的演变格局。 什么…

Czkawka重复文件查找工具

分享一款重复文件查找工具&#xff0c;Czkawka是一款简单、快速且免费的用于查找重复项、空文件夹、相似图像等的多功能的应用程序。可以从计算机中删除不必要的文件。 软件特色&#xff1a; 用内存安全的 Rust 编写&#xff0c;惊人的快 – 由于使用了或多或少的高级算法和多线…

【Java常用API】正则表达式练习

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

【Auth Proxy】为你的 Web 服务上把锁

Auth Proxy 一个极简的用于 Web 服务鉴权的反向代理服务 极其简约的 UI对你的真实服务无任何侵入性支持容器部署&#xff0c;Docker Image 优化到不能再小&#xff08;不到 9MB&#xff09;GitHub&#xff1a;https://github.com/wengchaoxi/auth-proxy 效果 我在 http://lo…

一文读懂NAS存储:从零开始的存储“神器”

目录 一、初识NAS&#xff1a;它是何方神圣&#xff1f; 二、NAS存储的特点 三、NAS的工作原理简述 四、NAS的应用场景介绍 五、NAS与其他存储的区别 今天我们要揭开神秘面纱的是一个名为“NAS”的存储设备&#xff0c;它就像是你家中的私人云端资料库&#xff0c;帮你轻松…

【AIGC】全球首位AI软件工程师 Devin,程序员们真的会失业吗

文章目录 强烈推荐推荐一&#xff1a;人工智能网站推荐二&#xff1a;人工智能工具 Devin的诞生Devin的特点和能力Devin如何工作&#xff1f;程序员会彻底消失吗&#xff1f;总结强烈推荐推荐一&#xff1a;人工智能网站推荐二&#xff1a;人工智能工具 专栏集锦写在最后 强烈推…

【论文速读】| 增强静态分析以实现实用漏洞检测:一种集成大语言模型的方法

本次分享论文为&#xff1a;Enhancing Static Analysis for Practical Bug Detection: An LLM-Integrated Approach 基本信息 原文作者&#xff1a;Haonan Li, Yu Hao, Yizhuo Zhai, Zhiyun Qian 作者单位&#xff1a;加州大学河滨分校 关键词&#xff1a;静态分析、错误检测…

Linux hook系统调用使你文件无法删除

文章目录 前言一、什么是hook技术二、Linux hook种类三、系统调用表hook3.1 查看删除文件用到系统调用3.2 获取系统调用函数3.3 编写hook函数3.4 替换hook函数3.5 测试 参考资料 前言 hook技术在Linux系统安全领域有着广泛的应用&#xff0c;例如通过hook技术可以劫持删除文件…

Regex正则表达式 --java学习笔记

正则表达式 由一些特定字符组成&#xff0c;代表的是一个规则作用一&#xff1a;校验数据格式是否合法作用二&#xff1a;在一段文本中查找满足要求的内容 String提供了一个匹配正则表达式的方法 public boolean matches&#xff08;String regex&#xff08;正则表达式&…

高校|政务|医院|集团等网站站群建设要怎么做

网站站群集约化系统&#xff0c;建立统一部署、统一标准、统一规范、统一管理、统一安全体系、支持移动终端访问的“门户网站群”&#xff0c;建设以高校/集团/医院/门户网站为主站&#xff0c;以部门、院系、子公司及其应用为基础支撑的若干子站&#xff0c;形成若干主站子站以…

python3入门机器学习,知识点全面总结与代码实操示例

目录 写在前面的话 一、机器学习的基本任务与方法分类 机器学习的概念和定义 基本任务 二分类任务&#xff08;Binary Classification&#xff09;&#xff1a; 多分类任务&#xff08;Multi-class Classification&#xff09;&#xff1a; 多标签分类任务&#xff08;Mu…

第二证券股市指南:如何看懂股票的量价关系?

股票成交量是指生意日当天个股成交的股数&#xff0c;股票成交量越大&#xff0c;说明当天股票生意比较生动&#xff0c;商场上的流动资金增加&#xff0c;股票后期上涨的或许性加大。成交量越小&#xff0c;说明个股当天生意比较低迷&#xff0c;缺少出资者的注重。所以一般情…

室友打团太吵?一条命令断掉它的WiFi

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;更多干货&#xff0c;请关注专栏《网络安全自学教程》 ARP欺骗原理 1、arpspoof实现ARP欺骗1.1、主机探测1.2、欺骗…

【WEB3安全基建项目Secwarex】空投指南

GoPlusSecurity是WEB3安全基建项目&#xff0c;3月8日完成400万美元的私募融资&#xff0c;目前总融资已经高达1500万美元&#xff0c;其中包括Binance Labs、Huobi Incubator、Kucoin Ventures、Avalanche等知名机构参投。 1、打开网址&#xff1a;secwarex.io&#xff0c;点…

Gin框架 源码解析

https://zhuanlan.zhihu.com/p/136253346 https://www.cnblogs.com/randysun/category/2071204.html 这个博客里其他go的内容也讲的很好 启动 因为 gin 的安装教程已经到处都有了&#xff0c;所以这里省略如何安装&#xff0c; 建议直接去 github 官方地址的 README 中浏览安装…

QT 驾校系统界面布局编写

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(ui->label_img->width(),ui->label_img->height());//图片自适应窗口大小ui->label_img->setScaledContents(true);//图片置…

sora笔记(三):diffusion transformer模型的发展历程

:::info &#x1f4a1; 在sora笔记&#xff08;一&#xff09;&#xff1a;sora前世今生与技术梗概 一文中介绍了目前未开源的sora模型可能涉及到的技术点&#xff0c;包括介绍了Vision Transformer&#xff0c;作为transformer正式用于图像的一种范式&#xff0c;为本文中将提…