13 MCMC——马尔可夫链蒙特卡洛

news2024/11/27 11:45:51

文章目录

  • 13 MCMC——马尔可夫链蒙特卡洛
    • 13.1 MCMC的意义
    • 13.2 简单采样方法介绍
      • 13.2.1 概率分布采样
      • 13.2.2 Rejection Sampling——拒绝采样
      • 13.2.3 Importance Sampling——重要性采样
    • 13.3 Markov Chain知识补充
      • 13.3.1 Markov Chain定义
      • 13.3.2 Markov Chain性质——平稳分布
      • 13.3.3 Markov Chain性质——Detailed Balance
    • 13.4 Metropolis Hastings方法
    • 13.5 Gibbs方法
    • 13.6 MCMC总结

13 MCMC——马尔可夫链蒙特卡洛

13.1 MCMC的意义

我们都知道Monte Carlo是一种常用的估计方法,我们经常用这个方法对期望进行随机估计。而Monte Carlo中的一大问题就是采样,要从一个复杂分布中采样是困难的,我们只能通过一些方法,将复杂的分布表示出来,然后进行采样。

我们从三个方面介绍一下MCMC的意义:

  1. 采样的动机:
    • 采样本身:我们经常需要从各种概率分布中取得样本。(例如学习一张图片后生成新的图片)
    • 求和或求积分(期望): E p ( x ) [ f ( x ) ] ≈ 1 N ∑ i = 1 N f ( x ( i ) ) E_{p(x)}[f(x)] \approx \frac{1}{N} \sum_{i=1}^{N} f(x^{(i)}) Ep(x)[f(x)]N1i=1Nf(x(i))
  2. 什么是好的样本:
    • 样本趋向(集中)于高概率区域——能够凸显分布特征
    • 样本之间相互独立
  3. 为什么会采样困难:
    • 无法归一化:Partation funtion is intractable——求不出概率(归一化因子是积分形式,维度过高会无法求解)
    • 维度灾难:高维的稀疏性使得直接判定的方法无法操作

13.2 简单采样方法介绍

首先简单介绍一下Monte Carlo方法:Monte Carlo Method是基于采样的随即近似方法。假如存在 N N N​个样本 Z ( 1 ) , … , Z ( N ) Z^{(1)}, \dots, Z^{(N)} Z(1),,Z(N)​,我们就可以通过代入样本求均值求期望:
P ( Z ∣ X ) → E Z ∣ X [ f ( Z ) ] = ∫ Z f ( Z ) ⋅ P ( Z ∣ X ) d Z ≈ 1 N ∑ i = 1 N f ( Z ( i ) ) P(Z|X) \rightarrow E_{Z|X}[f(Z)] = \int_Z f(Z) \cdot P(Z|X) d_Z \approx \frac{1}{N} \sum_{i=1}^{N} f(Z^{(i)}) P(ZX)EZX[f(Z)]=Zf(Z)P(ZX)dZN1i=1Nf(Z(i))
同时给出一个最基本的条件:我们认为样本 u ∽ U ( 0 , 1 ) u \backsim U(0, 1) uU(0,1)的均匀分布是很好取的。

13.2.1 概率分布采样

条件:我们已知目标分布 p ( x ) p(x) p(x)的pdf,而且可以通过积分求出其cdf。

方法:因为均匀分布 u ∽ U ( 0 , 1 ) u \backsim U(0, 1) uU(0,1)很好取,所以我们随机取 u u u作为cdf的值,通过反函数求出样本。

缺点:大多数分布的积分、反函数求不出来,无法实现

13.2.2 Rejection Sampling——拒绝采样

条件:我们已知目标分布 p ( x ) p(x) p(x)的pdf,用 q ( x ) q(x) q(x)表示一个可以通过概率分布采样的简单的pdf,令 ∀ Z → M ⋅ q ( Z ) ≥ p ( Z ) \forall Z \rightarrow M \cdot q(Z) \geq p(Z) ZMq(Z)p(Z)(带 M M M是因为 q q q p p p的面积相同,不带系数无法实现)

方法:

  • 假定在样本点 Z ( i ) Z^{(i)} Z(i)时, p ( Z ( i ) ) p(Z^{(i)}) p(Z(i))的值为 l 1 l_1 l1 M ⋅ q ( Z ( i ) ) M \cdot q(Z^{(i)}) Mq(Z(i))的值为 l 2 l_2 l2,如图所示

  • 定义一个变量,接受率 α = l 1 l 2 \alpha = \frac{l_1}{l_2} α=l2l1,取值范围为 α ∈ [ 0 , 1 ] \alpha \in [0, 1] α[0,1]

  • 在对 q ( Z ) q(Z) q(Z)采样的时候,随机在均匀分布中采样: u ∽ U ( 0 , 1 ) u \backsim U(0, 1) uU(0,1)。若 u ≤ α u \leq \alpha uα则保留 Z ( i ) Z^{(i)} Z(i),反之则删除。

缺点:若 p ( Z ( i ) ) p(Z^{(i)}) p(Z(i)) M ⋅ q ( Z ( i ) ) M \cdot q(Z^{(i)}) Mq(Z(i))的值相差过大,会增加运算量(可能取好多次样都保留不了几个)

13.2.3 Importance Sampling——重要性采样

原理:对取样分布进行变换:
E p ( Z ) [ f ( Z ) ] = ∫ Z f ( Z ) p ( Z ) d Z = ∫ Z f ( Z ) p ( Z ) q ( Z ) ⋅ q ( Z ) d Z = E q ( Z ) [ f ( Z ) p ( Z ) q ( Z ) ] ≈ 1 N ∑ i = 1 N [ f ( Z ( i ) ) p ( Z ( i ) ) q ( Z ( i ) ) ] \begin{align} E_{p(Z)}[f(Z)] &= \int_Z f(Z)p(Z) {\rm d}_Z \\ &= \int_Z f(Z) \frac{p(Z)}{q(Z)} \cdot q(Z) {\rm d}_Z \\ &= E_{q(Z)} \left[ f(Z) \frac{p(Z)}{q(Z)} \right] \\ &\approx \frac{1}{N} \sum_{i=1}^N \left[ f(Z^{(i)}) \frac{p(Z^{(i)})}{q(Z^{(i)})} \right] \end{align} Ep(Z)[f(Z)]=Zf(Z)p(Z)dZ=Zf(Z)q(Z)p(Z)q(Z)dZ=Eq(Z)[f(Z)q(Z)p(Z)]N1i=1N[f(Z(i))q(Z(i))p(Z(i))]
我们将 q ( Z ) q(Z) q(Z)​定义为一个简单分布。通过对 q ( Z ) q(Z) q(Z)​进行采样,可以求出 f ( Z ( i ) ) p ( Z ( i ) ) q ( Z ( i ) ) f(Z^{(i)}) \frac{p(Z^{(i)})}{q(Z^{(i)})} f(Z(i))q(Z(i))p(Z(i))​,我们将 p ( Z ( i ) ) q ( Z ( i ) ) \frac{p(Z^{(i)})}{q(Z^{(i)})} q(Z(i))p(Z(i))​称为权重,乘上倒数我们便可以得到结果:
1 N ∑ i = 1 N f ( Z ( i ) ) (对 p 取样) → 1 N ∑ i = 1 N [ f ( Z ( i ) ) p ( Z ( i ) ) q ( Z ( i ) ) ] (对 q 取样) \frac{1}{N} \sum_{i=1}^N f(Z^{(i)}) (对p取样) \rightarrow \frac{1}{N} \sum_{i=1}^N \left[ f(Z^{(i)}) \frac{p(Z^{(i)})}{q(Z^{(i)})} \right] (对q取样) N1i=1Nf(Z(i))(对p取样)N1i=1N[f(Z(i))q(Z(i))p(Z(i))](对q取样)
缺点:以来 p p p q q q的相似度,若相差过大,则样本位置分布的差别会很大。

推广:Sampling Importance Resampling——重采样:

  • 先进行一次Importance Resampling得到 Z ( i ) Z^{(i)} Z(i)
  • 通过将权重 p ( Z ( i ) ) q ( Z ( i ) ) \frac{p(Z^{(i)})}{q(Z^{(i)})} q(Z(i))p(Z(i))设置为概率重新进行采样——可以将更多的点聚集在高概率区域

13.3 Markov Chain知识补充

13.3.1 Markov Chain定义

Markov Chain定义:通过 { x t } {\lbrace x_t \rbrace} {xt}表示节点, P = [ P i j ] P=[P_{ij}] P=[Pij]表示转移矩阵(i,j用于表示节点的状态, P i j = P ( x t + 1 = j ∣ x t = i ) P_{ij} = P(x_{t+1} = j | x_t = i) Pij=P(xt+1=jxt=i)), π t \pi_t πt表示 t t t时刻的节点所表示的分布:

