开发者学堂课程【机器学习算法 :离散 Hopfield 网络-3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7253
离散 Hopfield 网络-3
DHNN 例子
假设有一个三节点 DHNN,它的网络 top 结构如下图所示
对每一个节点来说都有输出,都有一个阈值,那么这三个输出都返回一个节点,对应的阈值,T1=0.1、T2=0、T3=0
权重矩阵如下:
可以看到其中一个对角线都是0,如果像这样权重矩阵是对称的,那么它一定会到某种状态的,对角线为0也就说明 x1返回它本身的权重了,否则就没有返回;w12 等于0.15,也就是说第一个神经元返回到第二个神经元的输入权值;第三个值是0.2,就表明第一个的神经元输出返回到第三个神经元的权值是0.2;接下来是-0.5就表明第二个神经元输出返回到第一个神经元中的权值是0.5;下一个是0,就表明,第二个神经元,它的输出返回到它本身的神经元的权值是0;那么0.6就表示,第二个神经元的输出返回到第三个神经元输入的权值是0.6;以此类推,为了方便,把这些值填到初始化的图里边去。
这样看的比较清楚,对于第一个神经元来讲,它的阈值是-0.1,输出反馈回来的时候,它本身就是0,就省去。
还可以简化一下,做成以下的图
首先是三个值,把它的阈值都写到圈里边,一个是-0.1,两个是0,它的边有一个对应的值是-0.5,就表示 x1 返回到 x2 输入时候的权值是-0.5,以此类推。对角线是0就代表不会返回到它本身。
三节点的 DHNN 网络,其阈值、权重值都已经确定,即该网络能够存储的记忆值均以确定。按照异步工作模式,计算网络的演变过程。网络生成之后,它的作用是联想记忆,我们要看的就是它到底记忆了什么东西,或者说输入一些片段时候,它怎么通过动态的演变过程收敛一些状态,也就是怎么通过一些片段信息得到联想的结论。
接下来补充一些信息
各节点取值为0或1,因为它是离散的,则其输入模式共有8种。初态以 X =(000)T为例:
异步工作模式(有两种工作模式,一种是异步工作一种是同步工作),其更新顺序可以指定,也可以随机,本例中使用顺序为:1->2->3
首先更新第一个节点,然后更新第二个节点,更新第三个节点。
初始状态(0 0 0)r 更新 x1,就用以下这个函数:
X1 更新完之后,0变成1,就出现(1 0 0)r,更新 x2:
X2 更新完之后,不变,就出现(1 0 0)r,更新 x3:
这时候分量发生变化,原来分量是0,现在变成1,所以接下来就是
(1 0 1)r,更新 X1:
现在继续更新X2,如果没有变化就说明已经完成:
(1 0 1)r,更新 X2:
原来X2的分量是0,现在发生了变化变成1,状态并没有稳定,所以要继续更新X3
(1 1 1)r,更新 X3:
它的状态没有改变,现在继续更新 X1,状态没有稳定就继续更新下去,得到的结果就是
圈住的部分,因为这三次分量都没有改变,所以已经趋于一个稳定的状态了
更新的路径图如下: