当前位置: 首页 > news >正文

AI大模型从0到1记录学习 大模型技术之数学基础 day26

高等数学
导数
导数的概念
导数(derivative)是微积分中的一个概念。函数在某一点的导数是指这个函数在这一点附近的变化率(即函数在这一点的切线斜率)。导数的本质是通过极限的概念对函数进行局部的线性逼近。

当函数f的自变量在一点x_0上产生一个增量h时,函数输出值的增量∆y与自变量增量∆x的比值在∆x趋于0时的极限如果存在,即为f在x_0处的导数,记作f’(x_0)、df/dx(x_0)或〖df/dx|〗_(x=x_0 )。
f^’ (x_0 )=lim┬(∆x→0)⁡〖(f(x_0+∆x)-f(x_0))/∆x〗

例如在运动学中,物体的位移对于时间的导数就是物体的瞬时速度:v=dx/dt。
基本函数的导数
说明 公式 例子
常数的导数 ©^‘=0 (3)^’=0
幂函数的导数 (x^α )'=αx(α-1) (x^3 )'=3x2
指数函数的导数 (a^x )'=ax ln⁡a (3^x )'=3x ln⁡3
(e^x )'=ex —
对数函数的导数 (log_a⁡x )^‘=1/(x ln⁡a ) (log_3⁡x )^’=1/(x ln⁡3 )
(ln⁡x )^‘=1/x —
三角函数的导数 (sin⁡x )^’=cos⁡x —
(cos⁡x )^‘=〖-sin〗⁡x —
(tan⁡x )'=sec2⁡x=1/cos^2⁡x —
(cot⁡x )'=〖-csc〗2⁡x=(-1)/sin^2⁡x —
导数的求导法则
说明 公式
两函数之和求导 (f+g)'=f’+g’
两函数之积求导 (fg)'=f’ g+fg’
两函数之商求导 (f/g)'=(f’ g-fg’)/g^2
复合函数的导数 若f(x)=h[g(x)],则f’(x)=h’[g(x)]∙g^’ (x)
例如:求函数f(x)=x4+sin⁡(x2 )-ln⁡(x) e^x+7在x=3处的导数。
f^’ (x)=4x(4-1)+cos⁡(x2 )∙2x-(e^x/x+ln⁡(x) e^x )+0
=4x3+2xcos(x2 )-e^x/x-ln⁡(x) e^x
f^’ (3)=108+6 cos⁡(9)-e^3/3-ln⁡(3) e^3
利用导数求极值
导数等于零的点称为函数的驻点(或极值可疑点),在这类点上函数可能会取得极大值或极小值。进一步判断则需要知道导数在附近的符号。

二阶导数
二阶导数的概念
在微积分中,函数的二阶导数是函数导数的导数。粗略来说,某个量的二阶导数描述该量变化率变化的快慢。例如物体位置对时间的二阶导数是物体的瞬时加速度,即该物体速度随时间的变化率:a=dv/dt=(d^2 x)/(dt^2 )。
函数f的二阶导数通常记作f’‘、(d^2 y)/(dx^2 )或d/dx (dy/dx)。
二阶导数与函数凹凸的关系
函数的二阶导数描述了函数图像的凹凸方向和程度。若二阶导数在某区间恒为正,则函数在该区间向上弯(也称下凸函数)。反之,若二阶导数在某区间恒为负,则函数在该区间向下弯(也称上凸函数)。
若函数的二阶导数在某点左右异号,则图像由向上弯转为向下弯,或反之。这种点称之为拐点。若二阶导数连续,则在该点处二阶导数为0。但反之二阶导数为0的点不一定是拐点。如f(x)=x^4,在x=0处有f’‘(0)=0,但f(x)在实数系上无拐点。
二阶导数与凹凸性的关系有助于判断函数的驻点是否为极大值点或极小值点:
若f^’ (x)=0,f^‘’ (x)<0,则f在x取得极大值。
若f^’ (x)=0,f^‘’ (x)>0,则f在x取得极小值。
若f^’ (x)=0,f^‘’ (x)=0,则该点可能是拐点,也可能是极大值点或极小值点。
偏导与梯度
偏导数
如果函数f的自变量并非单个元素,而是多个元素,例如:
f(x,y)=x2+xy+y2

可将其中一个元素x看作参数,此时f可看作关于另一元素y的函数。
f_x (y)=x2+xy+y2
在x=a固定的情况下,可计算f_x关于y的导数:
f_(x=a)'(y)=a+2y
这种导数称为偏导数,一般记作:
∂f/∂y (x,y)=x+2y
更一般地来说,一个多元函数f(x_1,x_2,…,x_n )在点(a_1,a_2,…,a_n )处对x_i的偏导数定义为:
∂f/(∂x_i ) (a_1,a_2,…,a_n )=lim┬(∆x_i→0)⁡〖(f(a_1,…a_i+∆x_i,…,a_n )-f(a_1,…a_i,…,a_n))/(∆x_i )〗
梯度
多元函数f(x_1,…,x_n )关于每个变量x_i都有偏导数∂f/(∂x_i ),在点a处,这些偏导数定义了一个向量。
∇f(a)=[∂f/(∂x_1 ) (a),∂f/(∂x_2 ) (a),…,∂f/(∂x_n ) (a)]
这个向量称为f在点a的梯度。
例如:f(x,y)=x2+xy+y2在(1,1)处的梯度为[3,3]。