13.3.2 Markov Chain性质——平稳分布

Markov Chain性质——平稳分布:节点的分布随时间 t → ∞ t \rightarrow \infty t π t \pi_t πt将会收敛于一个固定的分布。

重定义:

  • 节点为 { x t } {\lbrace x_t \rbrace} {xt}, 状态分布为 q ( t ) ( x ) q^{(t)}(x) q(t)(x),$Q = \begin{pmatrix} Q_{11} & Q_{12} & \dots & Q_{1K} \ Q_{21} & Q_{22} & \dots & Q_{2K} \ \dots \ Q_{K1} & Q_{K2} & \dots & Q_{KK} \end{pmatrix}_{K \times K} 为转移矩阵(随机矩阵),到 为转移矩阵(随机矩阵),到 为转移矩阵(随机矩阵),到m$时刻收敛(分布不变):

为何要引入平稳分布?

  • 从结论出发,平稳分布只与转移矩阵相关(也就是说初始分布可以很简单,简单到可以取样),若平稳分布与目标分布相同的话,我们就可以通过Markov Chain的平稳分布,从简单取样到复杂取样。

收敛证明——证明对于Markov Chain, ∃ m \exists m m使得 q ( m + i ) ( x ) , i ∈ N q^{(m+i)}(x), i \in N q(m+i)(x),iN进入平稳分布:

定义行向量: q ( t + 1 ) = ( q ( t + 1 ) ( x = 1 ) , … , q ( t + 1 ) ( x = K ) ) 1 × K q^{(t+1)} = {\left( q^{(t+1)}(x = 1), \dots , q^{(t+1)}(x = K) \right)}_{1 \times K} q(t+1)=(q(t+1)(x=1),,q(t+1)(x=K))1×K

引入转移矩阵的定义可以得到: q ( t + 1 ) ( x = j ) = ∑ i = 1 K q ( t ) ( x = i ) ⋅ Q i j q^{(t+1)}(x=j) = \sum_{i=1}^{K} q^{(t)}(x=i) \cdot Q_{ij} q(t+1)(x=j)=i=1Kq(t)(x=i)Qij

