机器学习笔记之Sigmoid信念网络(一)对数似然梯度

news2024/11/25 22:58:24

机器学习笔记之Sigmoid信念网络——对数似然梯度

  • 引言
    • 回顾:贝叶斯网络的因子分解
    • Sigmoid信念网络
    • 对数似然梯度推导过程
    • 梯度求解过程中的问题

引言

从本节开始,将介绍 Sigmoid \text{Sigmoid} Sigmoid信念网络

回顾:贝叶斯网络的因子分解

Sigmoid \text{Sigmoid} Sigmoid信念网络,其本质上就是 Sigmoid \text{Sigmoid} Sigmoid贝叶斯网络,这说明它是一个有向图模型。在概率图模型——贝叶斯网络的结构表示中介绍过,如果使用贝叶斯网络描述概率图结构,这意味着变量/特征之间存在显式的因果关系
如果给定一个贝叶斯网络,可以根据该结构直接写出该模型的结构表示(Representation)。已知一个贝叶斯网络表示如下:
也可称作图中变量的‘联合概率分布’/‘概率密度函数’~
贝叶斯网络——示例
那么该模型中变量的联合概率分布 P ( I ) \mathcal P(\mathcal I) P(I)可表示为:
i 3 , i 4 ∣ i 2 i_3,i_4 \mid i_2 i3,i4i2属于同父结构,因此可以展开,而 i 5 ∣ i 3 , i 4 i_5 \mid i_3,i_4 i5i3,i4属于 V \mathcal V V型结构,无法展开。
P ( I ) = P ( i 1 , i 2 , i 3 , i 4 , i 5 ) = P ( i 2 ∣ i 1 ) ⋅ P ( i 3 , i 4 ∣ i 2 ) ⋅ P ( i 5 ∣ i 3 , i 4 ) = P ( i 2 ∣ i 1 ) ⋅ P ( i 3 ∣ i 2 ) ⋅ P ( i 4 ∣ i 2 ) ⋅ P ( i 5 ∣ i 3 , i 4 ) \begin{aligned} \mathcal P(\mathcal I) & = \mathcal P(i_1,i_2,i_3,i_4,i_5) \\ & = \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3,i_4 \mid i_2) \cdot \mathcal P(i_5 \mid i_3,i_4) \\ & = \mathcal P(i_2 \mid i_1) \cdot \mathcal P(i_3 \mid i_2) \cdot \mathcal P(i_4 \mid i_2) \cdot \mathcal P(i_5 \mid i_3,i_4) \end{aligned} P(I)=P(i1,i2,i3,i4,i5)=P(i2i1)P(i3,i4i2)P(i5i3,i4)=P(i2i1)P(i3i2)P(i4i2)P(i5i3,i4)

Sigmoid信念网络

单从名称中观察,信念网络指的就是贝叶斯网络 Sigmoid \text{Sigmoid} Sigmoid自然是指 Sigmoid \text{Sigmoid} Sigmoid函数
σ ( x ) = 1 1 + exp ⁡ ( − x ) \sigma(x) = \frac{1}{1 + \exp(-x)} σ(x)=1+exp(x)1
它的模型结构,以及模型表示是如何产生的?已知一个 Sigmoid \text{Sigmoid} Sigmoid信念网络表示如下:
Sigmoid信念网络——示例
其中蓝色结点表示观测变量蓝色虚线框中的结点表示观测变量层;同理,白色结点表示隐变量,整个隐变量包含两个隐变量层
Neal \text{Neal} Neal在1990年提出该模型时,将玻尔兹曼机贝叶斯网络相结合产生的模型产物。该模型的优势在于:

  • Sigmoid \text{Sigmoid} Sigmoid信念网络是有向图模型,因此在采样过程中,根据结点之间的因果关系 可以很容易地找到采样顺序(祖先采样方法);根节点(入度为零)开始,按照拓扑排序的顺序进行采样。
    从根节点开始采样,与根节点相连的其他结点之间属于同父结构。一旦根节点被采样(被观测),其相连结点之间条件独立。
  • 和前馈神经网络的函数逼近定理类似,如果隐藏层数量 ≥ 1 \geq 1 1层,从观测变量角度,它可以逼近任意二分类离散分布

关于随机变量集合 S \mathcal S S的描述如下:
v v v表示观测变量集合; h h h表示隐变量集合。
需要注意的点:

  • 这里的小括号上标并非表示样本编号,而是关于层的编号。如 h i + 1 ( 1 ) h_{i+1}^{(1)} hi+1(1)表示第 1 1 1个隐藏层中编号 i + 1 i+1 i+1的随机变量结点。当然,推导过程中的小括号是样本编号~
  • 与玻尔兹曼机、受限玻尔兹曼机相同,概率模型中的每个结点均服从‘伯努利分布’。