线性代数
标量与向量
标量与向量的概念
标量(scalar)
标量是一个单独的数,只有大小。
向量(vector)
向量由标量组成,有大小有方向。
行向量:(■(2&5&8))
列向量:(■(2@5@8))
向量运算
向量转置:列向量转置结果为行向量
x=(■(2@5@8))
x^T=(■(2&5&8))
向量相加:对应元素相加
(■(2@5@8))+(■(1@3@7))=(■(3@8@15))
向量与标量相乘:标量与向量每个元素相乘
3×(■(2@5@8))=(■(6@15@24))
向量内积:又称向量点乘,两向量对应元素乘积之和,结果为标量
〈x,y〉=〈(■(2@5@8)),(■(1@3@7))〉=2+15+56=73
两向量之间夹角表示为
cos⁡θ=〈x,y〉/(√(〈x,x〉 ) √(〈y,y〉 ))
向量范数
范数(norm)是具有“长度”概念的函数。
L0范数(也称0范数)
‖x‖0=非零元素的个数
例如:
x=(■(0@2@-1)),‖x‖0=2
L1范数(也称和范数或1范数)
‖x‖1=∑(i=1)^m▒|x_i | =|x_1 |+⋯+|x_m |
例如:
x=(■(0@2@-1)),‖x‖1=0+2+1=3
L2范数(也称欧几里得范数或2范数)
‖x‖2=(∑(i=1)^m▒|x_i |^2 )^(1/2)=√((|x_1 |^2+⋯+|x_m |^2 ) )
例如:
x=(■(0@2@-1)),‖x‖2=√(0+4+1)=√5
Lp范数
‖x‖p=(∑(i=1)^m▒|x_i |^p )^(1/p)=(|x_1 |^p+⋯+|x_m |^p )^(1/p)
在numpy中,可以利用linalg.norm 函数方便地计算向量的范数。
矩阵与张量
矩阵的概念
一个m×n的矩阵(matrix)是一个有m行n列元素的矩形阵列。用R^(m×n)表示所有m×n实数矩阵的向量空间。
[■(1&2@3&5@4&8)]∈R^(3×2)
方阵:行数等于列数的矩阵
[■(1&2@3&4)]∈R^(2×2)
对角矩阵:主对角线以外元素全为0的方阵
[■(1&0&0@0&5&0@0&0&9)]
单位矩阵:主对角线元素全为1的对角矩阵
I
(3×3)=[■(1&0&0@0&1&0@0&0&1)]
矩阵乘法
矩阵乘法运算
两个矩阵的乘法仅当矩阵A的列数和矩阵B的行数相等时才能定义。如A∈R(m×n),B∈R(n×p),它们的乘积AB∈R^(m×p)
[AB]ij=a_i1 b_1j+a_i2 b_2j+⋯+a_in b_nj=∑(r=1)^n▒〖a_ik b_kj 〗
例如:
[■(1&0&2@-1&3&1)]×[■(3&1@2&1@1&0)]=[■(1×3+0×2+2×1&1×1+0×1+2×0@(-1)×3+3×2+1×1&(-1)×1+3×1+1×0)]=[■(5&1@4&2)]
特别地,矩阵与单位矩阵相乘等于矩阵本身:
AI=A(A∈R(m×n),I∈R(n×n) ) 或 IA=A(I∈R(n×n),A∈R(n×m) )
例如:
AI=[■(1&2@3&5@4&8)]×[■(1&0@0&1)]=[■(1×1+2×0&1×0+2×1@3×1+5×0&3×0+5×1@4×1+8×0&4×0+8×1)]=[■(1&2@3&5@4&8)]=A
矩阵乘法的性质
矩阵乘法满足结合律、左分配律和右分配律。不满足交换律即AB≠BA。
结合律:若A∈R(m×n),B∈R(n×p),C∈R^(p×q),则(AB)C=A(BC)
左分配律:若A∈R(m×n),B∈R(m×n),C∈R^(n×p),则(A+B)C=AC+BC
右分配律:若A∈R(m×n),B∈R(n×p),C∈R^(n×p),则A(B+C)=AB+AC
矩阵转置
矩阵转置运算
矩阵A∈R(m×n)的转置是一个n×m的矩阵,记为AT。其中的第i个行向量是原矩阵的第i个列向量;或者说,转置矩阵A^T第i行第j列的元素是原矩阵A第j行第i列的元素。
[A^T ]ij=a_ji
A=[■(1&2@3&5@4&8)]∈R^(3×2)
AT=[■(1&3&4@2&5&8)]∈R(2×3)
矩阵转置的性质
(A^T )^T=A
(A+B)T=AT+B^T
(kA)T=〖kA〗T
(AB)T=BT A^T
矩阵的逆
对于方阵A,如果存在另一个方阵A(-1),使得AA(-1)=I成立,此时A^(-1) A=I也同样成立。称A^(-1)为A的逆矩阵。例如:
AA^(-1)=[■(1&2@3&5)]×[■(-5&2@3&-1)]=[■(1×(-5)+2×3&1×2+2×(-1)@3×(-5)+3×5&3×2+5×(-1) )]=[■(1&0@0&1)]=I
其他矩阵运算
矩阵的向量化
矩阵A∈R^(m×n)的向量化vec(A)将矩阵A的元素按列排列成一个mn×1的向量。
vec(A)=[a_11,…a_m1,…a_1n,…a_mn ]^T
矩阵也可以转化为行向量rvec(A),称为矩阵的行向量化。
rvec(A)=[a_11,…a_m1,…a_1n,…a_mn ]
例如:A=[■(1&2@3&4)],vec(A)=(■(1@2@3@4)),rvec(A)=(■(1&2&3&4))。
矩阵的内积
矩阵A∈R(m×n)和矩阵B∈R(m×n)的内积记作〈A,B〉,它是两个矩阵对应元素乘积之和,是一个标量。
〈A,B〉=〈vec(A),vec(B)〉=∑▒〖a
(i,j) b
(i,j) 〗
矩阵的Hadamard积
矩阵A∈R(m×n)和矩阵B∈R(m×n)的Hadamard积记作A⨀B,它是两个矩阵对应元素的乘积,是一个m×n的矩阵。
(A⨀B)ij=a_ij b_ij
矩阵的Kronecker积
矩阵A∈R(m×n)和矩阵B∈R(p×q)的Kronecker积记作A⨂B,它是矩阵A中每个元素与矩阵B的乘积,是一个mp×nq的矩阵。
█((A⨂B)ij=&[■(a_1 B&a_2 B&⋯&a_n B)]@=&[■(a_ij B)](i=1,j=1)^(m,n)@=&[■(a_11 B&a_12 B&⋯&a_1n B@a_21 B&a_22 B&⋯&a_2n B@⋮&⋮&⋱&⋮@a_m1 B&a_m2 B&⋯&a_mn B)] )
Kronecker积也称为直积或张量积。
张量
张量(tensor)可视为多维数组,是标量,1维向量和2维矩阵的n维推广。
例如:3维张量
[■([■(1&2@3&5@4&8)]&[■(3&2@1&6@7&3)]&[■(5&6@9&1@2&4)] )]
矩阵求导
矩阵求导的本质就是函数对变元的每个元素逐个求导,只是写成了向量、矩阵的形式。
为方便理解,首先对变元和函数作统一的符号规定:
x=[x_1,x_2,…,x_m ]T∈Rm为实向量变元。
X=[x_1,x_2,…,x_m ]T∈R(m×n)为实矩阵变元。
f(x)∈R为实标量函数,其变元x为实向量。
f(X)∈R为实标量函数,其变元X为实矩阵。
f(x)∈R^p为实向量函数,其变元x为实向量。
f(X)∈R^p为实向量函数,其变元X为实矩阵。
F(x)∈R^(p×q)为实矩阵函数,其变元x为实向量。
F(X)∈R^(p×q)为实矩阵函数,其变元X为实矩阵。
常用求导结果
(∂x^T a)/∂x=(∂a^T x)/∂x=a
(∂x^T x)/∂x=2x
(∂x^T Ax)/∂x=(A^T+A)x
(∂a^T Xb)/∂X=ab^T
(∂a^T X^T b)/∂X=(∂〖〖(a〗^T X^T b)〗T)/∂X=(∂bT Xa)/∂X=ba^T
(∂a^T XX^T b)/∂X=ab^T X+ba^T X
(∂a^T X^T Xb)/∂X=XbaT+XabT
Jacobian矩阵与梯度矩阵
Jacobian矩阵(了解)
实标量函数f(x),对x(m×1维)的偏导向量为1×m的行向量:
D_x f(x)=∂f(x)/(∂x^T )=[∂f(x)/(∂x_1 ),∂f(x)/(∂x_2 ),…,∂f(x)/(∂x_m )]
n×1维的实向量函数f(x),对x的偏导向量为n×m的矩阵:
D_x f(x)=∂f(x)/(∂x^T )=[■(∂f(x)/(∂x_1 )&⋯&∂f(x)/(∂x_m )@⋮&⋱&⋮@∂f(x)/(∂x_1 )&⋯&∂f(x)/(∂x_m ))]∈R^(n×m)
当实标量函数f(X)的变元为实矩阵X(维度m×n)时,存在两种可能的定义:
D_X f(X)=∂f(X)/(∂X^T )=[■(∂f(X)/(∂x_11 )&⋯&∂f(X)/(∂x_m1 )@⋮&⋱&⋮@∂f(X)/(∂x_1n )&⋯&∂f(X)/(∂x_mn ))]∈R^(n×m)

