zoukankan      html  css  js  c++  java
  • 霍普菲尔得神经网络(Hopfield Neural Network)

     

    设计一个反馈网络存储下列目标平衡点:

    T = [ 1  -1; -1  1 ];

    并用6组任意随机初始列矢量,包括一组在目标平衡点连线的垂直平分线上的一点作为输入矢量对所设计的网络的平衡点进行测试,观察3次循环的每一次的输出结果。给出最后收敛到各自平衡点(或不稳定的平衡点)结果的次数。

    采用正交化方法设计的霍普菲尔德网络结构,如下图:

    通过net=newhop(T);操作可得网络的权值和偏差为:

    可见权值是对称的。

    现在选取6组任意随机初始列矢量,并调整其中一组在目标平衡点连线的垂直平分线上,如下:

    循环迭代60次效果如下图所示:

    其中(0.5000,0.5000)点60次迭代收敛至不稳定平衡点(0,0),当迭代次数增大至1000时能改变这种情况。

    最终收敛情况如下:


    T=[1 -1;-1 1];
    P=[ 0.8147    -0.1270    0.6324    0.5000    -0.9575    0.1576;
        0.9058    0.9134    -0.0975    0.5000    0.9649    -0.9706];
    net=newhop(T);
    W=net.lw{1,1}
    b=net.b{1}
    plot(T(1,:),T(2,:),'r*');
    axis([-1 1 -1 1])
    
     max_epoes =1000;
    [Y,Pf,Af] = sim(net,{6,max_epoes},[],P);    
    
    plot(T(1,:),T(2,:),'*y');
    hold on
    plot(P(1,:),P(2,:),'+');
    hold on
    A=zeros(2,max_epoes+1);
    for i=1:6
    for n=2:(max_epoes+1)
        A(1,n)=Y{n-1}(1,i);
        A(2,n)=Y{n-1}(2,i);
        hold on
    end
    A(1,1)=P(1,i);
    A(2,1)=P(2,i);
    title('Hopfield Network State Space')
    plot(A(1,:),A(2,:),'*-')
    end
    % for i=1:30
    %    A=sim(net,P);
    %    P=A;
    % end
    % [a(1,i),aa(1,i)]
    % hold on
    % plot(aa(1,1),aa(2,1),'wx',aa(1,:),aa(2,:))
    % Y_fanal=zeros(60,6);
    % for i=1:30
    % [Y,Pf,Af] =net(6,[],P)
    % Y_fanal(i,:)=Y(1,:);
    % Y_fanal(i+1,:)=Y(2,:);
    % end
    % for i=1:6
    %    for j=1:2:30
    %    plot(Y_fanal(j,i),Y_fanal(j+1,i),'o-');
    %    hold on
    %    end
    % end
    View Code

     

  • 相关阅读:
    extjs 为组件动态添加插件
    springboot使用spring-cloud-starter-alibaba-sentinel导致响应变成xml格式
    js 将数据保存到本地
    iframe跨域安全
    nginx url自动301加斜杠
    EXTJS防止表单中回车触发提交
    servlet
    Struts1和Struts2的区别
    AWT和Swing的简记
    sleep()和wait()
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/9939972.html
Copyright © 2011-2022 走看看