S = { v , h } = { v ( 1 ) , h ( 1 ) , h ( 2 ) } = { v i ( 1 ) , v i + 1 ( 1 ) , h i ( 1 ) , h i + 1 ( 1 ) , h i + 2 ( 1 ) , h j ( 2 ) , h j + 1 ( 2 ) } \begin{aligned} \mathcal S = \{v,h\} & = \{v^{(1)},h^{(1)},h^{(2)}\} \\ & = \{v_i^{(1)},v_{i+1}^{(1)},h_{i}^{(1)},h_{i+1}^{(1)},h_{i+2}^{(1)},h_{j}^{(2)},h_{j+1}^{(2)}\} \end{aligned} S={v,h}={v(1),h(1),h(2)}={vi(1),vi+1(1),hi(1),hi+1(1),hi+2(1),hj(2),hj+1(2)}
由于这是一个贝叶斯网络,我们可以通过结点之间的因果关系描述出该图的联合概率分布
贝叶斯网络结构表示中介绍过,受先找到入度为零的结点,再通过拓扑排序方式寻找各结点的后验概率信息。
P ( S ) = P ( v i ( 1 ) , v i + 1 ( 1 ) , h i ( 1 ) , h i + 1 ( 1 ) , h i + 2 ( 1 ) , h j ( 2 ) , h j + 1 ( 2 ) ) = P ( h j ( 2 ) ) ⋅ P ( h j + 1 ( 2 ) ) ⋅ P ( h i ( 1 ) ∣ h j ( 2 ) , h j + 1 ( 2 ) ) ⋅ P ( h i + 1 ( 1 ) ∣ h j ( 2 ) , h j + 1 ( 2 ) ) ⋅ P ( v i ( 1 ) ∣ h i ( 1 ) , h i + 1 ( 1 ) ) ⋅ P ( h i + 2 ( 1 ) ) ⋅ P ( v i + 1 ( 1 ) ∣ h i + 1 ( 1 ) , h i + 2 ( 1 ) ) \begin{aligned} \mathcal P(\mathcal S) & = \mathcal P (v_i^{(1)},v_{i+1}^{(1)},h_{i}^{(1)},h_{i+1}^{(1)},h_{i+2}^{(1)},h_{j}^{(2)},h_{j+1}^{(2)}) \\ & = \mathcal P(h_j^{(2)}) \cdot \mathcal P(h_{j+1}^{(2)}) \cdot \mathcal P(h_{i}^{(1)} \mid h_{j}^{(2)},h_{j+1}^{(2)}) \cdot \mathcal P(h_{i+1}^{(1)} \mid h_{j}^{(2)},h_{j+1}^{(2)}) \cdot \mathcal P(v_i^{(1)} \mid h_{i}^{(1)},h_{i+1}^{(1)}) \cdot \mathcal P(h_{i+2}^{(1)}) \cdot \mathcal P(v_{i+1}^{(1)} \mid h_{i+1}^{(1)},h_{i+2}^{(1)}) \end{aligned} P(S)=P(vi(1),vi+1(1),hi(1),hi+1(1),hi+2(1),hj(2),hj+1(2))=P(hj(2))P(hj+1(2))P(hi(1)hj(2),hj+1(2))P(hi+1(1)hj(2),hj+1(2))P(vi(1)hi(1),hi+1(1))P(hi+2(1))P(vi+1(1)hi+1(1),hi+2(1))
基于 Sigmoid \text{Sigmoid} Sigmoid信念网络的定义,以 h i ( 1 ) h_i^{(1)} hi(1)结点为例,它的概率分布表示如下:

  • 由于 h i ( 1 ) h_i^{(1)} hi(1) h j ( 2 ) , h j + 1 ( 2 ) h_j^{(2)},h_{j+1}^{(2)} hj(2),hj+1(2)存在因果关系。因此,这个‘概率分布’明显指的是条件概率分布 P ( h i ( 1 ) ∣ h j ( 2 ) , h j + 1 ( 2 ) ) \mathcal P(h_i^{(1)} \mid h_j^{(2)},h_{j+1}^{(2)}) P(hi(1)hj(2),hj+1(2)).
  • 提醒:概率分布描述中的 h j ( 2 ) , h j + 1 ( 2 ) h_j^{(2)},h_{j+1}^{(2)} hj(2),hj+1(2)并不是概率分布结果,而是具体的随机变量取值: h j ( 2 ) , h j + 1 ( 2 ) ∈ { 0 , 1 } h_j^{(2)},h_{j+1}^{(2)} \in \{0,1\} hj(2),hj+1(2){0,1}.
  • σ ( − x ) = 1 − σ ( x ) \sigma(-x) = 1- \sigma(x) σ(x)=1σ(x) Sigmoid \text{Sigmoid} Sigmoid函数自身的性质~
    P ( h i ( 1 ) ∣ h j ( 2 ) , h j + 1 ( 2 ) ) = { P ( h i ( 1 ) = 1 ∣ h j ( 2 ) , h j + 1 ( 2 ) ) = σ ( W j → i ⋅ h j ( 2 ) + W j + 1 → i ⋅ h j + 1 ( 2 ) ) P ( h i ( 1 ) = 0 ∣ h j ( 2 ) , h j + 1 ( 2 ) ) = 1 − σ ( W j → i ⋅ h j ( 2 ) + W j + 1 → i ⋅ h j + 1 ( 2 ) ) = σ [ − ( W j → i ⋅ h j ( 2 ) + W j + 1 → i ⋅ h j + 1 ( 2 ) ) ] \mathcal P(h_i^{(1)} \mid h_j^{(2)},h_{j+1}^{(2)}) =\begin{cases} \mathcal P(h_i^{(1)} =1\mid h_j^{(2)},h_{j+1}^{(2)}) = \sigma \left(\mathcal W_{j \to i} \cdot h_j^{(2)} + \mathcal W_{j+1 \to i} \cdot h_{j+1}^{(2)} \right) \\ \begin{aligned} \mathcal P(h_i^{(1)} =0\mid h_j^{(2)},h_{j+1}^{(2)}) & = 1 - \sigma \left(\mathcal W_{j \to i} \cdot h_j^{(2)} + \mathcal W_{j+1 \to i} \cdot h_{j+1}^{(2)} \right) \\ & = \sigma \left[- \left(\mathcal W_{j \to i} \cdot h_j^{(2)} + \mathcal W_{j+1 \to i} \cdot h_{j+1}^{(2)} \right)\right] \end{aligned} \end{cases} P(hi(1)hj(2),hj+1(2))= P(hi(1)=1hj(2),hj+1(2))=σ(Wjihj(2)+Wj+1ihj+1(2))P(hi(1)=0hj(2),hj+1(2))=1σ(Wjihj(2)+Wj+1ihj+1(2))=σ[(Wjihj(2)+Wj+1ihj+1(2))]

如果将其表示成通式的话,模型中某结点 h i h_i hi概率分布可表示如下:
∑ j → i W j → i ⋅ h j \sum_{j \to i} \mathcal W_{j \to i} \cdot h_j jiWjihj表示模型中指向 h i h_i hi的结点们与对应参数的线性组合结果。
P ( h i ∣ h j ; j → i ) = { P ( h i = 1 ∣ h j ; j → i ) = σ ( ∑ j → i W j → i ⋅ h j ) P ( h i = 0 ∣ h j ; j → i ) = σ ( − ∑ j → i W j → i ⋅ h j ) \mathcal P(h_i \mid h_j;j \to i) = \begin{cases} \mathcal P(h_i = 1 \mid h_j;j \to i) = \sigma \left(\sum_{j \to i} \mathcal W_{j \to i} \cdot h_j\right) \\ \mathcal P(h_i = 0\mid h_j;j \to i) = \sigma \left(- \sum_{j \to i} \mathcal W_{j \to i} \cdot h_j\right) \end{cases} P(hihj;ji)= P(hi=1hj;ji)=σ(jiWjihj)P(hi=0hj;ji)=σ(jiWjihj)
基于随机变量 h i h_i hi伯努利分布性质,将上述分段函数描述为一个公式:
P ( h i ∣ h j ; j → i ) = σ [ ( 2 h i − 1 ) ∑ j → i W j → i ⋅ h j ] \mathcal P(h_i \mid h_j;j \to i) = \sigma \left[(2h_i - 1)\sum_{j \to i} \mathcal W_{j \to i} \cdot h_j\right] P(hihj;ji)=σ[(2hi1)jiWjihj]

关于 Sigmoid \text{Sigmoid} Sigmoid信念网络学习任务(Learning),Neal当时提出使用MCMC采样的方式对模型参数梯度进行求解。在真实情况下,MCMC采样方式仅能对 随机变量数量较少的模型结构 进行求解。在玻尔兹曼机——基于MCMC的梯度求解中简单介绍过:首先,随着随机变量数量的增加,对应的复杂度也会指数级别地增长;其次,达到平稳分布是极困难的

重新观察上述 Sigmoid \text{Sigmoid} Sigmoid信念网络示例: v i ( 1 ) , v i + 1 ( 1 ) v_i^{(1)},v_{i+1}^{(1)} vi(1),vi+1(1)观测变量的随机变量信息,观测变量是样本提供的,因此和玻尔兹曼机、受限玻尔兹曼机一样, v i ( 1 ) , v i + 1 ( 1 ) v_i^{(1)},v_{i+1}^{(1)} vi(1),vi+1(1)可观测的。以 v i ( 1 ) v_i^{(1)} vi(1)为例,在 v i ( 1 ) v_i^{(1)} vi(1)被观测的条件下, h i ( 1 ) , h i + 1 ( 1 ) h_i^{(1)},h_{i+1}^{(1)} hi(1),hi+1(1)之间 不是条件独立关系( V \mathcal V V型结构),因此关于 h i ( 1 ) h_i^{(1)} hi(1)或者 h i + 1 ( 1 ) h_{i+1}^{(1)} hi+1(1)后验概率分布无法求解。

下面将求解模型参数对数似然梯度,观察对数似然梯度后验概率之间存在什么关联关系。

对数似然梯度推导过程

关于某随机变量结点后验概率分布可表示为:

  • 注意,这里的 s i s_i si无论是观测变量,还是隐变量,都和其父节点之间存在这种关联关系。
  • 为了推导过程方便,将线性计算中的偏置项 b b b归纳仅 W \mathcal W W中。
  • 为了符号使用方便,将 i i i改成了 k k k.
    { P ( s k ∣ s j ; j → k ) = σ [ s k ∗ ⋅ ∑ j → k W j → k ⋅ s j ] s k ∗ = 2 s k − 1 \begin{cases} \mathcal P(s_k \mid s_j;j \to k) = \sigma \left[s_k^* \cdot \sum_{j \to k} \mathcal W_{j \to k} \cdot s_j\right] \\ s_k^{*} = 2s_k - 1 \end{cases} {P(sksj;jk)=σ[skjkWjksj]sk=2sk1

对应地,关于随机变量 S \mathcal S S联合概率分布通式 P ( S ) \mathcal P(\mathcal S) P(S)可表示为:
P ( S ) = ∏ s k ∈ S P ( s k ∣ s j ; j → k ) \mathcal P(\mathcal S) = \prod_{s_k \in \mathcal S} \mathcal P(s_k \mid s_j;j \to k) P(S)=skSP(sksj;jk)
关于观测变量对数似然(Log-Likelihood)可表示为:
这里依然需要场景构建:数据集合 V \mathcal V V包含 ∣ V ∣ = N |\mathcal V| = N V=N个样本 { v ( 1 ) , v ( 2 ) , ⋯   , v ( ∣ V ∣ ) } \{v^{(1)},v^{(2)},\cdots,v^{(|\mathcal V|)}\} {v(1),v(2),,v(V)},并且每一个样本都可看做随机变量集合(观测变量) v v v的一种具体表示。
Log-Likelihood:  ∑ v ( i ) ∈ V log ⁡ P ( v ( i ) ) \text{Log-Likelihood: } \sum_{v^{(i)} \in \mathcal V} \log \mathcal P(v^{(i)}) Log-Likelihood: v(i)VlogP(v(i))
对某一权重 W j → i \mathcal W_{j \to i} Wji的梯度可表示为:
这里的权重 W j → i \mathcal W_{j \to i} Wji是指‘某一随机变量’ s j s_j sj指向'随机变量' s i s_i si的权重信息
∂ ∂ W j → i [ ∑ v ( i ) ∈ V log ⁡ P ( v ( i ) ) ] \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\sum_{v^{(i)} \in \mathcal V}\log \mathcal P(v^{(i)})\right] Wji v(i)VlogP(v(i))
根据链式求导法则,对上式进行展开:

  • 使用‘牛顿-莱布尼兹公式’,将积分(连加号)与梯度符号交换位置。
  • 为了后续推导方便,将对数似然梯度使用 Δ \Delta Δ进行表示。
    Δ = ∂ ∂ W j → i [ ∑ v ( i ) ∈ V log ⁡ P ( v ( i ) ) ] = ∑ v ( i ) ∈ V ∂ ∂ W j → i log ⁡ P ( v ( i ) ) = ∑ v ( i ) ∈ V 1 P ( v ( i ) ) ⋅ ∂ P ( v ( i ) ) ∂ W j → i \begin{aligned} \Delta & = \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\sum_{v^{(i)} \in \mathcal V}\log \mathcal P(v^{(i)})\right] \\ & = \sum_{v^{(i)} \in \mathcal V} \frac{\partial}{\partial \mathcal W_{j \to i}} \log \mathcal P(v^{(i)}) \\ & = \sum_{v^{(i)} \in \mathcal V} \frac{1}{\mathcal P(v^{(i)})} \cdot \frac{\partial \mathcal P(v^{(i)})}{\partial \mathcal W_{j \to i}} \end{aligned} Δ=Wji v(i)VlogP(v(i)) =v(i)VWjilogP(v(i))=v(i)VP(v(i))1WjiP(v(i))

引入 v ( i ) v^{(i)} v(i)对应在 Sigmoid \text{Sigmoid} Sigmoid信念网络中的隐变量集合 h ( i ) h^{(i)} h(i)

  • 这里同样使用‘牛顿-莱布尼兹公式’。
  • 根据条件概率公式,将 1 P ( v ( i ) ) = P ( h ( i ) ∣ v ( i ) ) P ( v ( i ) , h ( i ) ) \frac{1}{\mathcal P(v^{(i)}) }= \frac{\mathcal P(h^{(i)} \mid v^{(i)})}{\mathcal P(v^{(i)},h^{(i)})} P(v(i))1=P(v(i),h(i))P(h(i)v(i))代入式子中。
  • P ( v ( i ) , h ( i ) ) \mathcal P(v^{(i)},h^{(i)}) P(v(i),h(i))实际上就是某一样本的随机变量集合(隐变量、观测变量)的联合概率分布。这里对应使用符号 S ( i ) \mathcal S^{(i)} S(i)进行表示。
    Δ = ∑ v ( i ) ∈ V 1 P ( v ( i ) ) ⋅ ∂ ∂ W j → i [ ∑ h ( i ) P ( v ( i ) , h ( i ) ) ] = ∑ v ( i ) ∈ V ∑ h ( i ) 1 P ( v ( i ) ) ⋅ ∂ ∂ W j → i P ( v ( i ) , h ( i ) ) = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) P ( v ( i ) , h ( i ) ) ⋅ ∂ ∂ W j → i P ( v ( i ) , h ( i ) ) = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 P ( S ( i ) ) ⋅ ∂ P ( S ( i ) ) ∂ W j → i \begin{aligned} \Delta & = \sum_{v^{(i)} \in \mathcal V} \frac{1}{\mathcal P(v^{(i)})} \cdot \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\sum_{h^{(i)}} \mathcal P(v^{(i)},h^{(i)})\right] \\ & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}} \frac{1}{\mathcal P(v^{(i)})} \cdot \frac{\partial}{\partial \mathcal W_{j \to i}} \mathcal P(v^{(i)},h^{(i)}) \\ & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}} \frac{\mathcal P(h^{(i)} \mid v^{(i)})}{\mathcal P(v^{(i)},h^{(i)})} \cdot \frac{\partial}{\partial \mathcal W_{j \to i}} \mathcal P(v^{(i)},h^{(i)}) \\ & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\mathcal P(\mathcal S^{(i)})} \cdot \frac{\partial \mathcal P(\mathcal S^{(i)})}{\partial \mathcal W_{j \to i}} \end{aligned} Δ=v(i)VP(v(i))1Wji[h(i)P(v(i),h(i))]=v(i)Vh(i)P(v(i))1WjiP(v(i),h(i))=v(i)Vh(i)P(v(i),h(i))P(h(i)v(i))WjiP(v(i),h(i))=v(i)Vh(i)P(h(i)v(i))P(S(i))1WjiP(S(i))\