D_vecX f(X)=∂f(X)/(∂vec^T (X) )=[∂f(X)/(∂x_11 ),…,∂f(X)/(∂x_m1 ),…,∂f(X)/(∂x_1n ),…,∂f(X)/(∂x_mn )]
其中D_X f(X)与D_vecX f(X)分别称为实标量函数f(X)关于实矩阵变元X的Jacobian矩阵和行偏导矩阵。两者之间的关系为D_vecX f(X)=rvec(D_X f(X))=(vec(D_X^T f(X)))^T。
实矩阵函数F(X)=[f_kl ]
(k=1,l=1)(p,q)∈R(p×q),其实矩阵变元X∈R^(m×n)。为得到该函数的Jacobian矩阵,先通过列向量化,将p×q的矩阵函数F(X)转换为pq×1的列向量:
vec(F(X))=[f_11 (X),…,f_p1 (X),…,f_1q (X),…,f_pq (X)]T∈Rpq
然后,该列向量对列向量化的X求偏导,得到pq×mn的Jacobian矩阵:
D_X f(X)=∂vec(F(X))/(∂(vecX)^T )∈R^(pq×mn)
其具体表达式为:
D_X f(X)=[■((∂f_11 (X))/(∂(vecX)^T )@⋮@(∂f_p1 (X))/(∂(vecX)^T )@⋮@(∂f_1q (X))/(∂(vecX)^T )@⋮@(∂f_pq (X))/(∂(vecX)^T ))]=[■((∂f_11 (X))/(∂x_11 )&⋯&(∂f_11 (X))/(∂x_m1 )&⋯&(∂f_11 (X))/(∂x_1n )&⋯&(∂f_11 (X))/(∂x_mn )@⋮&⋱&⋮&⋱&⋮&⋱&⋮@(∂f_p1 (X))/(∂x_11 )&⋯&(∂f_p1 (X))/(∂x_m1 )&⋯&(∂f_p1 (X))/(∂x_1n )&⋯&(∂f_p1 (X))/(∂x_mn )@⋮&⋱&⋮&⋱&⋮&⋱&⋮@(∂f_1q (X))/(∂x_11 )&⋯&(∂f_1q (X))/(∂x_m1 )&⋯&(∂f_1q (X))/(∂x_1n )&⋯&(∂f_1q (X))/(∂x_mn )@⋮&⋱&⋮&⋱&⋮&⋱&⋮@(∂f_pq (X))/(∂x_11 )&⋯&(∂f_pq (X))/(∂x_m1 )&⋯&(∂f_pq (X))/(∂x_1n )&⋯&(∂f_pq (X))/(∂x_mn ))]
梯度矩阵
采用列向量形式定义的偏导算子称为列向量偏导算子,习惯称为梯度算子。
实标量函数f(x)的梯度向量为m×1的列向量:
∇_x f(x)=∂f(x)/∂x=[∂f(x)/(∂x_1 ),∂f(x)/(∂x_2 ),…,∂f(x)/(∂x_m )]^T
将矩阵变元X列向量化,得到f(X)的梯度算子:
∇_vecX f(X)=∂f(X)/∂vec(X) =[∂f(X)/(∂x_11 ),…,∂f(X)/(∂x_m1 ),…,∂f(X)/(∂x_1n ),…,∂f(X)/(∂x_mn )]^T
另外,可直接得到其梯度矩阵:
∇_X f(X)=∂f(X)/∂X=[■(∂f(X)/(∂x_11 )&⋯&∂f(X)/(∂x_1n )@⋮&⋱&⋮@∂f(X)/(∂x_m1 )&⋯&∂f(X)/(∂x_mn ))]∈R^(m×n)
可以发现,实标量函数f(X)的梯度矩阵等于Jacobian矩阵的转置,∇_X f(X)=(D_X f(X))^T。另外,实矩阵函数F(X)的梯度矩阵也是其Jacobian矩阵的转置,∇_X F(X)=(D_X F(X))^T。
类似地,f(x) 的二阶偏导构成的矩阵被称为“黑塞矩阵”(Hessian Matrix):
H(x)=[(∂^2 f)/(∂x_i ∂x_j )]
(n×n)
一阶实矩阵微分(了解)
矩阵的迹
方阵A∈R^(n×n)的主对角线元素之和为矩阵A的迹(trace),记作tr(A):
A=[■(a_11&a_12&⋯&a_1n@a_21&a_22&⋯&a_2n@⋮&⋮&⋱&⋮@a_n1&a_n2&⋯&a_nn )]
tr(A)=a_11+a_22+⋯+a_nn=∑
(i=1)^n▒a_ii
标量的迹是其本身:x=tr(x)
转置:tr(A)=tr(A^T )
线性:tr(c_1 A+c_2 B)=c_1 tr(A)+c_2 tr(B)
交换律:tr(AB)=tr(BA)
矩阵微分的性质
矩阵微分用符号dX表示,定义为dX=[dX_ij ](i=1,j=1)^(m,n)。
考虑标量函数的微分,有d(trU)=tr(dU):
d(trU)=d(∑
(i=1)^n▒u_ii )=∑_(i=1)^n▒〖du_ii 〗=tr(dU)
考虑矩阵乘积UV的微分矩阵,有d(UV)=(dU)V+UdV:
[d(UV)]_ij=d([UV]_ij )
=d(∑_k▒〖u_ik v_kj 〗)=∑_k▒d(u_ik v_kj )
=∑_k▒[(du_ik ) v_kj+u_ik dv_kj ]
=∑_k▒〖(du_ik ) v_kj 〗+∑_k▒〖u_ik dv_kj 〗
=[(dU)V]_ij+[UdV]_ij
上两例表明,实矩阵微分具有以下两个基本性质:
转置:矩阵转置的微分等于矩阵微分的转置,即d(X^T )=(dX)^T。
线性:d(αX+βY)=αdX+βdY。
下面汇总矩阵微分常用的计算公式:
dA=O;A为常数矩阵,O为零矩阵
d(αX)=αd(X)
d(X^T )=(dX)^T
d(U±V)=dU±dV
d(AXB)=A(dX)B
d(UVW)=d(U)VW+U(dV)W+UVd(W)
U=F(X),V=G(X),W=H(X)为矩阵函数
d(trX)=tr(dX),并且d(tr(F(X)))=tr(d(F(X)))
d|X|=|X|tr(X^(-1) dX);|X|为行列式,并且d|F(X)|=|F(X)|tr(F^(-1) (X)d(F(X)))
d(U⨂V)=(dU)⨂V+U⨂d(V);U⨂V为矩阵Kronecker积
d(U⨀V)=(dU)⨀V+U⨀d(V);U⨀V为矩阵Hadamard积
d(vec(X))=vec(dX)
dlogX=X^(-1) dX,并且dlog(F(X))=F^(-1) (X)d(F(X))
d(X^(-1) )=-X^(-1) (dX) X^(-1)
标量函数的矩阵微分
考虑标量函数f(x)的全微分:
df(x)=∂f(x)/(∂x_1 ) dx_1+⋯+∂f(x)/(∂x_m ) dx_m
=[∂f(x)/(∂x_1 ),…,∂f(x)/(∂x_m )][█(dx_1@⋮@dx_m )]
=∂f(x)/(∂x^T ) dx
令A=∂f(x)/(∂x^T ),则有:
df(x)=∂f(x)/(∂x^T ) dx=Adx=tr(Adx)
这表明,标量函数f(x)的Jacobian矩阵与微分矩阵之间存在等价关系:
df(x)=tr(Adx)⟺D_x f(x)=∂f(x)/(∂x^T )=A
换言之,若函数f(x)的微分可以写作df(x)=tr(Adx),则矩阵A就是函数f(x)关于其变元向量x的Jacobian矩阵。
考虑标量函数f(X),其变元为X∈R^(m×n)的全微分:
df(X)=∂f(X)/(∂x_1 ) dx_1+⋯+∂f(X)/(∂x_m ) dx_m
=[∂f(X)/(∂x_11 ),…,∂f(X)/(∂x_m1 )][█(dx_11@⋮@dx_m1 )]+⋯+[∂f(X)/(∂x_1n ),…,∂f(X)/(∂x_mn )][█(dx_1n@⋮@dx_mn )]
=[∂f(X)/(∂x_11 ),…,∂f(X)/(∂x_m1 ),…,∂f(X)/(∂x_1n ),…,∂f(X)/(∂x_mn )][█(dx_11@⋮@dx_m1@⋮@dx_1n@⋮@dx_mn )]
=∂f(x)/(∂vec^T (X) ) d(vecX)=D_vecX f(X)d(vecX)
利用行向量偏导与Jacobian矩阵的关系D_vecX f(X)=(vec(D_X^T f(X)))^T,上式可以改写为:
df(X)=(vec(A^T ))^T d(vecX)
式中A=D_X f(X)=∂f(X)/(∂X^T )是标量函数f(X)的Jacobian矩阵。
利用向量化算子和迹函数之间的关系tr(B^T C)=(vec(B))^T vec©,令B=A^T,C=dX,则有:
df(X)=(vec(A^T ))^T d(vecX)=tr(AdX)
综上:
df(x)=tr(Adx)⟺D_x f(x)=∂f(x)/(∂x^T )=A,∇_x f(x)=A^T
df(X)=tr(AdX)⟺D_X f(X)=∂f(X)/(∂X^T )=A,∇_X f(X)=A^T
因此可以利用矩阵微分直接求标量函数f(X)的Jacobian矩阵D_X f(X)和梯度矩阵∇_X f(X)。
二次型函数f(x)=x^T Ax
标量函数可直接写成迹的形式:
f(x)=tr(f(x))
d(f(x))=d(tr(x^T Ax))
=tr[(dx)^T Ax+x^T Adx]
=tr([dx^T Ax]T+xT Adx)
=tr(x^T A^T dx+x^T Adx)
=tr(x^T (A+A^T )dx)
根据df(x)=tr(Adx)⟺D_x f(x)=∂f(x)/(∂x^T )=A,∇_x f(x)=A^T可得:
∇_x f(x)=AT=[xT (A+A^T )]T=(AT+A)x
矩阵的标量函数:迹f(X)=tr(X^T X)
dtr(X^T X)=tr(d(X^T X))
=tr(((dX)^T X)+X^T dX)
=tr((dX)^T X)+tr(X^T dX)
因为tr(A)=tr(A^T ),所以有:
dtr(X^T X)=tr((dX)^T X)+tr(X^T dX)
=tr(((dX)^T X)^T )++tr(X^T dX)
=tr(2X^T dX)
∇_X f(X)=∂tr(X^T X)/∂X=(2X^T )^T=2X
三矩阵乘积的迹函数f(X)=tr(X^T AX)
dtr(X^T AX)=tr(d(X^T AX))
=tr(((dX)^T AX)+X^T AdX)
=tr((dX)^T AX)+tr(X^T AdX)
=tr(((dX)^T AX)^T )++tr(X^T AdX)
=tr((AX)^T dX)+tr(X^T AdX)
=tr(X^T (A^T+A)dX)
∇_X f(X)=∂tr(X^T AX)/∂X=(X^T (AT+A))T=(A+A^T )X
包含逆矩阵的迹函数f(X)=tr(AX^(-1) )
dtr(AX^(-1) )=tr(d(AX^(-1) ))
=tr(Ad(X^(-1) ))
=-tr(AX^(-1) d(X) X^(-1) )
=-tr(X^(-1) AX^(-1) d(X))
∇_X f(X)=∂tr(AX^(-1) )/∂X=(X^(-1) AX^(-1) )^T
四矩阵乘积的迹函数f(X)=tr(XAXB)
dtr(XAXB)=tr(d(XAXB))
=tr(d(X)AXB+XAd(X)B)
=tr((AXB+BXA)d(X))
∇_X f(X)=∂tr(XAXB)/∂X=(AXB+BXA)^T
总结
标量函数总可以写为迹函数的形式:
f(X)=tr(f(X))
无论dX出现在迹函数内的任何位置,总可以通过迹的交换律将其写到最右边:
tr[A(dX)B]=tr[BAdX]
对于(dX)^T,总可以通过迹函数的性质转换为dX:
tr[A(dX)^T B]=tr[A^T B^T dX]
概率论
概率
概率的概念
概率是对事件发生的可能性的度量。通常将事件A的概率写作P(A)。
概率的计算
事件 概率
A P(A)∈[0,1]
非A P(A ̅ )=1-P(A)
A和B
(联合概率) P(A∩B)=P(A│B)P(B)=P(B│A)P(A)
当A、B相互独立时:P(A∩B)=P(A)P(B)
A或B P(A∪B)=P(A)+P(B)-P(A∩B)
当A、B互斥时:P(A∪B)=P(A)+P(B)
B的情况下A的概率
(条件概率) P(A│B)=P(A∩B)/P(B) =(P(B│A)P(A))/P(B)
例如:现有一个装有10个球的袋子,其中有6个红球和4个蓝球。从中随机抽取两个球。我们定义以下事件:
事件A:第一个抽到的是红球。
事件B:两个抽到的球都是红球。
计算联合概率P(A∩B)
第一个球是红球的概率:
P(A)=6/10
在第一个球是红球的情况下,两个球都是红球的概率:
P(B|A)=5/9
联合概率:
P(A∩B)=P(B│A)P(A)=5/9×6/10=1/3
计算条件概率P(A|B)
条件概率P(A|B)表示在已知两个球都是红球的情况下,第一个球是红球的概率。
两个球都是红球的概率:
P(B)=6/10×5/9=1/3
在两个球都是红球的情况下,第一个球是红球的概率:
P(A│B)=P(A∩B)/(P(B))=(1/3)/(1/3)=1
概率分布
概率分布,是指用于表述随机变量取值的概率规律。事件的概率表示了一次试验中某一个结果发生的可能性大小。如果试验结果用变量X的取值来表示,则随机试验的概率分布就是随机变量的概率分布,即随机变量的可能取值及取得对应值的概率。
均匀分布
均匀分布也叫矩形分布,它表示在相同长度间隔的分布概率是等可能的。 均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b)。
均匀分布的概率密度函数可写为:
P(x)=1/(b-a),a<x<b
P(x)=0, else
伯努利分布
伯努利分布(Bernoulli Distribution)又称两点分布或0-1分布,是一个离散概率分布,适用于只有两种可能结果的随机试验。
伯努利分布描述了一个随机变量x,它只有两个可能的取值:
x=1,发生概率为p。
x=0,发生概率为1-p。
伯努利分布的概率密度函数可写为:
P(x)=p^x (1-p)^(1-x)
二项分布
二项分布(Binomial Distribution)是一种离散概率分布,它描述了在固定次数的独立伯努利试验(每次试验只有成功和失败两种结果)中,成功次数的概率。二项分布可以看作是伯努利分布的扩展,从单次试验推广到多次试验。
对于随机变量X,有概率密度函数:
P(X=k)=(■(n@k)) p^k (1-p)^(1-k) (k=0,1,…,n)
n为试验的总次数
k为成功的次数
p为单次试验成功的概率
(■(n@k))=n!/k!(n-k)!表示从𝑛次试验中选择𝑘次成功的组合数
二项分布概率密度函数图:

正态分布
正态分布(Normal Distribution)也称高斯分布,是常见的连续概率分布。正态分布在统计学上十分重要,经常用在自然和社会科学来代表一个不明的随机变量。
若随机变量X服从一个平均数为μ、标准差为σ(σ=√(1/n ∑_(i=1)n▒(x_i-μ)2 ))的正态分布,则记为X~N(μ,σ^2),其概率密度函数
f(x)=1/(σ√2π) e(-〖(x-μ)〗2/(2σ^2 ))
正态分布的期望μ可解释为位置参数,决定了分布的位置;其方差σ^2可解释为尺度参数,决定了分布的幅度。
中心极限定理指出,在特定条件下,一个具有有限均值和方差的随机变量的多个样本的平均值本身就是一个随机变量,其分布随着样本数量的增加而收敛于正态分布。因此,许多与独立过程总和有关的物理量,例如测量误差,通常可被近似为正态分布。
正态分布的概率密度函数曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是位置参数μ=0,尺度参数σ^2=1的正态分布。
正态分布概率密度函数图:

在numpy中,提供了各种随机函数,可以用来生成服从特定分布的数据。
贝叶斯定理
贝叶斯定理(Bayes’ Theorem)是概率论中的一个核心定理,用于描述在已有条件概率信息的基础上,如何更新或计算事件的概率。它以英国数学家托马斯·贝叶斯的名字命名。贝叶斯定理特别适合处理“逆向概率”问题,即从结果反推原因的概率。
全概率公式
对于复杂事件B,它可能有很多种具体情况,发生概率不容易直接求得。
这些不同的具体情况可以是一组简单事件,记作A1、A2、…、An,发生的概率P(Ai) 已知;如果它们满足两两互不相容、且发生概率之和为1,就称它们是一个完备事件组。
这样,如果知道了在每个简单事件发生的前提下、复杂事件发生的概率(条件概率 P(B| Ai) ),就可以将它们全部合并起来,求出复杂事件的概率了。
P(B)=P(B│A_1 )·P(A_1 )+P(B│A_2 )·P(A_2 )+⋯+P(B│A_n )·P(A_n )
=∑_i^n▒〖P(B│A_i )·P(A_i)〗
这个公式就被称为“全概率公式”。
贝叶斯公式
贝叶斯定理建立在条件概率的基础上,假设有两事件A,B,贝叶斯定理描述了在已知B发生的情况下,A发生的概率:
P(A|B)=(P(B|A)∙P(A))/P(B)
P(A|B):后验概率,B发生的情况下A发生的概率。
P(B|A):似然概率,A发生的情况下B发生的概率。
P(A):先验概率,A发生的概率。
P(B):B发生的概率,通常通过全概率公式计算。
在实际问题中P(B)通常不是直接给出,而是需要通过全概率公式计算。假设样本空间被一组互斥且完备的事件A_1,A_2,…,A_n划分,则:
P(B)=∑_(i=1)^n▒〖P(B|A_i )∙P(A_i ) 〗
例如:某疾病发病率为1%,如果一个人有疾病,检测呈阳性的概率为95%;如果一个人没有疾病,检测呈阳性的概率为5%,现有一人检测结果呈阳性,问他真正患病的概率是多少?
P(疾病|阳性)=(P(阳性|疾病)∙P(疾病))/P(阳性)
P(阳性)=P(阳性|疾病)∙P(疾病)+P(阳性|无疾病)∙P(无疾病)
=0.95×0.01+0.05×0.99
=0.0095+0.0495
=0.059
P(疾病|阳性)=0.0095/0.059≈0.161
检测呈阳性的人真正患病的概率为16.1%。
似然函数
似然函数的概念
概率用于在已知一些参数的情况下,预测接下来在观测上所得到的结果。而似然性则是用于在已知某些观测所得到的结果时,对有关事物之性质的参数进行估值。
似然函数是对参数的函数,其定义为在给定参数值的条件下,观察到某个特定数据的概率。换句话说,似然函数是一个关于参数的函数,而不是关于数据的函数。
如果我们有一个参数化的概率模型P(X|θ),其中X是观测数据,θ是模型参数,似然函数L(θ|X)定义为:
L(θ|X)=P(X|θ)
这里,P(X│θ) 表示在参数为θ的情况下,观察到数据X的概率。
设有一组独立同分布的观测数据X=(x_1,x_2,…,x_n),并且这些数据服从某个分布(例如正态分布、二项分布等),比如服从参数为θ的某个分布,那么似然函数可以写作:
L(θ│X)=P(X│θ)=∏_(i=1)^n▒〖P(x_i |θ)〗
针对其中存在的乘法,可以使对数函数将其转化为加法:
log⁡〖L(θ│X)〗=log⁡∏_(i=1)^n▒〖P(x_i |θ)〗=∑_(i=1)^n▒〖logP(x_i |θ)〗
极大似然估计
似然函数常用于极大似然估计。我们希望找到使似然函数最大化的参数θ。这意味着在给定观测数据的情况下,选择最可能生成这些数据的参数值。
例如,掷硬币3次,2次正面1次背面,能否依据此结果逆推出正面的概率;正面概率为0.5的概率为多少、正面概率为0.6的概率为多少;最有可能的正面概率是多少?
我们用θ代表硬币正面朝上的概率,用X代表2次正面1次背面的结果
L(θ│X)=P(X│θ)=C_3^2 θ^2 (1-θ)
当正面概率为0.5时:P(X│θ=0.5)=C_3^2 〖0.5〗^2 (1-0.5)=0.375
当正面概率为0.6时:P(X│θ=0.6)=C_3^2 〖0.6〗^2 (1-0.6)=0.432
为了找出极大似然估计,对似然函数取对数并求导,使其等于0
█(log⁡〖L(θ│X)〗=&log⁡〖C_32∙θ2 (1-θ)〗@=&log⁡〖3+2logθ+log(1-θ)〗@(d log⁡〖L(θ│X)〗)/dθ=&2/θ-1/(1-θ)=0)
解得θ=2/3,意味着当掷硬币3次,出现2次正面1次背面的结果时,硬币正面朝上的概率最有可能为2/3。

相关文章:

AI大模型从0到1记录学习 大模型技术之数学基础 day26

高等数学 导数 导数的概念 导数&#xff08;derivative&#xff09;是微积分中的一个概念。函数在某一点的导数是指这个函数在这一点附近的变化率&#xff08;即函数在这一点的切线斜率&#xff09;。导数的本质是通过极限的概念对函数进行局部的线性逼近。 当函数f的自变量在…...

计算机视觉与深度学习 | matlab实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据)

以下是一个基于MATLAB的ARIMA-WOA-CNN-LSTM时间序列预测框架。由于完整代码较长,此处提供核心模块和实现思路,完整源码和数据可通过文末方式获取。 1. 数据准备(示例数据) 使用MATLAB内置的航空乘客数据集: % 加载数据 data = readtable(airline-passengers.csv); data …...

基于pycharm,python,flask,tensorflow,keras,orm,mysql,在线深度学习sql语句检测系统

详细视频:...

【C++】vector模拟实现

实现以下功能&#xff1a; 构造函数&#xff1a;a.无参默认构造 b.n个val构造 c.迭代器区间构造 d.initializer_list构造&#xff0c;类似于数组 e.拷贝构造 赋值重载 [ ]重载 实现reserve接口 实现size()&#xff0c;capacity()接口 实现push_bakc接口&#…...

