离散型Hopfield题目解法

举报
小康不会AI 发表于 2022/10/12 16:48:18 2022/10/12
【摘要】 离散型Hopfield题目解法 题目说明1.写出权值矩阵。2.对给出的初始状态异步更新。3.哪个是吸引子。4.计算对应吸引子的能量值。 解题步骤1.写出矩阵:w=np.array([[0,1,1,-1,1], [1,0,-1,-3,3], [1,-1,0,1,-1], [-1,-3,1,0,-3], [1,3,...

离散型Hopfield题目解法

题目说明

E101443AB4A92672220E8963E878EB82.png
1.写出权值矩阵。
2.对给出的初始状态异步更新。
3.哪个是吸引子。
4.计算对应吸引子的能量值。

解题步骤

1.写出矩阵:

w=np.array([[0,1,1,-1,1],
           [1,0,-1,-3,3],
           [1,-1,0,1,-1],
           [-1,-3,1,0,-3],
           [1,3,-1,-3,0]])

2.对每个状态进行异步更新,下面是全部代码:

import numpy as np
def sgn(x):
    if x>=0:
        return 1
    else:
        return -1

result=0
w=np.array([[0,1,1,-1,1],
           [1,0,-1,-3,3],
           [1,-1,0,1,-1],
           [-1,-3,1,0,-3],
           [1,3,-1,-3,0]])
# x=np.array([-1,-1,1,1,1]).reshape(5,1)
# x=np.array([-1,-1,1,1,-1]).reshape(5,1)
# x=np.array([-1,-1,-1,1,-1]).reshape(5,1)
# x=np.array([-1,1,-1,1,-1]).reshape(5,1)
x=np.array([1,-1,1,1,-1]).reshape(5,1)
for i in range(5):
    result=sgn(w[i].reshape(1, 5).dot(x)[0][0])
    x[i][0]=result
    # print(x)
print(x)

3.由上面的结果可以知道,x2是一个吸引子。
4.根据公式计算x2的能量:

#w权值矩阵
w=np.array([0,1,1,-1,1,
           1,0,-1,-3,3,
           1,-1,0,1,-1,
           -1,-3,1,0,-3,
           1,3,-1,-3,0]).reshape(5,5)
#x2的状态向量
xxy=np.array([-1,-1,1,1,-1]).reshape(1,5)
print(-1/2*xxy.dot(w).dot(xxy.T)[0][0])

image.png
最后得出,能量是-14。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。