技术标签: Gibbs Sampling 机器学习 LDA 数学 吉布斯采样公式推导
假设读者已经了解 LDA 的来龙去脉。
需要明确采样的含义:
随机变量是总体,采样就是按照总体的概率分布(指示了样本出现的概率)抽取样本的过程。样本应该能正确反映总体的情况,即样本与总体应该具有相同的统计性质(均值,方差等)。
语料库中的第 i i i 个词对应的主题我们记为 z i z_i zi,其中 i = ( m , n ) i=(m,n) i=(m,n) 是一个二维下标,即语料库中第 i i i 个词对应于第 m m m 篇文档的第 n n n 词,我们用 ¬ i \neg i ¬i 表示去除下标为 i i i 的词。
那么按照 Gibbs Sampling 的要求,我们要求得任一坐标轴 i i i 对应的条件分布 p ( z i = k ∣ Z ⃗ ¬ i , W ⃗ ) p(z_i=k|\vec{Z}_{\neg i},\vec{W}) p(zi=k∣Z¬i,W),注意这是一个离散型概率分布的抽样。由贝叶斯法则可得(条件概率正比于联合概率):
p ( z i = k ∣ Z ⃗ ¬ i , W ⃗ ) ∝ p ( z i = k , w i = t ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) p(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto p(z_i=k,w_i=t|\vec{Z}_{\neg i},\vec{W}_{\neg i}) p(zi=k∣Z¬i,W)∝p(zi=k,wi=t∣Z¬i,W¬i)
由于 z i = k , w i = t z_i=k,w_i=t zi=k,wi=t只涉及到第 m m m 篇文档和第 k k k 个主题,所以只会涉及到如下两个 Dirichlet-Multinomial 共轭结构
去掉了语料中第 i i i 个词对应的 ( z i , w i ) (z_i,w_i) (zi,wi),并不会改变上面两个共轭结构,只是会减少对应的计数。所以 θ ⃗ m , φ ⃗ k \vec{\theta}_m,\vec{\varphi}_k θm,φk 的后验分布都还是狄利克雷分布:
p ( θ ⃗ m ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) = D i r ( θ ⃗ m ∣ n ⃗ m , ¬ i + α ⃗ ) p ( φ ⃗ k ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) = D i r ( φ ⃗ k ∣ n ⃗ k , ¬ i + β ⃗ ) p(\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})=Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\\p(\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})=Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta}) p(θm∣Z¬i,W¬i)=Dir(θm∣nm,¬i+α)p(φk∣Z¬i,W¬i)=Dir(φk∣nk,¬i+β)
注意, n ⃗ m , ¬ i , n ⃗ k , ¬ i \vec{n}_{m,\neg i},\vec{n}_{k,\neg i} nm,¬i,nk,¬i 都不是双下标, n ⃗ m = ( n m ( 1 ) , ⋯   , n m ( K ) ) \vec{n}_{m}=(n_m^{(1)},\cdots,n_m^{(K)}) nm=(nm(1),⋯,nm(K)), n m ( k ) n_m^{(k)} nm(k) 表示第 m 篇文档中第 k 个主题的词的个数, n ⃗ k = ( n k ( 1 ) , ⋯   , n k ( V ) ) \vec{n}_k=(n_k^{(1)},\cdots,n_k^{(V)}) nk=(nk(1),⋯,nk(V)), n k ( t ) n_k^{(t)} nk(t) 表示第 k 个主题中第 t(词典下标) 个词的个数。 ¬ i \neg i ¬i 表示去除下标为 i i i(语料下标) 的词,所以在统计生成 n ⃗ m , n ⃗ k \vec{n}_{m},\vec{n}_{k} nm,nk 这两个向量时,我们可以当做第 m 篇文档中就没有这个词,也就不统计该词相关的计数, n ⃗ m , ¬ i , n ⃗ k , ¬ i \vec{n}_{m,\neg i},\vec{n}_{k,\neg i} nm,¬i,nk,¬i 表示的就是这样一种含义。
Gibbs Sampling 公式的推导:
p ( z i = k ∣ Z ⃗ ¬ i , W ⃗ ) ∝ p ( z i = k , w i = t ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) = ∫ p ( z i = k , w i = t , θ ⃗ m , φ ⃗ k ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) d θ ⃗ m d φ ⃗ k = ∫ p ( z i = k , θ ⃗ m ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) ⋅ p ( w i = t , φ ⃗ k ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) d θ ⃗ m d φ ⃗ k = ∫ p ( z i = k ∣ θ ⃗ m ) p ( θ ⃗ m ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) ⋅ p ( w i = t ∣ φ ⃗ k ) p ( φ ⃗ k ∣ Z ⃗ ¬ i , W ⃗ ¬ i ) d θ ⃗ m d φ ⃗ k = ∫ p ( z i = k ∣ θ ⃗ m ) D i r ( θ ⃗ m ∣ n ⃗ m , ¬ i + α ⃗ ) d θ ⃗ m ⋅ ∫ p ( w i = t ∣ φ ⃗ k ) D i r ( φ ⃗ k ∣ n ⃗ k , ¬ i + β ⃗ ) d φ ⃗ k = ∫ θ m k D i r ( θ ⃗ m ∣ n ⃗ m , ¬ i + α ⃗ ) d θ ⃗ m ⋅ ∫ φ k t D i r ( φ ⃗ k ∣ n ⃗ k , ¬ i + β ⃗ ) d φ ⃗ k = E ( θ m k ) ⋅ E ( φ k t ) = θ ^ m k ⋅ φ ^ k t \begin{aligned} p(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto & p(z_i=k,w_i=t|\vec{Z}_{\neg i},\vec{W}_{\neg i})\\ =&\int p(z_i=k,w_i=t,\vec{\theta}_m,\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k,\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})\cdot p(w_i=t,\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k|\vec{\theta}_m)p(\vec{\theta}_m|\vec{Z}_{\neg i},\vec{W}_{\neg i})\cdot p(w_i=t|\vec{\varphi}_k)p(\vec{\varphi}_k|\vec{Z}_{\neg i},\vec{W}_{\neg i})\mathrm d\vec{\theta}_m\mathrm d\vec{\varphi}_k\\ =&\int p(z_i=k|\vec{\theta}_m)Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\mathrm d\vec{\theta}_m\cdot\int p(w_i=t|\vec{\varphi}_k)Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta})\mathrm d\vec{\varphi}_k\\ =&\int \theta_{mk} Dir(\vec{\theta}_m|\vec{n}_{m,\neg i}+\vec{\alpha})\mathrm d\vec{\theta}_m\cdot\int \varphi_{kt} Dir(\vec{\varphi}_k|\vec{n}_{k,\neg i}+\vec{\beta})\mathrm d\vec{\varphi}_k\\ =&E(\theta_{mk})\cdot E(\varphi_{kt})\\ =&\hat{\theta}_{mk}\cdot\hat{\varphi}_{kt} \end{aligned} p(zi=k∣Z¬i,W)∝=======p(zi=k,wi=t∣Z¬i,W¬i)∫p(zi=k,wi=t,θm,φk∣Z¬i,W¬i)dθmdφk∫p(zi=k,θm∣Z¬i,W¬i)⋅p(wi=t,φk∣Z¬i,W¬i)dθmdφk∫p(zi=k∣θm)p(θm∣Z¬i,W¬i)⋅p(wi=t∣φk)p(φk∣Z¬i,W¬i)dθmdφk∫p(zi=k∣θm)Dir(θm∣nm,¬i+α)dθm⋅∫p(wi=t∣φk)Dir(φk∣nk,¬i+β)dφk∫θmkDir(θm∣nm,¬i+α)dθm⋅∫φktDir(φk∣nk,¬i+β)dφkE(θmk)⋅E(φkt)θ^mk⋅φ^kt
根据狄利克雷分布的期望公式有:
θ ^ m k = n m , ¬ i ( k ) + α k ∑ k = 1 K n m , ¬ i ( k ) + α k φ ^ k t = n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t \hat{\theta}_{mk}=\frac{n_{m,\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k}\\\hat{\varphi}_{kt}=\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t} θ^mk=∑k=1Knm,¬i(k)+αknm,¬i(k)+αkφ^kt=∑t=1Vnk,¬i(t)+βtnk,¬i(t)+βt
所以 LDA 模型的采样公式为:
p ( z i = k ∣ Z ⃗ ¬ i , W ⃗ ) ∝ n m , ¬ i ( k ) + α k ∑ k = 1 K n m , ¬ i ( k ) + α k ⋅ n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t p(z_i=k|\vec{Z}_{\neg i},\vec{W})\propto\frac{n_{m,\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k}\cdot\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t} p(zi=k∣Z¬i,W)∝∑k=1Knm,¬i(k)+αknm,¬i(k)+αk⋅∑t=1Vnk,¬i(t)+βtnk,¬i(t)+βt
第一类狄利克雷积分,后面直接当作结论使用,不做证明:
Δ ( α ⃗ ) = ∫ ∑ x i = 1 ∏ i = 1 N x i α i − 1 d x ⃗ \Delta(\vec{\alpha})=\int_{\sum x_i=1}\prod_{i=1}^Nx_i^{\alpha_i-1}\mathrm d\vec{x} Δ(α)=∫∑xi=1i=1∏Nxiαi−1dx
考虑一个有狄利克雷先验的一元模型(文档的生成仅依赖于一个词分布),此时只有一个 Dirichlet-Multinomial 共轭结构,有:
p ( W ∣ α ⃗ ) = ∫ p ( W ∣ p ⃗ ) ⋅ p ( p ⃗ ∣ α ⃗ ) d p ⃗ p(W|\vec{\alpha})=\int{p(W|\vec{p})\cdot p(\vec{p}|\vec{\alpha})\mathrm d\vec{p}} p(W∣α)=∫p(W∣p)⋅p(p∣α)dp
对比我们在概率论中学过的全概率公式,可以把这个式子理解为连续型变量的全概率公式。
具体的:
p ( W ∣ α ⃗ ) = ∫ ∏ n = 1 N M u l t ( w = w n ∣ p ⃗ , 1 ) ⋅ D i r ( p ⃗ ∣ α ⃗ ) d p ⃗ = ∫ ∏ v = 1 V p v n ( v ) ⋅ 1 Δ ( α ⃗ ) ∏ v = 1 V p v α v − 1 d p ⃗ = 1 Δ ( α ⃗ ) ∫ ∏ v = 1 V p v n ( v ) + α v − 1 d p ⃗ ∣ D i r i c h l e t ∫ = Δ ( n ⃗ + α ⃗ ) Δ ( α ⃗ ) , n ⃗ = { n ( v ) } v = 1 V \begin{aligned} p(W|\vec{\alpha})=&\int{\prod_{n=1}^N\mathrm{Mult}(w=w_n|\vec{p},1)\cdot \mathrm{Dir}(\vec{p}|\vec{\alpha})\mathrm d\vec{p}}\\ =&\int{\prod_{v=1}^Vp_v^{n^{(v)}}\cdot \frac{1}{\Delta(\vec\alpha)}\prod_{v=1}^Vp_v^{\alpha_v-1}\mathrm d\vec{p}}\\ =&\frac{1}{\Delta(\vec\alpha)}\int{\prod_{v=1}^Vp_v^{n^{(v)}+\alpha_v-1}\mathrm d\vec{p}} & | \mathrm{Dirichlet}\int\\ =&\frac{\Delta(\vec{n}+\vec\alpha)}{\Delta(\vec\alpha)},\vec{n}=\{n^{(v)}\}_{v=1}^V \end{aligned} p(W∣α)====∫n=1∏NMult(w=wn∣p,1)⋅Dir(p∣α)dp∫v=1∏Vpvn(v)⋅Δ(α)1v=1∏Vpvαv−1dpΔ(α)1∫v=1∏Vpvn(v)+αv−1dpΔ(α)Δ(n+α),n={
n(v)}v=1V∣Dirichlet∫
其中, M u l t ( w = w n ∣ p ⃗ , 1 ) \mathrm{Mult}(w=w_n|\vec{p},1) Mult(w=wn∣p,1) 表示多项式分布 N 次实验中一次实验的观测结果,最后一步的推导使用了第一类狄利克雷积分。
上面这个推导的意义是,消去了多项式分布的参数 p ⃗ \vec{p} p 的影响,因为它是未知的,仅使用词计数和狄利克雷超参数(伪计数)来表达观察到的语料的概率。
那么对于 LDA 模型来说,就是 K+M 个 Dirichlet-Multinomial 共轭结构。
首先对于 K 个主题的 Dirichlet-Multinomial 共轭结构有:
p ( w ⃗ ∣ z ⃗ , β ⃗ ) = ∫ p ( w ⃗ ∣ z ⃗ , Φ ) p ( Φ ∣ β ⃗ ) d Φ = ∏ k = 1 K ∫ 1 Δ ( β ⃗ ) ∏ t = 1 V φ k , t n k ( t ) + β t − 1 d φ ⃗ k = ∏ k = 1 K Δ ( n ⃗ k + β ⃗ ) Δ ( β ⃗ ) , n ⃗ k = { n k ( t ) } t = 1 V \begin{aligned} p(\vec w|\vec z,\vec \beta)=&\int p(\vec w|\vec z,\Phi)p(\Phi|\vec \beta)\mathrm d\Phi\\ =&\prod_{k=1}^K\int\frac{1}{\Delta(\vec\beta)}\prod_{t=1}^V\varphi_{k,t}^{n_k^{(t)}+\beta_t-1}\mathrm d\vec\varphi_k\\ =&\prod_{k=1}^K\frac{\Delta(\vec n_k+\vec\beta)}{\Delta(\vec\beta)},\vec n_k=\{n_k^{(t)}\}_{t=1}^V \end{aligned} p(w∣z,β)===∫p(w∣z,Φ)p(Φ∣β)dΦk=1∏K∫Δ(β)1t=1∏Vφk,tnk(t)+βt−1dφkk=1∏KΔ(β)Δ(nk+β),nk={
nk(t)}t=1V
其次对于 M 个文档的 Dirichlet-Multinomial 共轭结构有:
p ( z ⃗ ∣ α ⃗ ) = ∫ p ( z ⃗ ∣ Θ ) p ( Θ ∣ α ⃗ ) d Θ = ∏ m = 1 M ∫ 1 Δ ( α ⃗ ) ∏ k = 1 K θ m , k n m ( k ) + α k − 1 d θ ⃗ m = ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) , n ⃗ m = { n m ( k ) } k = 1 K \begin{aligned} p(\vec z|\vec \alpha)=&\int p(\vec z|\Theta)p(\Theta|\vec \alpha)\mathrm d\Theta\\ =&\prod_{m=1}^M\int\frac{1}{\Delta(\vec\alpha)}\prod_{k=1}^K\theta_{m,k}^{n_m^{(k)}+\alpha_k-1}\mathrm d\vec\theta_m\\ =&\prod_{m=1}^M\frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec\alpha)},\vec n_m=\{n_m^{(k)}\}_{k=1}^K \end{aligned} p(z∣α)===∫p(z∣Θ)p(Θ∣α)dΘm=1∏M∫Δ(α)1k=1∏Kθm,knm(k)+αk−1dθmm=1∏MΔ(α)Δ(nm+α),nm={
nm(k)}k=1K
所以模型的联合分布为:
p ( z ⃗ , w ⃗ ∣ α ⃗ , β ⃗ ) = ∏ k = 1 K Δ ( n ⃗ k + β ⃗ ) Δ ( β ⃗ ) ⋅ ∏ m = 1 M Δ ( n ⃗ m + α ⃗ ) Δ ( α ⃗ ) p(\vec z,\vec w|\vec\alpha,\vec\beta)=\prod_{k=1}^K\frac{\Delta(\vec n_k+\vec\beta)}{\Delta(\vec\beta)}\cdot\prod_{m=1}^M\frac{\Delta(\vec n_m+\vec\alpha)}{\Delta(\vec\alpha)} p(z,w∣α,β)=k=1∏KΔ(β)Δ(nk+β)⋅m=1∏MΔ(α)Δ(nm+α)
因为 Gibbs Sampling 的要求就是根据条件分布进行采样,所以 LDA 模型的采样公式为:
p ( z i = k ∣ z ⃗ ¬ i , w ⃗ ) = p ( w ⃗ , z ⃗ ) p ( w ⃗ , z ⃗ ¬ i ) = p ( w ⃗ ∣ z ⃗ ) p ( w ⃗ ¬ i ∣ z ⃗ ¬ i ) p ( w i ) ⋅ p ( z ⃗ ) p ( z ⃗ ¬ i ) ( 1 ) ∝ Δ ( n ⃗ k + β ⃗ ) Δ ( n ⃗ k , ¬ i + β ⃗ ) ⋅ Δ ( n ⃗ m + α ⃗ ) Δ ( n ⃗ m , ¬ i + α ⃗ ) ( 2 ) = Γ ( n k ( t ) + β t ) Γ ( ∑ t = 1 V n k , ¬ i ( t ) + β t ) Γ ( n k , ¬ i ( t ) + β t ) ) Γ ( ∑ t = 1 V n k ( t ) + β t ) ⋅ Γ ( n m ( k ) + α k ) Γ ( ∑ k = 1 K n m , ¬ i ( k ) + α k ) Γ ( n m , ¬ i ( k ) + α k ) Γ ( ∑ k = 1 K n m ( k ) + α k ) ( 3 ) = n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t ⋅ n m , ¬ i ( k ) + α k [ ∑ k = 1 K n m ( k ) + α k ] − 1 ( 4 ) ∝ n k , ¬ i ( t ) + β t ∑ t = 1 V n k , ¬ i ( t ) + β t ⋅ ( n m , ¬ i ( k ) + α k ) ( 5 ) \begin{aligned} p(z_i=k|\vec{z}_{\neg i},\vec{w})=& \frac{p(\vec{w},\vec{z})}{p(\vec{w},\vec{z}_{\neg i})}=\frac{p(\vec{w}|\vec{z})}{p(\vec{w}_{\neg i}|\vec{z}_{\neg i})p(w_i)}\cdot\frac{p(\vec{z})}{p(\vec{z}_{\neg i})} & (1)\\ \propto & \frac{\Delta(\vec{n}_k+\vec\beta)}{\Delta(\vec{n}_{k,\neg i}+\vec\beta)}\cdot \frac{\Delta(\vec{n}_m+\vec\alpha)}{\Delta(\vec{n}_{m,\neg i}+\vec\alpha)} &(2)\\ =& \frac{\Gamma(n_k^{(t)}+\beta_t)\Gamma(\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t)}{\Gamma(n_{k,\neg i}^{(t)}+\beta_t))\Gamma(\sum_{t=1}^Vn_k^{(t)}+\beta_t)}\cdot\frac{\Gamma(n_m^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_{m,\neg i}^{(k)}+\alpha_k)}{\Gamma(n_{m,\neg i}^{(k)}+\alpha_k)\Gamma(\sum_{k=1}^Kn_m^{(k)}+\alpha_k)}&(3)\\ =&\frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}\cdot\frac{n_{m,\neg i}^{(k)}+\alpha_k}{[\sum_{k=1}^Kn_m^{(k)}+\alpha_k]-1}&(4)\\ \propto & \frac{n_{k,\neg i}^{(t)}+\beta_t}{\sum_{t=1}^Vn_{k,\neg i}^{(t)}+\beta_t}\cdot(n_{m,\neg i}^{(k)}+\alpha_k)&(5) \end{aligned} p(zi=k∣z¬i,w)=∝==∝p(w,z¬i)p(w,z)=p(w¬i∣z¬i)p(wi)p(w∣z)⋅p(z¬i)p(z)Δ(nk,¬i+β)Δ(nk+β)⋅Δ(nm,¬i+α)Δ(nm+α)Γ(nk,¬i(t)+βt))Γ(∑t=1Vnk(t)+βt)Γ(nk(t)+βt)Γ(∑t=1Vnk,¬i(t)+βt)⋅Γ(nm,¬i(k)+αk)Γ(∑k=1Knm(k)+αk)Γ(nm(k)+αk)Γ(∑k=1Knm,¬i(k)+αk)∑t=1Vnk,¬i(t)+βtnk,¬i(t)+βt⋅[∑k=1Knm(k)+αk]−1nm,¬i(k)+αk∑t=1Vnk,¬i(t)+βtnk,¬i(t)+βt⋅(nm,¬i(k)+αk)(1)(2)(3)(4)(5)
上面的公式推导做以下五点解释:
疑问:LDA 并没有做任何词语语义方面的工作,仅仅是做一些数量上的统计,它是怎么挖掘出文档具有语义含义的主题的呢?
LDA 本质上是对词进行了聚类(依据某方面的相似度),聚的这个类就是主题。换句话说就是,按照主题给词进行了聚类。
既然没有做词语义方面的工作,那词之间的相似度是怎么确定的呢?
读完 LDA 著名的科普文章《Parameter estimation for text analysis》,它里面提到潜在主题是高阶共现的结果,即,t1 和 t2 共现,t2 和 t3 共现,表明 t1 和 t3 是一个二阶共现,以此类推。(共现,在不同上下文中共同出现。两个词越经常在不同的上下文共现,就越表示这两个词相似。)
文章浏览阅读1.4w次,点赞5次,收藏17次。因为直接使用系统vedioview,底部的MediaController布局有点不好看,尤其是进度条,不能实现办半屏与全屏的切换,自己网上看了下别人的资料,整理了下,做以笔记;初学者,勉强才实现这些功能,还有许多地方不明白。1,MediaController.java.直接复制下系统源码的MediaController,来进行修改,就两个地方,一个布局相关的修改,以及进度条Progress_自定义mediacontroller
文章浏览阅读167次。以下的文章主要介绍的是MySQL SUSE SLES11安装与配置笔记的实际操作过程,我们是在Linux下两个不同的版本MySQL安装实战(MySQL5和MySQL4)演示,以下就是文章的而具体内容描述。 Redhat9.2 安装MySQL5.0 fedora7安装MySQL (1) 下载 从MySQL官网 下载到最新的以下的文章主要介绍的是MySQL SUSE SLES11安装与配置笔记的实际操..._sles11安装
文章浏览阅读6.2k次,点赞8次,收藏65次。1、SVPWM的生成在FOC矢量控制中,Id、Iq 经过PID输出Vd、Vq。Vd、Vq经过反park变换成Vα、Vβ。再经过Vα、Vβ合成空间参考矢量Uref。那么怎么根据Vα、Vβ确定Uref所在扇区,然后确定所在扇区两个基础非零矢量的作用时间呢。1.1、传统的计算方法把Uref转换为虚数形式Uref=Va+jVβ。..._svpwmsimulink
文章浏览阅读3.9k次,点赞5次,收藏17次。E:\>color /?设置默认的控制台前景和背景颜色。COLOR [attr] attr 指定控制台输出的颜色属性颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一: 0 = 黑色 8 = 灰色 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 浅绿色 B = 淡浅绿色 4 = 红色 C ..._c++调用windows系统自带的文字处理程序
文章浏览阅读5k次,点赞26次,收藏24次。在使用Ubuntu的过程中,突然发现Ctrl + Alt + T无法打开terminator,但是Ubuntu本身的终端是可以打开的。我因此重启了电脑两次,重装terminator,都无效。结果原因是因为我更改了默认的Python版本,就是把/usr/bin/python连接到了Python3,但是terminator是基于Python2的。解决方案sudo gedit /usr/bin/te..._ctrl alt t打开不是terminator
文章浏览阅读2.4w次,点赞12次,收藏46次。在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作! 下边实现的是非独占性延时函数,延时过时中界面仍可响应消息:public static void Delay(int milliSecond){ int start = Environment.TickCount; while (Math.Abs(Environment._c#等待10毫秒怎么写
文章浏览阅读83次。import React, { Component } from "react"import { log } from "util";export default class Form extends Component { constructor() { super() this.state = { user: {//要提交给后端的数据 起名字后端叫什么我们也叫什么 username: '', _react form.create with 2 elements with non-unique
文章浏览阅读2.8k次。首先大家先确定自己使用的是2.1.1版本的springboot,我试过其他版本的用此方法会抱各种各样的错误出来springboot pom依赖,如果版本确定没错的话,这个依赖可不加<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b..._开启连接追踪和连接池
文章浏览阅读1k次。1.硬件方面:Armv8提供了两个寄存器用于控制“FPU虚拟化”——CPTR_EL2、CPACR_EL1。我们截取手册上关键位置。CPTR_EL2当CPTR_EL2寄存器的bit10为0时,FPU相关操作不被trapped,相反为1,则所有意欲访问FPU部件的指令(不管是EL0、EL1还是EL2)都会被trap到EL2。CPACR_EL1CPACR_EL1寄存器..._cptr_el2
文章浏览阅读1.2k次。1.检查自己的mysql-connector-java驱动包有没有导入,如果是maven项目,则检查你项目下的pom.xml文件中是否引入mysql-connector-java驱动依赖:javaweb一般项目:Maven项目的pom.xml文件: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> _com.hkd.charpter03.testmybatis2 at java.net.urlclassloader.findclass(unknow
文章浏览阅读98次。内什么,系统装好了,还要装一些软件才能吃pi哦更新 vim树莓派自带的 vim 不是很好用,比如默认不支持小键盘及方向键等,我们可以更新一下sudo apt-get install vim使用远程桌面通过 Windows 自带的远程桌面软件,可以远程访问树莓派桌面应用sudo apt-get install xrdpsshssh 服务默认已经安装完毕, ..._树莓派包含的软件
文章浏览阅读231次。AMiner平台(https://www.aminer.cn)由清华大学计算机系研发,拥有我国完全自主知识产权。平台包含了超过2.3亿学术论文/专利和1.36亿学者的科技图谱,提供学者评价、专家发现、智能指派、学术地图等科技情报专业化服务。系统2006年上线,吸引了全球220个国家/地区1000多万独立IP访问,数据下载量230万次,年度访问量超过1100万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。必读论文:https://www.aminer.cn/topic进化算法,或称“演化算法”._aminer算法