开发者学堂课程【机器学习算法 :离散 Hopfield 网络-4】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7254
离散 Hopfield 网络-4
DHNN 例子
三节点的 DHNN 网络,其阈值、权重值都已经确定,即该网络能够存储的记忆值均以确定。计算网络的演变过程。
各节点取值为0或1,则其输入模式共有23=8种。初态以 X =(000)T 为例:
第一步:初始状态(000)r 如果优先更新 X1:
此时网络状态为(100)T
如果该步优先更新 X2:
X2=sgn(0*(-0.5)+0*0+0*0.6-0)=sgn(0)=0
此时网络状态为(000)T,原来的分量也是0,就没有变
如果该步优先更新 X3:如果该步优先更新 X3:
X2=sgn(0*0.2+0*06+0*.-0)=sgn(0)=0
此时网络状态为(000)T,原来的分量也是0,就没有变
第一步因为更新次序不同,会导致不同的网络状态,两次被导向(000)T,一次被导向:(100)T
现在研究一下网络状态是(100)T 如果优先更新 X1:
如果状态是(100)那我们更新 X1,X1 的分量就成为1,就没有变化
X1=sgn(1*0+0*(-0.5)+0*0.2-(-0.1))=sgn(0.1)=1
此时网络状态为(100)T
如果该步优先更新X2:
X2=sgn(1*(-0.5)+0*0+0*0.6-0)=sgn(-0.5)=0
此时网络状态为(100)T
第二步因为更新次序不同,会导致不同的网络状态,其中两次被导向(100)T,一次被导向:(101)T
同样的,第三步:网络状态为(101)T如果优先更新 X1:
X1=sgn(1*1+1*(-0.5)+1*0.2-(-0.1))=sgn(-0.2)=0
此时网络状态为(101)T
如果该步优先更新 X2:
X2=sgn(1*(-0.5)+1*0+1*0.6-0)=sgn(0.1)=1
此时网络状态为(111)T
如果该步优先更新 X3:
X3=sgn(1*0.2+1*0.6+1*0-0)=sgn(0.8)=1
此时网络状态为(101)T
第三步因为更新次序不同,会导致不同的网络状态,其中两次被导向(101)T,一次被导向:(111)T
第四步:网络状态为(111)T如果优先更新 X1:
X1=sgn(1*0+1*(-0.5)+1*0.2-(-0.1))=sgn(-0.2)=0
此时网络状态为(011)T
如果该步优先更新 X2:
X2=sgn(1*(-0.5)+1*0+1*0.6-0)=sgn(0.1)=1
此时网络状态为(111)T
如果该步优先更新 X3:
X3=sgn(1*0.2+1*0.6+1*0-0)=sgn(0.8)=1
此时网络状态为(111)T
第四步因为更新次序不同,会导致不同的网络状态,其中两次被导向(111)T,一次被导向:(011)T
第五步:网络状态为(011)T 如果优先更新 X1:
X1=sgn(0*0+1*(-0.5)+1*0.2-(-0.1))=sgn(-0.2)=0
此时网络状态为(011)T
如果该步优先更新 X2:
X2=sgn(0*(-0.5)+1*0+1*0.6)=sgn(0.6)=1
此时网络状态为(011)T
如果该步优先更新 X3:
X3=sgn(0*0.2+1*0.6+1*0-0)=sgn(0.6)=1
此时网络状态为(011)T
第五步不同的更新次序都会导向同样的网络状态(011)T,即本次输出模式会收敛于这个网络状态。
就证明(011)T 是稳定状态,三种更新的次序,每一个次序来讲都会回到它本身,所以它是稳定状态。
当它从(000)T 变成(100)T 时候,因为次序不一样,它变换的概率也不一样,每一步都是如此。
这个图可以展示所有的演变过程。
接下来就可以挨着往下算,蓝框表示初始状态,红框表示它的稳定态,计算的过程如下图所示:
另外一种可能的状态就是(010)T 以及(101)T
一共八种状态,接下来就是(110)T 以及(111)T
我们发现所有的状态趋于稳定之后都会变成(011)T