P ( S ( i ) ) \mathcal P(\mathcal S^{(i)}) P(S(i))使用联合概率分布通式展开,有:

  • 很明显, S ( i ) \mathcal S^{(i)} S(i)中有多少个随机变量, ∏ s k ( i ) ∈ S ( i ) P ( s k ( i ) ∣ s j ( i ) ; j → k ) \prod_{s_k^{(i)} \in \mathcal S^{(i)}}\mathcal P(s_k ^{(i)}\mid s_j^{(i)};j \to k) sk(i)S(i)P(sk(i)sj(i);jk)中就有多少项乘法。但与 W j → i \mathcal W_{j \to i} Wji相关的项只有 P ( s i ( i ) ∣ s j ( i ) ; j → i ) \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i) P(si(i)sj(i);ji)一项,其余项均可视作常数。
  • 使用符号 Ω = ∏ s k ( i ) ≠ s i ( i ) ∈ S ( i ) P ( s k ( i ) ∣ s j ( i ) ; j → k ) \Omega = \prod_{s_k^{(i)} \neq s_i^{(i)} \in \mathcal S^{(i)}}\mathcal P(s_k ^{(i)}\mid s_j^{(i)};j \to k) Ω=sk(i)=si(i)S(i)P(sk(i)sj(i);jk)表示除去 P ( s i ( i ) ∣ s j ( i ) ; j → i ) \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i) P(si(i)sj(i);ji)这一项之外的其他项的乘积。
    Δ = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 ∏ s k ( i ) ∈ S ( i ) P ( s k ( i ) ∣ s j ( i ) ; j → k ) ⋅ ∂ ∂ W j → i [ ∏ s k ( i ) ∈ S ( i ) P ( s k ( i ) ∣ s j ( i ) ; j → k ) ] = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 Ω ⋅ P ( s i ( i ) ∣ s j ( i ) ; j → i ) ⋅ [ Ω ⋅ ∂ ∂ W j → i P ( s i ( i ) ∣ s j ( i ) ; j → i ) ] = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 P ( s i ( i ) ∣ s j ( i ) ; j → i ) ⋅ [ ∂ ∂ W j → i P ( s i ( i ) ∣ s j ( i ) ; j → i ) ] \begin{aligned} \Delta & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\prod_{s_k^{(i)} \in \mathcal S^{(i)}}\mathcal P(s_k ^{(i)}\mid s_j^{(i)};j \to k)} \cdot \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\prod_{s_k^{(i)} \in \mathcal S^{(i)}}\mathcal P(s_k^{(i)} \mid s_j^{(i)};j \to k)\right] \\ & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\Omega \cdot \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i)} \cdot \left[\Omega \cdot \frac{\partial}{\partial \mathcal W_{j \to i}} \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i)\right] \\ & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i)} \cdot \left[ \frac{\partial}{\partial \mathcal W_{j \to i}} \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i)\right] \end{aligned} Δ=v(i)Vh(i)P(h(i)v(i))sk(i)S(i)P(sk(i)sj(i);jk)1Wji sk(i)S(i)P(sk(i)sj(i);jk) =v(i)Vh(i)P(h(i)v(i))ΩP(si(i)sj(i);ji)1[ΩWjiP(si(i)sj(i);ji)]=v(i)Vh(i)P(h(i)v(i))P(si(i)sj(i);ji)1[WjiP(si(i)sj(i);ji)]

至此,发现 P ( s i ( i ) ∣ s j ( i ) ; j → i ) \mathcal P(s_i^{(i)} \mid s_j^{(i)};j \to i) P(si(i)sj(i);ji)实际上就是结点的后验概率分布。那么将 Sigmoid \text{Sigmoid} Sigmoid代入,有:
Δ = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 σ [ ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] { ∂ ∂ W j → i σ [ ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] } \begin{aligned} \Delta = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\sigma \left[(2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right]}\left\{\frac{\partial}{\partial \mathcal W_{j \to i}} \sigma \left[(2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right]\right\} \end{aligned} Δ=v(i)Vh(i)P(h(i)v(i))σ[(2si(i)1)jiWjisj(i)]1{Wjiσ[(2si(i)1)jiWjisj(i)]}
依然使用链式求导法则进行求导。观察关于 Sigmoid \text{Sigmoid} Sigmoid函数的导数
∂ ∂ x [ σ ( x ) ] = e − x ( 1 + e − x ) 2 = 1 1 + e − x ⋅ e − x 1 + e − x = σ ( x ) ⋅ σ ( − x ) \begin{aligned} \frac{\partial}{\partial x} \left[\sigma(x)\right] & = \frac{e^{-x}}{(1 + e^{-x})^2} = \frac{1}{1 + e^{-x}} \cdot \frac{e^{-x}}{1 + e^{-x}}\\ & = \sigma(x) \cdot \sigma(-x) \end{aligned} x[σ(x)]=(1+ex)2ex=1+ex11+exex=σ(x)σ(x)
那么上式 Δ \Delta Δ可表示为:
同上,关于 ∑ j → i W j → i ⋅ s j ( i ) \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)} jiWjisj(i) W j → i \mathcal W_{j \to i} Wji求解偏导,实际上只有一项与 W j → i \mathcal W_{j \to i} Wji相关,与其他项无关,均视作常数。
p.s. 这里 j j j下标还是用重复了~
Δ = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ 1 σ [ ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] ⋅ σ [ ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] ⋅ σ [ − ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] ⋅ ( 2 s i ( i ) − 1 ) ⋅ s j ( i ) \begin{aligned} \Delta = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \frac{1}{\sigma \left[(2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right]} \cdot \sigma \left[(2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right] \cdot \sigma \left[- (2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right] \cdot (2s_i^{(i)} - 1) \cdot s_j^{(i)} \end{aligned} Δ=v(i)Vh(i)P(h(i)v(i))σ[(2si(i)1)jiWjisj(i)]1σ[(2si(i)1)jiWjisj(i)]σ[(2si(i)1)jiWjisj(i)](2si(i)1)sj(i)
该消掉的消掉,最后整理有:
∂ ∂ W j → i [ ∑ v ( i ) ∈ V log ⁡ P ( v ( i ) ) ] = ∑ v ( i ) ∈ V ∑ h ( i ) P ( h ( i ) ∣ v ( i ) ) ⋅ σ [ − ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ] ⋅ ( 2 s i ( i ) − 1 ) ⋅ s j ( i ) \begin{aligned} \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\sum_{v^{(i)} \in \mathcal V}\log \mathcal P(v^{(i)})\right] & = \sum_{v^{(i)} \in \mathcal V} \sum_{h^{(i)}}\mathcal P(h^{(i)} \mid v^{(i)}) \cdot \sigma \left[- (2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right] \cdot (2s_i^{(i)} - 1) \cdot s_j^{(i)} \\ \end{aligned} Wji v(i)VlogP(v(i)) =v(i)Vh(i)P(h(i)v(i))σ[(2si(i)1)jiWjisj(i)](2si(i)1)sj(i)

梯度求解过程中的问题

至此,观察关于 W j → i \mathcal W_{j \to i} Wji的梯度,其中包含一个关于隐变量集合的后验概率 P ( h ( i ) ∣ v ( i ) ) \mathcal P(h^{(i)} \mid v^{(i)}) P(h(i)v(i))。因为 V \mathcal V V型结构,给定观测变量条件下,根本不是条件独立,因此没有办法对 P ( h ( i ) ∣ v ( i ) ) \mathcal P(h^{(i)} \mid v^{(i)}) P(h(i)v(i))直接进行求解。

针对于小规模的随机变量集合,可以使用MCMC方法进行求解:

  • 针对‘对数似然’,这里乘以一个常数 1 N \frac{1}{N} N1,之前拉下了,对梯度方向不产生影响。
  • 依然是蒙特卡洛方法的逆推公式~
    ∂ ∂ W j → i [ 1 N ∑ v ( i ) ∈ V log ⁡ P ( v ( i ) ) ] = 1 N ∑ v ( i ) ∈ V E P m o d e l ( h ( i ) ∣ v ( i ) ) [ σ ( − ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ) ⋅ ( 2 s i ( i ) − 1 ) ⋅ s j ( i ) ] ≈ E P d a t a ( v ( i ) ∈ V ) { E P m o d e l ( h ( i ) ∣ v ( i ) ) [ σ ( − ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ) ⋅ ( 2 s i ( i ) − 1 ) ⋅ s j ( i ) ] } = { E P d a t a [ σ ( − ( 2 s i ( i ) − 1 ) ⋅ ∑ j → i W j → i ⋅ s j ( i ) ) ⋅ ( 2 s i ( i ) − 1 ) ⋅ s j ( i ) ] P d a t a ⇒ P d a t a ( v ( i ) ∈ V ) ⋅ P m o d e l ( h ( i ) ∣ v ( i ) ) \begin{aligned} \frac{\partial}{\partial \mathcal W_{j \to i}} \left[\frac{1}{N}\sum_{v^{(i)} \in \mathcal V}\log \mathcal P(v^{(i)})\right] & = \frac{1}{N}\sum_{v^{(i)} \in \mathcal V} \mathbb E_{\mathcal P_{model}(h^{(i)} \mid v^{(i)})} \left[\sigma \left(- (2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right) \cdot (2s_i^{(i)} - 1) \cdot s_j^{(i)} \right] \\ & \approx \mathbb E_{\mathcal P_{data}(v^{(i)} \in \mathcal V)} \left\{\mathbb E_{\mathcal P_{model}(h^{(i)} \mid v^{(i)})} \left[\sigma \left(- (2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right) \cdot (2s_i^{(i)} - 1) \cdot s_j^{(i)} \right]\right\} \\ & = \begin{cases} \mathbb E_{\mathcal P_{data}} \left[\sigma \left(- (2s_i^{(i)} - 1)\cdot \sum_{j \to i} \mathcal W_{j \to i} \cdot s_j^{(i)}\right) \cdot (2s_i^{(i)} - 1) \cdot s_j^{(i)}\right] \\ \mathcal P_{data} \Rightarrow \mathcal P_{data}(v^{(i)} \in \mathcal V) \cdot \mathcal P_{model}(h^{(i)} \mid v^{(i)}) \end{cases} \end{aligned} Wji N1v(i)VlogP(v(i)) =N1v(i)VEPmodel(h(i)v(i))[σ((2si(i)1)jiWjisj(i))(2si(i)1)sj(i)]EPdata(v(i)V){EPmodel(h(i)v(i))[σ((2si(i)1)jiWjisj(i))(2si(i)1)sj(i)]}={EPdata[σ((2si(i)1)jiWjisj(i))(2si(i)1)sj(i)]PdataPdata(v(i)V)Pmodel(h(i)v(i))

通过观察可以发现,这种描述方式和玻尔兹曼机——基本介绍中正相部分的描述格式基本相同。如果说一句总结的话,那就是 使用传统方式求解模型参数梯度,梯度中包含隐变量的后验概率,因而没有办法直接求解。可以通过MCMC方式采样近似求解,它的弊端这里就不多说了。

下一节将介绍醒眠算法

相关参考:
(系列二十六)Sigmoid Belief Network1-背景介绍
(系列二十六)Sigmoid Belief Network2- gradient of log-likelihood
(系列二十六)Sigmoid Belief Network2- gradient of log-likelihood续

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

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

相关文章

.NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件

本文简述如何在Smobiler中使用Bluetooth。 Step 1. 新建一个SmobilerForm窗体&#xff0c;并在窗体中加入Button和Bluetooth&#xff0c;布局如下 Button的点击事件代码&#xff1a; /// <summary>/// 关闭蓝牙/// </summary>/// <param name"sender"…

飞项三招教你用协同工具杜绝远程办公“摸鱼”

共同社19日报道称&#xff0c;总务省在新冠紧急事态宣言全面解除后不久的2021年10月对日本约9万户家庭开展了社会生活基本调查&#xff0c;利用获得的数据&#xff0c;对上班族中在调查当天有过远程办公的人和完全没有远程办公的人的工作日时间分配进行了比较。 结果显示&…

【vue面试题】

vue谈谈你怼MVVM开发模式的理解vue优点渐进式框架的理解vue常用的指令v-if和v-showv-if和v-for的优先级如何让CSS只在当前组件中起作用?<keep-alive></keep-alive> 的作用是什么?如何获取dom?vue-loader是什么&#xff1f;使用它的用途有哪些&#xff1f;assets…

哺乳时宝宝一边吃奶,另一边却自动流出来,这是怎么回事?

别人眼中的母乳喂养只是简单地把宝宝抱在怀里&#xff0c;让宝宝吃饱&#xff0c;超级简单。事实上&#xff0c;有很多母乳喂养。“麻烦事”比如母乳不足、堵奶、乳腺炎等&#xff0c;甚至更多“简单”漏奶会让宝宝头疼。有些妈妈很幸运&#xff0c;不知道什么是漏奶&#xff0…

小程序之会议管理

会议管理 注意事项 一些需要注意的细节&#xff1a; 因为 WXML 节点标签名只能是小写字母、中划线和下划线的组合&#xff0c;所以自定义组件的标签名也只能包含这些字符。自定义组件也是可以引用自定义组件的&#xff0c;引用方法类似于页面引用自定义组件的方式&#xff0…

React DAY07

复习&#xff1a; 1.RN中的样式和布局 RN样式完全脱离浏览器&#xff0c;自成体系的一套样式&#xff0c;使用对象创建样式 行内样式&#xff1a; <Text style{{color: red}}>内部样式&#xff1a; let ss StyleSheet.create({danger: {color: red}}) <Text styl…

从业多年的Android开发,竟拿不到 Application Context?

Android 开发者们对于 Application 并不陌生。有的时候为避免内存泄漏&#xff0c;常常不直接使用 Context 而是通过其提供的 getApplicationContext() 确保拿到的是 Application 级别的 Context。而本次像通常一样&#xff0c;拿到的 Application 却是 null&#xff0c;到底是…

国考省考行测:细节理解,对错判断,要素查找,问什么,找什么,对比分析

国考省考行测&#xff1a;细节理解&#xff0c;对错判断&#xff0c;要素查找&#xff0c;问什么&#xff0c;找什么&#xff0c;对比分析 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要…

头戴式耳机适合运动吗、五款最适合运动的耳机分享

戴着耳机锻炼&#xff0c;听着动感的音乐&#xff0c;会让你心潮澎湃&#xff0c;瞬间感觉自己力大无穷。那什么样的耳机更适合在健身房锻炼时戴呢&#xff1f;首先稳固性和舒适度一定要比较好&#xff0c;毕竟在运动的过程中老是感觉到不适或者掉落&#xff0c;那真的是很令人…

旋转的扰动、导数和积分

The plus operator 设M\mathcal{M}M表示一个n维的流型&#xff0c;因为流型局部同胚与Rn\mathbb{R}^nRn&#xff0c;所以我们可以通过定义符号⊞\boxplus⊞和⊟\boxminus⊟建立一个流型M\mathcal{M}M的局部邻域和其正切空间的双射。 ⊞:MRn→M;⊟:MMn→Rn\boxplus:\mathcal{M}…

为什么说用了MES系统,但生产数字化管理只做到20%?

随着越来越多的制造企业开始体验和建设MES系统&#xff0c;MES系统能够实现生产执行过程的有效数字化管理已经成为共识。回过头来看&#xff0c;是不是只有生产进度才是工厂需要管理的&#xff1f;当你想详细了解当前存在的问题&#xff0c;进展如何&#xff0c;哪些月度重点任…

JAVA零基础小白学习教程之day09-内部类权限final静态

day09-JAVAOOP 课程目标 1. 【理解】什么是内部类 2. 【掌握】匿名内部类 3. 【掌握】引用数据类型作为方法的参数 4. 【理解】final关键字的使用 5. 【理解】包的定义及使用 6. 【理解】权限修饰符 7. 【掌握】static关键字的使用B友https://www.bilibili.com/video/BV1QG4y…

职场员工有没有潜力,看这一个能力就够了

在我组织的研讨会上&#xff0c;讲故事的课程通常以一个思考练习开始。 我会让参与者闭上眼睛回忆《小红帽》的故事&#xff0c;尤其考虑其中的情节、起伏和结尾。这个练习有时会引发一阵笑声&#xff0c;人们会好奇这与课程有什么相关性&#xff0c;或者干脆把《小红帽》与《…

给Debezium connector 发送信号

1. 概述 Debezium 信号机制提供了一种方法来修改连接器的行为&#xff0c;或触发一次性操作&#xff0c;例如启动表的 临时快照。要触发连接器执行指定操作&#xff0c;可以发出特殊的SQL 命令以将信号消息添加到专门的信号表&#xff0c;也称为信号数据集合。在源数据库上创建…

哪些进销存软件既好用又免费?

中小企业刚起步都会面临着资金紧缺、人力资源不足等诸多管理问题&#xff0c;对于大部分预算不是很多的中小企业或者尚未尝试过进销存软件的企业&#xff0c;都会选择免费进销存软件来进行企业管理或体验进销存软件的功效。 进销存软件的开发需要强大的技术支持&#xff0c;数…

B站技术选型与架构

目录前言B站前端之路B站Golang技术栈分析bilibili技术总监毛剑简介前言 了解了一下B站的技术发展历程&#xff1a;最开始是用PHP语言开发的&#xff0c;后来B站的中台逐步被Node占领&#xff0c;而后台技术为了更高的并发、更稳健&#xff0c;以及为了大数据分析&#xff0c;逐…

RK3568平台开发系列讲解(Linux系统篇)共享内存

🚀返回专栏总目录 文章目录 一、共享内存底层实现二、共享内存API三、共享内存案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢共享内存技术是功能最强、应用最广的进程间通信技术。其原理是多个进程共享相同的物理内存区,一个进程对该内存区的任意修改,可被其…

不懂Nacos没关系,可以看看它是怎么运用代理模式的

背景 看Nacos的源代码时&#xff0c;发现其中有对代理模式的运用&#xff0c;而且用得还不错&#xff0c;可以作为一个典型案例来聊聊&#xff0c;方便大家以更真实的案例来体验一下代理模式的运用。如果你对Nacos不了解&#xff0c;也并不影响对本篇文章的阅读和学习。 本文…

前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整

目录 游戏主体部分--地狱模式 游戏主页入口 预览图 游戏入口代码 1.html 2.css 3.js 注册页面代码 游戏实现很简单&#xff0c;只写游戏主体的话只要三小时就够了。 话不多说&#xff0c;我们直接来看效果预览。 转成gif图之后有点卡&#xff0c;但是游戏效果并不卡&…

php宝塔搭建部署实战PESCMSTEAM团队任务管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的PESCMSTEAM团队任务管理系统源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&am…