首页 > 其他分享 >Hopfield 神经网络中能量函数的含义及其变化值 ΔE≤0 的证明

Hopfield 神经网络中能量函数的含义及其变化值 ΔE≤0 的证明

时间:2024-10-17 20:33:52浏览次数:1  
标签:Hopfield 阈值 sum 节点 神经网络 Delta 能量 含义

Hopfield 神经网络中能量函数的含义及其变化值 \(\Delta E \leq 0\) 的证明

Ciallo~(∠・ω< )⌒★ 我是赤川鹤鸣,本期是学习 Hopfield 神经网络时, 遇到能量函数的相关知识时的思考和总结, 希望有能帮助到你.

Hopfield 神经网络中,能量函数的定义如下

\[E = -\dfrac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} w_{ij} x_i x_j + \sum_{i=1}^{n} b_i x_i \tag{1} \]

观察能量函数 \(E\),可以发现其由两部分构成,我称其为激活能量阈值能量, 接下来我们一点点抽丝剥茧.

注意:激活能量阈值能量这是我为了方便自创的词,并未查询原论文的叫法.

能量函数其实就是所有节点的值(0或1)与其阈值之积,减去不重复的每对节点的值(两个节点)与其连接权重的积的和.

这句话我总结得有点复杂,我们一步一步拆解来看.

首先,\(w_{ij} x_i x_j\) 这一项在结果上,等于任意选取两个节点 \(i\) 和 \(j\),这两个节点的值(0或1)相乘之后,再与这两个节点之间连接权重 \(w_{ij}\) 相乘.

而把所有节点对这样的值 \(w_{ij} x_i x_j\) 都累加起来,我们得到的就是激活能量

\[E^A = -\dfrac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} w_{ij} x_i x_j \tag{2} \]

Q:式 \((2)\) 前面的 \(\frac{1}{2}\) 是怎么来的?

A:观察 \(w\) 的下标 \(i\) 和 \(j\),你就会发现激活能量会被重复地计算两遍(例如当 \(n=10\),那么 \(i=1, \ j=9\) 和 \(i=9, \ j = 1\) 的两种情况其实计算的是同一对节点),所以除以 \(2\) 就很合理了.

Q:式 \((2)\) 里没有排除 \(i=j\) 的情况,如何解释?

A:实际上,当 \(i=j\) 时,只需要令 \(w_{ij} = 0\) 即可.

类似地,\(b_i x_i\) 在结果上,等于任意一个节点 \(i\) 与其阈值 \(b_i\) 的乘积.

而把所有节点这样的值 \(b_i x_i\) 都累加起来,就是阈值能量

\[E^{\Theta} = \sum_{i=1}^{n} b_i x_i \]

下面是我自己画的一个关系矩阵图,描述了每个节点之间的关系,块的颜色深浅表示权重大小,由于下标 \(i\) 和 \(j\) 是可以互换的,因此关系矩阵图沿主对角线对称.

现在,我们假设有一个节点 \(k\),为了求得节点 \(k\) 所具有的能量,即节点 \(k\) 的激活能量和节点 \(k\) 的阈值能量之和,我们做如下分析:

如果选定 \(i = k\),那么 \(k\) 节点要与每个节点相乘,再乘上它们之间的连接权重,那么节点 \(k\) 的激活能量为(如上图所示)

\[E^{A}_{k} = - \sum_{j=1}^{n} w_{kj} x_k x_j \]

看图可知对称性,不难得出,如果选定 \(j = k\),那么结果是一样的,即

\[E^{A}_{k} = \sum_{i=1}^{n} w_{ik} x_i x_k \]

而节点 k 的阈值能量为

\[E^{\Theta}_{k} = - b_k x_k \]

因此,我们求得节点 \(k\) 的能量为

\[\begin{align*} E_{k} &= - \sum_{j=1}^{n} w_{kj} x_k x_j + b_k x_k \\ &= - \left(\sum_{j=1}^{n} w_{kj} x_j- b_k \right) x_k \tag{3} \end{align*} \]

每次迭代,节点 \(k\) 的能量变化 \(\Delta E_{k}\),可以直接将式 \((3)\) 中的变量 \(x_k\) 替换为 \(\Delta x_k\),得

\[\Delta E_{k} = - \left(\sum_{j=1}^{n} w_{kj} x_j- b_k \right) \Delta x_k \tag{4} \]

之后我们根据 Hopfield 神经网络的特点就可以得出以下推理

\[\Delta x_k > 0 \ \Rightarrow \ x_k = 1 \ \Rightarrow \ \sum_{j=1}^n w_{kj} x_j > b_k \ \Rightarrow \ \Delta E_k < 0 \]

也就是说,当节点 \(k\) 的变化值大于 \(0\) 时,这就是说这个节点达到了激活阈值,即 $ \sum_{j=1}^n w_{kj} x_j > b_k $ 成立,因此根据式 \((4)\) 有 \(\Delta E_k < 0\).

同理,也有

\[\Delta x_k < 0 \ \Rightarrow \ x_k = 0 \ \Rightarrow \ \sum_{j=1}^n w_{kj} x_j < b_k \ \Rightarrow \ \Delta E_k < 0 \\ \Delta x_k = 0 \ \Rightarrow \ E_k = 0 \]

根据这三个情况,我们可以得出结论,无论当 \(\Delta x_k\) 取何值时,恒有

\[\Delta E_k \leq 0 \tag{5} \]

成立.

即,**随着时间的推移(不断地输入模式),能量函数 \(E\) 的值会不断减小,或者至少保持不变. ** 这其实是为了保证整个 Hopfield 网络的稳定性.

标签:Hopfield,阈值,sum,节点,神经网络,Delta,能量,含义
From: https://www.cnblogs.com/AkagawaTsurunaki/p/18473021

相关文章