可以得到公式:
q ( t + 1 ) = ( ∑ i = 1 K q ( t ) ( x = i ) ⋅ Q i 1 , … , ∑ i = 1 K q ( t ) ( x = i ) ⋅ Q i K ) 1 × K = q ( t ) Q = ⋯ = q ( 1 ) Q t \begin{align} q^{(t+1)} &= {\left( \sum_{i=1}^{K} q^{(t)}(x=i) \cdot Q_{i1}, \dots , \sum_{i=1}^{K} q^{(t)}(x=i) \cdot Q_{iK} \right)}_{1 \times K} \\ &= q^{(t)}Q = \dots = q^{(1)}Q^t \end{align} q(t+1)=(i=1Kq(t)(x=i)Qi1,,i=1Kq(t)(x=i)QiK)1×K=q(t)Q==q(1)Qt
引入随机矩阵的性质(Q满足随机矩阵的性质):随机矩阵的特征值的绝对值 ≤ 1 \leq 1 1,所以有:
Q = A Λ A − 1 = A − 1 Λ A , Λ = d i a g ( λ 1 , … , λ k ) , ∣ λ i ∣ ≤ 1 Q = A \Lambda A^{-1} = A^{-1} \Lambda A, \quad \Lambda = diag(\lambda_1, \dots, \lambda_k), \quad |\lambda_i| \leq 1 Q=AΛA1=A1ΛA,Λ=diag(λ1,,λk),λi1
引入性质继续分解公式可得:
q ( t + 1 ) = q ( 1 ) Q t = q ( 1 ) ( A Λ A − 1 ) t = q ( 1 ) A Λ t A − 1 \begin{align} q^{(t+1)} = q^{(1)}Q^t = q^{(1)}{(A \Lambda A^{-1})}^t = q^{(1)}{A \Lambda^t A^{-1}} \end{align} q(t+1)=q(1)Qt=q(1)(AΛA1)t=q(1)AΛtA1
假设目前有一个足够大的 m m m,我们可以知道:
{ q ( m + 1 ) = q ( 1 ) A Λ m A − 1 q ( m + 2 ) = q ( 1 ) A Λ m + 1 A − 1 \begin{cases} q^{(m + 1)} = q^{(1)}{A \Lambda^m A^{-1}} \\ q^{(m + 2)} = q^{(1)}{A \Lambda^{m+1} A^{-1}} \\ \end{cases} {q(m+1)=q(1)AΛmA1q(m+2)=q(1)AΛm+1A1
若此时 m m m足够大,不妨设其中只有 λ i = 1 \lambda_i = 1 λi=1,可得 Λ m = d i a g ( 0 , … , 1 , … , 0 ) = Λ m + 1 \Lambda^m = diag(0, \dots, 1, \dots, 0) = \Lambda^{m+1} Λm=diag(0,,1,,0)=Λm+1​。将该公式代入上文可得
q ( m + 1 ) = q ( m + 2 ) q^{(m + 1)} = q^{(m + 2)} q(m+1)=q(m+2)
由此得证,当 t > m t>m t>m时,有 q ( m + 1 ) = q ( m + 2 ) = q ( ∞ ) q^{(m + 1)} = q^{(m + 2)} = q^{(\infty)} q(m+1)=q(m+2)=q()

但这个收敛证明有一个缺点:

  • 我们只证明了在足够大时会收敛,但我们不知道具体的收敛时间与条件。

13.3.3 Markov Chain性质——Detailed Balance

Detailed Balance:

  • 满足以下等式(表示为双向映射):
    π ( x ) ⋅ P ( x ↦ x ∗ ) = π ( x ∗ ) ⋅ P ( x ∗ ↦ x ) \pi(x) \cdot P(x \mapsto x^*) = \pi(x^*) \cdot P(x^* \mapsto x) π(x)P(xx)=π(x)P(xx)

作用:

  • Detailed Balance的条件中包含了平稳分布,因为平稳分布的性质表示为: { π k } {\lbrace \pi_k \rbrace} {πk} { x t } {\lbrace x_t \rbrace} {xt}的平稳分布:
    π ( x ∗ ) = ∫ π ( x ) ⋅ P ( x ↦ x ∗ ) d x \pi(x^*) = \int \pi(x) \cdot P(x \mapsto x^*) {\rm d}x π(x)=π(x)P(xx)dx

  • 要证明Detailed Balance包含平稳分布可以在两边同对 x x x​积分:
    ∫ π ( x ) ⋅ P ( x ↦ x ∗ ) d x = ∫ π ( x ∗ ) ⋅ P ( x ∗ ↦ x ) d x = π ( x ∗ ) ∫ P ( x ∗ ↦ x ) d x = π ( x ∗ ) \begin{align} \int \pi(x) \cdot P(x \mapsto x^*) {\rm d}x &= \int \pi(x^*) \cdot P(x^* \mapsto x) {\rm d}x \\ &= \pi(x^*) \int P(x^* \mapsto x) {\rm d}x \\ &= \pi(x^*) \end{align} π(x)P(xx)dx=π(x)P(xx)dx=π(x)P(xx)dx=π(x)

13.4 Metropolis Hastings方法

意义:是一种通过接受率满足Detailed Balance条件的方法。

方法:

  1. 我们先定义一个随机转移矩阵 Q ( Z ↦ Z ∗ ) Q(Z \mapsto Z^*) Q(ZZ),这个转移矩阵表示条件分布 Q ( Z ∗ ∣ Z ) Q(Z^*|Z) Q(ZZ),但此时:
    p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) ≠ p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) p(Z) \cdot Q(Z \mapsto Z^*) \neq p(Z^*) \cdot Q(Z^* \mapsto Z) p(Z)Q(ZZ)=p(Z)Q(ZZ)

  2. 定义一个接受率 α ( Z , Z ∗ ) = min ⁡ ( 1 , p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) ) \alpha(Z, Z^*) = \min(1, \frac{p(Z^*) \cdot Q(Z^* \mapsto Z)}{p(Z) \cdot Q(Z \mapsto Z^*)}) α(Z,Z)=min(1,p(Z)Q(ZZ)p(Z)Q(ZZ)),使得等式成立:
    p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) ⋅ α ( Z , Z ∗ ) = p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) ⋅ min ⁡ ( 1 , p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) ) = min ⁡ ( p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) , p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) ) = p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) ⋅ min ⁡ ( p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) , 1 ) = p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) ⋅ α ( Z ∗ , Z ) \begin{align} p(Z) \cdot Q(Z \mapsto Z^*) \cdot \alpha(Z, Z^*) &= p(Z) \cdot Q(Z \mapsto Z^*) \cdot \min(1, \frac{p(Z^*) \cdot Q(Z^* \mapsto Z)}{p(Z) \cdot Q(Z \mapsto Z^*)}) \\ &= \min(p(Z) \cdot Q(Z \mapsto Z^*), {p(Z^*) \cdot Q(Z^* \mapsto Z)}) \\ &= p(Z^*) \cdot Q(Z^* \mapsto Z) \cdot \min(\frac{p(Z) \cdot Q(Z \mapsto Z^*)}{p(Z^*) \cdot Q(Z^* \mapsto Z)}, 1) \\ &= p(Z^*) \cdot Q(Z^* \mapsto Z) \cdot \alpha(Z^*, Z) \\ \end{align} p(Z)Q(ZZ)α(Z,Z)=p(Z)Q(ZZ)min(1,p(Z)Q(ZZ)p(Z)Q(ZZ))=min(p(Z)Q(ZZ),p(Z)Q(ZZ))=p(Z)Q(ZZ)min(p(Z)Q(ZZ)p(Z)Q(ZZ),1)=p(Z)Q(ZZ)α(Z,Z)

  3. 此时 Q ( Z ↦ Z ∗ ) ⋅ α ( Z , Z ∗ ) Q(Z \mapsto Z^*) \cdot \alpha(Z, Z^*) Q(ZZ)α(Z,Z)就相当于是新的转移矩阵。

具体实现:

  1. 从均匀分布中取得 u ∽ U ( 0 , 1 ) u \backsim U(0, 1) uU(0,1)
  2. 从转移矩阵中进行抽样 Z ∗ ∽ Q ( Z ↦ Z ∗ ) Z^* \backsim Q(Z \mapsto Z^*) ZQ(ZZ)
  3. 引入接受率,对样本进行一个筛选: u ≤ α ? Z ( i ) = z ∗ : Z ( i ) = Z ( i − 1 ) u \leq \alpha ? Z^{(i)} = z^* : Z^{(i)} = Z^{(i-1)} uα?Z(i)=z:Z(i)=Z(i1)

13.5 Gibbs方法

Gibbs实际上是特殊的MH算法,这个时候我们取 α = 1 \alpha = 1 α=1

Gibbs的思想是:

  • 固定 p ( Z ) = p ( Z 1 , Z 2 , … , Z M ) p(Z) = p(Z_1, Z_2, \dots, Z_M) p(Z)=p(Z1,Z2,,ZM)​中的每个维度,然后进行坐标上升。每个维度就是在条件分布中取样:
    Z i ∽ p ( Z i ∣ Z − i ) Z_i \backsim p(Z_i | Z_{-i}) Zip(ZiZi)

具体实现:

  1. 先采样出 Z 1 ( 0 ) , Z 2 ( 0 ) , … , Z M ( 0 ) Z_1^{(0)}, Z_2^{(0)}, \dots, Z_M^{(0)} Z1(0),Z2(0),,ZM(0)

  2. 然后不停的上升:
    { Z 1 ( t + 1 ) = p ( Z 1 ∣ Z 2 ( t ) , … , Z M ( t ) ) Z M ( t + 1 ) = p ( Z M ∣ Z 2 ( t + 1 ) , … , Z M − 1 ( t + 1 ) ) \begin{cases} Z_1^{(t+1)} = p(Z_1| Z_2^{(t)}, \dots, Z_M^{(t)}) \\ Z_M^{(t+1)} = p(Z_M| Z_2^{(t+1)}, \dots, Z_{M-1}^{(t+1)}) \\ \end{cases} {Z1(t+1)=p(Z1Z2(t),,ZM(t))ZM(t+1)=p(ZMZ2(t+1),,ZM1(t+1))

  3. 这样到最后将维度组合起来就是样本了

为什么Gibbs不用像MH中一样乘 α \alpha α,为什么 α = 1 \alpha = 1 α=1

  • 在Gibbs中我们假设 Q ( Z ↦ Z ∗ ) = P ( Z i ∗ ∣ Z i ) Q(Z \mapsto Z^*) = P(Z_i^*|Z_i) Q(ZZ)=P(ZiZi),因为我们在求取第 i i i项到时候固定住了其他的项,所以有 Z i = Z i ∗ Z_i = Z_i^* Zi=Zi,根据这些性质可以得到:
    p ( Z ) ⋅ Q ( Z ↦ Z ∗ ) p ( Z ∗ ) ⋅ Q ( Z ∗ ↦ Z ) = p ( Z ∣ Z i ) ⋅ p ( Z i ) ⋅ Q ( Z ↦ Z ∗ ) p ( Z ∗ ∣ Z i ∗ ) ⋅ p ( Z i ∗ ) ⋅ Q ( Z ∗ ↦ Z ) = 1 \frac{p(Z) \cdot Q(Z \mapsto Z^*)}{p(Z^*) \cdot Q(Z^* \mapsto Z)} = \frac{p(Z|Z_i) \cdot p(Z_i) \cdot Q(Z \mapsto Z^*)}{p(Z^*|Z_i^*) \cdot p(Z_i^*) \cdot Q(Z^* \mapsto Z)} = 1 p(Z)Q(ZZ)p(Z)Q(ZZ)=p(ZZi)p(Zi)Q(ZZ)p(ZZi)p(Zi)Q(ZZ)=1

所以我们无需加入 α \alpha α

13.6 MCMC总结

整体思路:利用Markov Chain收敛与平稳分布的性质,设计Q使得平稳分布 ≈ \approx 目标分布

MCMC有的问题:

  • 理论证明了收敛性,但没有给出证明结束时刻m的方法——不能简单判定相邻时刻的分布,如果提早判定了,就有可能无法测出一个较低的高峰:

  • mixing time过长: p ( x ) p(x) p(x)过于复杂/高维/高相关性

  • 样本间存在一定的相关性。

将MCMC化为一张图就是:

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

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

相关文章

javaScript蓝桥杯----猜硬币

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 为了打发无聊的时间,小蓝开发了一款人机对战的猜硬币游戏,页面中一共有 9 个杯子,系统会随机挑选 3 个杯子在里面放入硬币,玩家通过输入含有杯子序号的字符串进行猜选&a…

基于Python班级管理系统毕业设计-附源码171809

目 录 摘要 1 绪论 1.1研究背景 1.2研究的目的与意义 1.3系统开发技术的特色 1.4论文结构与章节安排 2 基于Python班级管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性…

【考点】CKA 08_Kubernetes工作负载与调度 关系调度 nodeSelector 亲和性和反亲和性 污点 节点驱离与下线

文章目录 考试题目:deployment 扩容(扩容命令)1. Kubernetes 调度器1.1 调度概览1.2 kube-scheduler1.3 kube-scheduler 调度流程 2. Kubernetes 关系调度2.1 节点标签2.2 节点隔离/限制2.3 nodeName 字段2.3.1 准备工作2.3.2 创建使用 nodeN…

深度学习-第T10周——数据增强

深度学习-第T10周——数据增强 深度学习-第T10周——数据增强一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1.1、设置图片格式1.2、划分训练集1.3、划分验证集1.4、查看标签1.5、再次检查数据1.6、配置数据集 2、数据可视化 五、数…

硬件设计电源系列文章-DCDC转换器基础知识

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 本文主要接着上篇,上篇文章主要讲述了LDO的相关基础知识,本节开始分享DCDC基础知识 整体架构流程 提示:这里可以添加技术整体架构 以下是…

ROS学习——通信机制(话题通信②—订阅方实现)

2.1 话题通信 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 042话题通信(C)3_订阅方实现_Chapter2-ROS通信机制_哔哩哔哩_bilibili 1.新建demo02_sub.cpp文件,搭建框架 2.包含头文件 3.初始化ROS节点 cuiHua——节点名称,具有唯一性 4.创…

一小时让你Get到面试套路:记一次Java初中级程序员面试流程梳理

视频教程传送门: 一小时让你Get到面试套路:记一次Java初中级程序员面试流程梳理_哔哩哔哩_bilibili听了N多个师兄师姐的面试录音,采访了N多个师兄时间的面试经历,才总结出来的java面试流程,非常适合正在准备面试的你。…

【7 微信小程序学习 - 小程序的系统API调用,网络请求封装】

1 网络请求 – 原生 请求数据,保存数据 1 原生请求 Page({data: {allCities: {},houselist: [],currentPage: 1},async onLoad() {// 1.网络请求基本使用wx.request({url: "http://codercba.com:1888/api/city/all",success: (res) > {//保存数据const data res…

企业级在线办公系统搭建开发环境

目录 介绍 搭建开发环境 安装MySQL数据库 安装Redis程序 安装MongoDB数据库 安装RabbitMQ 安装JDK 安装Maven环境 安装Node.js程序 安装HbuilderX工具 MacOS环境的程序安装 安装Docker环境 安装MySQL数据库 安装MongoDB数据库 安装Redis程序 安装RabbitMQ 学习…

【Python 匿名函数】零基础也能轻松掌握的学习路线与参考资料

Python 匿名函数是一种特殊的函数,也称为 lambda 函数。它允许我们创建一种简单的函数,一行代码就可以搞定。可能你会发现,在使用Python时,经常可以看到lambda关键字,以lambda开头的就是匿名函数。本文将详细介绍Pytho…

在一台电脑上配置多个Git账号,工作、生活两不误

文章目录 先 Unset global 配置生成 SSH Key 并配置到 GitHub多账号用 config 管理 先 Unset global 配置 任意文件夹下 Git Bash Here 然后输入如下命令来 unset git config --global --unset user.name git config --global --unset user.email git config --global --unset…

LabVIEW编程开发汽油中各种掺假物浓度⽔平的检测

LabVIEW编程开发汽油中各种掺假物浓度⽔平的检测 主要目的是使用LabVIEW中的密度法找到汽油中掺杂物的浓度。已经对许多技术进行了研究,以发现汽油中的掺杂物。例如蒸馏试验、化学制造商试验、蒸发试验、气相色谱法可以专门测量掺杂物。甚至有数字密度计来测量汽油…

深圳旧改投资_一秒读懂什么是确权?物业权利人核实的基础要点。

权利人核实常见问题 为什么要做历史违建物业权利人核实? 2021年3月1日正式实施的《深圳经济特区城市更新条例》,区城市更新部门应当在物业权利人更新意愿核实阶段组织区规划土地监察机构、辖区街道办事处和原农村集体经济组织继受单位对历史违建物业权…

【数据可视化】数据可视化Canvas

1、了解Canvas ◼什么是Canvas ---- Canvas 最初由Apple于2004 年引入,用于Mac OS X WebKit组件,为仪表板小部件和Safari浏览器等应用程序提供支持。后来,它被Gecko内核的浏览器(尤其是Mozilla Firefox)&#xff0c…

上位机Qt应用程序与MCU板子之间的串口数据传输算法,举例1字节、2字节、4字节正负数。再加qDebug的重定向显示打印数据。

串口之间的数据传输算法 前言【1】Qt界面设计图【2】串口char型举例串口收发正数举例串口收发负数举例 【3】串口short 型举例大端序和小端序 串口收发正数举例串口收发负数举例 【4】串口int型举例串口收发正数举例串口收发负数举例串口收发正负数(简洁版推荐&…

大数据分析的Python实战指南:数据处理、可视化与机器学习【上进小菜猪大数据】

上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。 引言: 大数据分析是当今互联网时代的核心技术之一。通过有效地处理和分析大量的数据,企业可以从中获得有价值的洞察,以做出更明智的决策。本文将…

Mujoco210 Ubuntu 22.04配置安装(一)

目录 .1 下载 1.1 解压 1.2 许可问题 1.3 环境配置 1.4 测试mujoco .2 安装mujoco-py 2.1 conda激活虚拟环境\或新创建一个环境 2.2 下载mujoco-py ​编辑 2.3 配置环境变量 2.4 测试mujoco-py 2.5 测试时的一些报错处理 2.5.0 command /usr/bin/gcc failed with…

Linux操作系统——第三章 基础IO

目录 接口介绍 open 文件描述符fd 0 & 1 & 2 文件描述符的分配规则 重定向 FILE 理解文件系统 inode ​编辑 理解硬链接 软链接 动态库和静态库 静态库与动态库 生成静态库 库搜索路径 生成动态库 使用动态库 运行动态库 使用外部库 接口介绍 o…

(顶刊复现)配电网两阶段鲁棒故障恢复(matlab实现)

参考文献: X. Chen, W. Wu and B. Zhang, "Robust Restoration Method for Active Distribution Networks," in IEEE Transactions on Power Systems, vol. 31, no. 5, pp. 4005-4015, Sept. 2016, doi: 10.1109/TPWRS.2015.2503426. 1.研究背景 1.1摘…

2023 Navicat for Redis 与 Navicat Premium 16.2 现已正式发布 | 释放 Redis 全部潜能

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…