首页 > 其他分享 >47、基于连续Hopfield神经网络的不稳定平衡

47、基于连续Hopfield神经网络的不稳定平衡

时间:2024-06-24 12:58:25浏览次数:20  
标签:Hopfield record 47 稳定平衡 网络 start 神经网络

1、连续Hopfield神经网络的不稳定平衡原理及流程

连续Hopfield神经网络是一种用于模式识别和记忆的神经网络模型,其基本原理是通过权重矩阵来存储并检索各种模式。不稳定平衡指的是在Hopfield网络中,输入的模式通过网络的动态演化最终会达到一个平衡状态,该状态可能是存储的模式之一,也可能是一个吸引子。当网络达到这种状态时,即达到了平衡,但这种平衡状态可能不是所期望的模式,被称为不稳定平衡。

以下是连续Hopfield神经网络不稳定平衡的原理和流程:

  1. 初始状态:网络开始时的状态为输入的模式或是一个随机的初始状态。

  2. 动力学更新:根据Hopfield神经网络的动力学规则,每个神经元根据其输入和权重,通过一个非线性激活函数(通常是双曲正切函数)来更新其状态。

  3. 迭代更新:不断迭代地更新神经元的状态,直到网络达到一个稳定状态或者达到一个能量最小值的状态。

  4. 平衡状态:网络最终可能会达到一个平衡状态,此时网络的能量不再下降,但不一定是所存储的模式。

  5. 不稳定平衡:有时候网络最终达到的平衡状态可能并不是所期望的存储模式,而是一个吸引子或者局部最小值,此时网络处于不稳定平衡。

  6. 根据需要重复训练与修正网络以提高模式的识别性能。

在连续Hopfield神经网络中,不稳定平衡的情况可能会造成存储的模式被扭曲或混淆,导致不正确的记忆或识别。因此,在实际应用中需要谨慎处理不稳定平衡状态,可以通过设置合适的学习规则、权重更新策略和网络参数等方式来减少不稳定平衡的影响。

2、 基于连续Hopfield神经网络的不稳定平衡说明

说明

Hopfield网络存在一个不期望的平衡点,然而,这些点是不稳定的,因为系统中的任何噪声都会使网络偏离它们。

3、数据集

1)说明

得到一个Hopfield网络,具有由T中的两个目标(列)向量定义的两个稳定点。

2)代码

T = [+1 -1; ...
      -1 +1];

4、绘图

1)说明

稳定的点显示在角落里。2神经元Hopfield网络的所有可能状态都包含在图的边界内。

2)代码

plot(T(1,:),T(2,:),'r*')
axis([-1.1 1.1 -1.1 1.1])
title('Hopfield Network State Space')
xlabel('a(1)');
ylabel('a(2)');

3)试图效果

5、创建网络

1) 说明

NEWHOP函数在给定稳定点的情况下创建Hopfield网络T。

2)代码

net = newhop(T);

3)视图效果

6、 随机起点

1)说明

定义一个随机的起点,并模拟Hopfield网络50步。它应该达到一个稳定点。

2)代码

a = {rands(2,1)};
[y,Pf,Af] = net({1 50},{},a);

7、 画一张Hopfield网络活动的图

1)说明

网络最终出现在图的左上角或右下角。

2)代码

record = [cell2mat(a) cell2mat(y)];
start = cell2mat(a);
hold on
plot(start(1,1),start(2,1),'bx',record(1,:),record(2,:))

3)试图效果

 8、中间稳定点

说明

网络在角落以外的地方有不希望的稳定点。当我们模拟五个初始权值P的Hopfield时,我们可以看到这一点。
正好在两个目标稳定点之间。结果是它们都移动到状态空间的中心,那里存在一个不想要的稳定点。

代码

plot(0,0,'ko');
P = [-1.0 -0.5 0.0 +0.5 +1.0;  
     -1.0 -0.5 0.0 +0.5 +1.0];
color = 'rgbmy';
for i=1:5
   a = {P(:,i)};
   [y,Pf,Af] = net({1 50},{},a);
   record=[cell2mat(a) cell2mat(y)];
   start = cell2mat(a);
   plot(start(1,1),start(2,1),'kx',record(1,:),record(2,:),color(rem(i,5)+1))
   drawnow
end

视图效果

9、总体视图效果 

10、总结 

基于连续Hopfield神经网络的不稳定平衡主要包括以下几点总结:

  1. 不稳定平衡现象:连续Hopfield神经网络在动力学演化过程中可能会出现不稳定平衡现象,即网络可能会收敛到一个状态,但该状态并不是所期望的存储模式,而是达到一个局部极小值或者一个不正确的吸引子。

  2. 原因分析:不稳定平衡的出现可能是由于网络动力学规则和激活函数的非线性性质导致的,以及在网络训练过程中存在的噪声和误差等因素造成的。

  3. 影响:不稳定平衡状态可能会影响Hopfield神经网络的存储和识别性能,使得网络无法正确地恢复存储的模式或识别输入的模式。

  4. 处理方法:要解决不稳定平衡问题,可以采取以下方法:

    • 设计更合适的非线性激活函数,使网络更容易收敛到正确的稳定状态。
    • 调整网络的学习规则和权重更新策略,以减小网络的能量函数和降低局部最小值的影响。
    • 引入噪声抑制技术,通过在网络中引入适当的噪声来避免网络陷入不稳定状态。
  5. 注意事项:在应用连续Hopfield神经网络时,需要充分了解不稳定平衡的特性和可能的问题,以及如何通过合适的调整和改进来提高网络的性能和稳定性。

总的来说,了解和处理连续Hopfield神经网络的不稳定平衡现象对于有效应用和优化网络性能至关重要,需要综合考虑网络结构、动力学规则、激活函数等因素,以提高网络的稳定性和性能。

11、源代码 

代码

%% 基于连续Hopfield神经网络的不稳定平衡
%说明:Hopfield网络存在一个不期望的平衡点。
%然而,这些点是不稳定的,因为系统中的任何噪声都会使网络偏离它们。

%% 数据集
%说明:得到一个Hopfield网络,具有由T中的两个目标(列)向量定义的两个稳定点。

T = [+1 -1; ...
      -1 +1];
%% 绘图
%稳定的点显示在角落里。2神经元Hopfield网络的所有可能状态都包含在图的边界内。
% figure(1)
plot(T(1,:),T(2,:),'r*')
axis([-1.1 1.1 -1.1 1.1])
title('Hopfield Network State Space')
xlabel('a(1)');
ylabel('a(2)');
%% 创建网络
%NEWHOP函数在给定稳定点的情况下创建Hopfield网络T。
net = newhop(T);
% view(net)
%% 随机起点
%定义一个随机的起点,并模拟Hopfield网络50步。它应该达到一个稳定点。
a = {rands(2,1)};
[y,Pf,Af] = net({1 50},{},a);
%% 画一张Hopfield网络活动的图
%网络最终出现在图的左上角或右下角。
% figure(2)
record = [cell2mat(a) cell2mat(y)];
start = cell2mat(a);
hold on
plot(start(1,1),start(2,1),'bx',record(1,:),record(2,:))
%% 
% 网络在角落以外的地方有不希望的稳定点。当我们模拟五个初始权值P的Hopfield时,我们可以看到这一点。
%正好在两个目标稳定点之间。结果是它们都移动到状态空间的中心,那里存在一个不想要的稳定点。
% figure(3)
plot(0,0,'ko');
P = [-1.0 -0.5 0.0 +0.5 +1.0;  
     -1.0 -0.5 0.0 +0.5 +1.0];
color = 'rgbmy';
for i=1:5
   a = {P(:,i)};
   [y,Pf,Af] = net({1 50},{},a);
   record=[cell2mat(a) cell2mat(y)];
   start = cell2mat(a);
   plot(start(1,1),start(2,1),'kx',record(1,:),record(2,:),color(rem(i,5)+1))
   drawnow
end

标签:Hopfield,record,47,稳定平衡,网络,start,神经网络
From: https://blog.csdn.net/XU157303764/article/details/139778038

相关文章

  • [题解]CF1473D Program
    思路因为此题目中对于数的更新只能为\(1\),所以,如果我们找到了\([1,l-1]\)与\([r+1,n]\)中能获得的两个极值即可。我们为\(S\)赋予权值,用一个数组\(a\)储存:如果\(S_i\)为+,则其权值为\(1\)。否则其权值为\(-1\)。那么,在第\(i\)次操作后,能产生的数是\(\s......
  • 【TDO三维路径规划】袋獾算法无人机避障三维航迹规划【含Matlab源码 4740期】
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • 【优化规划】粒子群算法求解GARVER-6节点配网系统经济性与可靠性网架规划优化问题【含
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • 【优化分配】粒子群算法求解机组负荷分配优化问题(目标函数:最优成本)【含Matlab源码 478
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。......
  • 【气动学】三级火箭发射弹道主动段仿真(三次点火达到目标轨道)【含Matlab源码 4711期】
    ⛄一、获取代码方式获取代码方式1:完整代码已上传我的资源:【气动学】基于matlab三级火箭发射弹道主动段仿真(三次点火达到目标轨道)【含Matlab源码4711期】点击上面蓝色字体,直接付费下载,即可。获取代码方式2:付费专栏Matlab物理应用(初级版)备注:点击上面蓝色字体付费专栏......
  • 647. 回文子串(leetcode)
    647.回文子串(leetcode)题目描述给你一个字符串s,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一个序列。示例1输入:s=“abc”输出:3解释:三个回文子串:“a”,“b”,“c”......
  • Day 28 | 491.递增子序列 、46.全排列、 47.全排列 II
    491.递增子序列本题和大家刚做过的90.子集II非常像,但又很不一样,很容易掉坑里。https://programmercarl.com/0491.递增子序列.html视频讲解:https://www.bilibili.com/video/BV1EG4y1h78v给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两......
  • [题解]AT_abc247_f [ABC247F] Cards
    思路对于包含数\(x\)的卡牌,两张之中必定要选择一张,由此想到2-SAT的思想。我们将所有带有\(x\)的卡牌两两连边,每一条边连接的点都表示两点必须选择一个。不难发现,我们这样会得出若干个环。(因为对于每一张卡牌的出边为\(2\),一定会形成环)在每一个环中的选择情况,不会影响答......
  • QOJ #8473. Matrices and Determinants
    唉,不会线性代数了,做了三个小时。为了求行列式,显然要先把\(A\)消成上三角矩阵,记作\(A'\)。我们显然可以在操作\(A\)的时候求出将\(A\)消成\(A'\)的操作矩阵\(M\),则我们可以构造\(A'=B'C'\),再将\(B'\)乘上\(M^{-1}\)就可以得到原来的\(B\)。判掉\(A\)的行列式不......
  • redis自学(47)服务端优化
    持久化配置Redis的持久化虽然可以保证数据安全,但也会带来很多额外的开销,因此持久化请遵循下列建议:①用来做缓存的redis实例尽量不要开启持久化功能②建议关闭RDB持久化功能,使用AOF持久化(RDB的数据安全性一直是有问题的,两次RDB的时间比较长,又不能频繁的RDB,因为耗时久而且需......