门店管理五大痛点解析:如何用数字化系统实现高效运营

实体店竞争白热化&#xff0c;五大管理痛点正悄悄吞噬利润&#xff1a;客户资源流失、数据决策滞后、员工效率模糊、合同风险暗藏、利润核算混乱。本文直击核心问题&#xff0c;拆解数字化系统如何精准破局。​ 一、传统管理模式的五大核心痛点​ 1. 客户资源管理粗放化​ 老…...

双指针法高效解决「移除元素」问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 双指针法高效解决「移除元素」问题 双指针法高效解决「移除元素」问题一、问题描述二、解法解析&#xff1a;双指针法1. 核心思想2. 算法步骤3. 执行过程示例 三、关键点分析…...

【Linux笔记】——线程同步信号量与环形队列生产者消费者模型的实现(PV操作)

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;Linux &#x1f339;往期回顾&#x1f339;&#xff1a;【Linux笔记】——线程同步条件变量与生产者消费者模型的实现 &#x1f516;流水不争&#xff0c;争的是滔滔不…...

武汉科技大学人工智能与演化计算实验室许志伟课题组参加第八届智能优化与调度学术会议

武汉科技大学人工智能与演化计算实验室许志伟课题组参加第八届智能优化与调度学术会议 2025年5月15日至18日&#xff0c;第八届智能优化与调度学术会议在青岛金沙滩希尔顿酒店隆重召开。本次会议由青岛科技大学、湖南省系统仿真学会联合主办&#xff0c;中国仿真学会智能仿真优…...

SparkContext介绍

目录 1. 集群管理接口2. RDD操作中枢3. 任务分发引擎4. 执行环境配置5. 性能监控枢纽 SparkContext是Apache Spark的核心组件&#xff0c;其作用可概括为以下五个关键维度&#xff1a; 1. 集群管理接口 作为与集群管理器&#xff08;YARN/Mesos/Standalone&#xff09;通信的唯…...

海外盲盒系统开发:重构全球消费体验的科技引擎

当盲盒文化席卷全球&#xff0c;海外盲盒系统开发已成为重构消费体验的核心赛道。数据显示&#xff0c;2025年全球盲盒市场规模突破120亿&#xff0c;东南亚市场年增长率达4540。我们开发的海外盲盒系统&#xff0c;以技术创新为驱动&#xff0c;打造覆盖全链路的全球化解决方案…...

IP风险画像技术:如何用20+维度数据构建网络安全护城河?

IP风险画像技术作为一种先进的网络安全手段&#xff0c;正逐步成为构建网络安全护城河的重要工具。通过多维度数据的分析和挖掘&#xff0c;IP风险画像技术能够精准识别网络中的潜在威胁&#xff0c;为企业和组织提供更加全面的安全保障。 IP风险画像技术基于IP地址的行为分析…...

Vitest下一代前端单元测试框架

什么是Vitest&#xff1f; Vitest是有vue官方主导开发的下一代测试框架&#xff0c;一个原生支持Vite的测试框架。非常快速。 Vitest 与 Jest 兼容&#xff0c;具有开箱即用的 ESM、Typescript 和 JSX 支持&#xff0c;并且由 esbuild 提供支持。它在测试过程中使用 Vite 开发…...

车道线检测:自动驾驶的“眼睛”

在自动驾驶技术的庞大体系中&#xff0c;车道线检测扮演着至关重要的角色&#xff0c;它就像是自动驾驶汽车的“眼睛”&#xff0c;帮助车辆感知道路边界&#xff0c;从而实现安全、准确的行驶。今天&#xff0c;我们就来深入探讨一下车道线检测的奥秘&#xff0c;看看它是如何…...

基于NLP技术的客户投诉与需求文本分类方法研究

目录 摘要 1. 引言 2. 文本分类基础 2.1 文本分类的定义与类型 2.2 文本分类的评价指标 3. 传统文本分类方法 3.1 基于TF-IDF和SVM的方法 3.2 基于主题模型和词向量的改进方法 4. 深度学习文本分类方法 4.1 TextCNN模型 4.2 BiLSTM模型 4.3 注意力机制与Transformer…...

HarmonyOS5云服务技术分享--自有账号对接AGC认证

✨ ​​手把手教你&#xff1a;用自有账号玩转华为AGC认证服务​​ ✨ Hi 各位开发者朋友&#xff5e;&#x1f44b; 今天咱们来聊聊如何将自家已有的账号系统与华为的AppGallery Connect&#xff08;AGC&#xff09;认证服务无缝对接。不用重复造轮子&#xff0c;还能享受AGC…...

算法与数据结构:位运算与快速幂

文章目录 位运算快速幂 位运算 在计算机的世界中&#xff0c;一切数字都是二进制的。类比于现实世界中我们所使用的十进制&#xff0c;二进制即为「逢二进一」的运算体系。 我们以 B、D 来分别标记二进制与十进制&#xff0c;例如 10D 表示十进制中的 10&#xff0c;而 10B 则…...

基于R语言的空间异质性数据分析技术

在自然和社会科学领域&#xff0c;存在大量与地理或空间相关的数据&#xff0c;这些数据通常具有显著的空间异质性。传统的统计学方法在处理这类数据时往往力不从心。基于R语言的一系列空间异质性数据分析方法&#xff0c;如地理加权回归&#xff08;GWR&#xff09;、地理加权…...

数据分析预备篇---Pandas的DataFrame的更多操作

DataFrame的统计方法 之前学习Series的时候接触了一些很实用的统计相关方法,包括max求最大值,min求最小值,sum求和,mean求平均值等。DataFrame有类似的方法,由于它是二维的,我们可以指定到底是沿着索引纵向操作,相当于沿着轴0(计算每列的统计量);还是说沿着列名横向操…...

精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制

精益数据分析&#xff08;73/126&#xff09;&#xff1a;黏性阶段的功能优先级法则——七问决策模型与风险控制 在创业的黏性阶段&#xff0c;如何从海量的功能创意中筛选出真正能提升用户留存的关键改动&#xff1f;今天&#xff0c;我们结合《精益数据分析》中的“开发功能…...

Linux系统之traceroute命令详解:追踪网络路径的核心工具

Linux系统之traceroute命令详解&#xff1a;追踪网络路径的核心工具 一、traceroute介绍1. 基本介绍2. 核心原理 二、安装与基本使用1. 安装traceroute2. 基础语法 三、基本使用四、常用参数与场景五、典型应用场景1. 定位网络延迟问题2. 检测防火墙拦截3. 绕过DNS解析问题4. 对…...

通义灵码2.5智能体模式联合MCP:打造自动化菜品推荐平台,实现从需求到部署的全流程创新

一、项目背景与目标 随着人工智能技术的快速发展&#xff0c;AI 辅助开发工具正在改变传统的软件开发模式。通义灵码 2.5 版本的发布&#xff0c;通过 Qwen3 模型 和 编程智能体模式 的结合&#xff0c;实现了从需求描述到代码生成的全流程自动化。同时&#xff0c;其对 魔搭M…...

Spring的AOP在什么场景下会失效?

SpringAOP是通过动态代理实现的&#xff0c;所以想要AOP生效就是需要动态代理生效&#xff0c;并且可以提前调用到代理对象的方法。 什么情况下会不走动态代理呢&#xff1f; 首先就是类内部的调用&#xff0c;比如一些私有方法的调用&#xff0c;内部类调用&#xff0c;以及同…...

基于规则引擎与机器学习的智能Web应用防火墙设计与实现

基于规则引擎与机器学习的智能Web应用防火墙设计与实现 引言&#xff1a;智能防御的必然选择 在2023年OWASP最新报告中&#xff0c;传统Web应用防火墙&#xff08;WAF&#xff09;对新型API攻击的漏报率高达67%&#xff0c;而误报导致的正常业务拦截损失每年超过2.3亿美元。面…...

NODE-I916 I721模块化电脑发布,AI算力与超低功耗的完美平衡

在智能工业与边缘计算蓬勃发展的今天&#xff0c;企业对计算设备的性能与能效需求日益严苛。全新推出NODE-I916与NODE-I721模块化电脑&#xff0c;分别搭载英特尔 酷睿™ Ultra 平台与Alder Lake-N平台&#xff0c;以差异化CPU配置为核心&#xff0c;为AI推理、工业自动化及嵌入…...

2024年热门AI趋势及回顾

人工智能的崛起 2024 年可能会被铭记为人工智能不再是一种技术新奇事物&#xff0c;而是成为现实的一年。微软、Salesforce 和 Intuit 等巨头将人工智能融入主流企业解决方案&#xff1b;从文案写作到数据分析&#xff0c;专门的人工智能应用程序和服务如雨后春笋般涌现&#…...

Python + moviepy:根据图片或数据高效生成视频全流程详解

前言 在数据可视化、自媒体内容生产、学术汇报等领域,我们常常需要将一组图片或一段变动的数据,自动合成为视频文件。这样不仅能提升内容表现力,也极大节省了人工操作时间。Python作为数据处理和自动化领域的王者,其`moviepy`库为我们提供了灵活高效的视频生成方案。本文将…...

文档债务拖累交付速度?5大优化策略文档自动化

开发者在追求开发速度的过程中&#xff0c;往往会忽视文档的编写&#xff0c;如省略设计文档、代码注释或API文档等。这种做法往往导致在后期调试阶段需要花费三倍以上的时间来理解代码逻辑&#xff0c;进而形成所谓的文档债务&#xff0c;严重拖累交付速度并造成资源浪费。而积…...

java接口自动化初识

简介 了解什么是接口和为什么要做接口测试。并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程。 一、什么是接口 在这里我举了一个比较生活化的例子&#xff0c;比如我们有一台笔记本&#xff0c;在笔记本的两端有很多插口。例如&#xff1a;USB插口。那…...

Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理

Wan2.1 文生视频 支持批量生成、参数化配置和多语言提示词管理 flyfish 设计 一个基于 Wan2.1 文本到视频模型的自动化视频生成系统。 文件关系图 script.py ├── 读取 → config.json │ ├── 模型配置 → 加载AI模型 │ ├── 生成参数 → 控制生成质量 │ └…...

高阶数据结构——AVL树的实现(详细解答)

目录 1.AVL的概念 2.AVL树的实现 2.1 AVL树的插入 2.1.1 平衡因子的更新 2.1.2 AVL树的插入 2.2 旋转 2.2.1 旋转的原则 2.2.2 右单旋 2.2.3 左单旋 2.2.4 先左后右双旋转 2.2.5 先右后左双旋转&#xff08;先左后右双旋转模型的镜像&#xff09; 2.2.6 代码总结 2…...

工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎,支持现实世界的流程自动化需求

前言 大家好&#xff0c;我是老马。 最近想设计一款审批系统&#xff0c;于是了解一下关于流程引擎的知识。 下面是一些的流程引擎相关资料。 工作流引擎系列 工作流引擎-00-流程引擎概览 工作流引擎-01-Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&#x…...

自定义geojson生成物体的样式

在上节我们学习了如何在cesium中导入geojson数据,本节我们来学习如何让它变得更加炫酷. // 加载GeoJSON数据 // 使用Cesium的GeoJsonDataSource加载指定URL的地理数据 Cesium.GeoJsonDataSource.load("https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json&quo…...

在tensorflow源码环境里,编译出独立的jni.so,避免依赖libtensorflowlite.so,从而实现apk体积最小化

需要在APP里使用tensorflow lite来运行PC端训练的model.tlite&#xff0c;又想apk的体积最小&#xff0c;尝试了如下方法&#xff1a; 1. 在gradle里配置 implementation("org.tensorflow:tensorflow-lite:2.16.1") 这样会引入tensorflow.jar&#xff0c;最终apk的…...

springboot框架 集成海康ISUP-SDK 并实现 协议透传给设备下发指令!

最近有一个需求 需要通过springboot框架 来和 海康的摄像头设备进行通信&#xff0c;就研究了一下 海康的官方ISUP-SDK 文档对接。这个sdk 主要实现了 第三方快速集成海康的设备。 海康的文档地址&#xff1a; https://open.hikvision.com/docs/docId?productId5cda567cf47ae8…...

【移动应用安全】Android系统安全与保护机制

Android系统安全与保护机制是一个多层次、多维度的防御体系&#xff0c;其安全架构与系统层级紧密耦合。以下是对各层级安全机制的扩展分析&#xff1a; Linux内核层&#xff08;Linux Kernel&#xff09;安全机制 强制访问控制&#xff08;MAC&#xff09; 通过SELinux&#…...

Spring Boot中如何使用RabbitMQ?

前面已经了解了怎么使用RabbitMQ的JDK原生客户端&#xff0c;现在我们来了解Spring Boot中如何使用RabbitMQ&#xff0c;在学习之前&#xff0c;先做好准备工作&#xff1a; 1. 添加依赖 在Spring Boot中使用RabbitMQ&#xff0c;需要使用如下依赖&#xff1a; <dependenc…...

kotlin 将一个list按条件分为两个list(partition )

前言 在安卓开发过程中&#xff0c;我们经常需要将一个列表按照特定条件拆分为两个子列表。随着对语言的深入理解&#xff0c;我发现了一些更高效、更简洁的实现方式&#xff0c;现在与大家分享。 实现 传统Java实现 假设我们有以下列表需要处理&#xff1a; List<Stri…...

R语言学习--Day04--数据分析技巧

在清洗完数据&#xff0c;在对数据分析前&#xff0c;我们要懂得先梳理一下我们的逻辑&#xff0c;即数据是什么形式的&#xff0c;要进行哪种分析&#xff0c;有可能呈现什么特点&#xff0c;进而再想怎么处理数据去画图可以最大程度地凸显我们要的特点。 一般来讲&#xff0…...

企业终端设备的安全管控

企业终端设备的安全管控是信息安全体系中的重要环节&#xff0c;涉及从设备准入到数据防护的全生命周期管理。 以下是一套系统化的解决方案&#xff0c;涵盖技术、管理和人员三个维度&#xff1a; 一、终端设备全生命周期管控 设备准入控制 802.1X网络认证&#xff1a;对接企业…...

桥梁凝冰在线监测装置:科技守护道路安全的新防线

在交通基础设施安全领域&#xff0c;桥梁凝冰问题始终是冬季道路管理的重点挑战。传统人工巡检方式存在时效性差、覆盖范围有限等缺陷&#xff0c;而桥梁凝冰在线监测装置的普及应用&#xff0c;正为这一难题提供智能化解决方案。 一、装置工作原理 桥梁凝冰在线监测装置通过多…...

【开源】一个基于 Vue3 和 Electron 开发的第三方网易云音乐客户端,具有与官方客户端相似的界面布局

&#x1f3b5; XCMusic&#xff1a;高颜值第三方网易云音乐客户端 &#x1f3b6; &#x1f4cd; 项目亮点 XCMusic 是一款基于Vue3Electron开发的开源、跨平台网易云音乐客户端。 此音乐播放器基于 Electron 开发&#xff0c;旨在为用户提供简洁、美观、兼容多平台的音乐体验。…...

Android 中拖拽从一个组件到另外一个组件的写法(跨容器拖拽)

在 Android 中&#xff0c;拖拽一个图片&#xff08;例如 ImageView&#xff09;到另一个组件&#xff08;如 LinearLayout、FrameLayout 等容器&#xff09;涉及以下步骤&#xff1a; 准备工作 源组件&#xff1a;你从哪里开始拖动&#xff08;如 ImageView&#xff09;。 目…...

MATLAB实现GAN用于图像分类

生成对抗网络&#xff08;GAN&#xff09;是一种强大的生成模型&#xff0c;由生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;组成。生成器用于生成图像&#xff0c;判别器用于判断图像是真实的还是生成的。在MATLAB中实现GAN用于图像…...

武汉副市长李湛莅临指导 珈和展会精彩亮相引《武汉电视台》深度报道 以硬核科技赋能农业强链新范式获政府媒体“双重点赞”

为充分响应“双循环”新发展格局&#xff0c;深化区域产业协作、推动供需精准对接&#xff0c;进一步促进经济高质量发展&#xff0c;5月16日-18日&#xff0c;由武汉市经济和信息化局主办的2025年产业链供需对接&#xff08;绍兴&#xff09;推广活动在绍兴国际会展中心举办。…...

matlab慕课学习3.4

于20250319 3.4用for语句实现循环结构 3.4.1什么是循环结构 循环结构又称重复结构&#xff0c;是利用计算机运算速度快以及能进行逻辑控制的特点来重复执行某些操作。 3.4.2for语句 for 循环变量表达式1&#xff1a;表达式2&#xff1a;表达式3 循环体语句 end 说明&…...

matlab编写的BM3D图像去噪方法

BM3D&#xff08;Block-Matching and 3D Filtering&#xff09;是一种基于块匹配和三维滤波的图像去噪方法&#xff0c;广泛应用于图像处理领域。它通过在图像中寻找相似的块&#xff0c;并将这些块堆叠成三维数组进行滤波处理&#xff0c;从而有效地去除噪声&#xff0c;同时保…...

当科技邂逅浪漫:在Codigger的世界里,遇见“爱”

520&#xff0c;一个充满爱意的日子&#xff0c;人们用各种方式表达对彼此的深情。而在科技的世界里&#xff0c;我们也正经历着一场特别的邂逅——Codigger&#xff0c;一个分布式操作系统的诞生&#xff0c;正在以它独特的方式&#xff0c;重新定义我们与技术的关系。 Codigg…...

深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法

前置阅读&#xff0c;了解什么是类属性、实例属性&#xff0c;对于理解类方法、实例方法会有帮助&#xff1a;Python 中的类属性与实例属性详解 0、总体介绍 在 Python 中&#xff0c;方法&#xff08;method&#xff09; 是定义在类&#xff08;class&#xff09;内部的函数&…...

游戏开发实战(二):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】

文章目录 奇美拉和队列奇美拉被动技能多对多观察者关系实现自定义元类奇美拉基类 管理奇美拉的队列奇美拉队列类心得体会扩展 规则定义工作相关奇美拉相关 奇美拉属性 在本篇博文&#xff0c;我将介绍本项目的整体框架&#xff0c;以及“编码规则”&#xff0c;这些规则保证了本…...

Python实战:打造一个功能完整的单位转换器(长度/温度/货币)

&#x1f4da; 文章导读 在本文中&#xff0c;我将为大家介绍如何使用Python开发一个实用的单位转换器。这个项目不仅适合Python初学者练手&#xff0c;也能帮助你更好地理解Python的基础语法和函数设计。 &#x1f50d; 主要特性 ✅ 支持多种长度单位互转&#xff08;米、千…...