离散Hopfield神经网络的分类——高校科研能力评价

Posted Allen_freem

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了离散Hopfield神经网络的分类——高校科研能力评价相关的知识,希望对你有一定的参考价值。

离散Hopfield网络

离散Hopfield网络是一种经典的神经网络模型,它的基本原理是利用离散化的神经元和离散化的权值矩阵来实现模式识别和模式恢复的功能。它最初由美国物理学家John Hopfield在1982年提出,是一种单层的全连接神经网络,被广泛应用于模式识别、优化问题、自组织学习等领域。

离散Hopfield网络的基本结构由n个离散化的神经元和它们之间的全连接权值矩阵组成。每个神经元都只能取两种值,通常为1和-1。权值矩阵中的每个元素表示两个神经元之间的连接强度,即它们对彼此的影响程度。离散Hopfield网络的学习规则是基于Hebbian学习规则的,即当两个神经元同时激活时,它们之间的连接强度会增强。

离散Hopfield网络的主要功能包括模式存储、模式识别和模式恢复。在模式存储阶段,网络会将训练集中的模式存储到权值矩阵中,使得每个模式成为网络的一个吸引子。在模式识别阶段,当网络接收到一个输入模式时,它会通过神经元之间的相互作用产生一个新的状态,并在权值矩阵中寻找最接近的吸引子,将输入模式恢复为最接近的训练模式。如果网络无法恢复出一个完整的模式,那么它将停留在局部极小值或者进入震荡状态。

总之,离散Hopfield网络是一种简单但强大的神经网络模型,它在模式识别和模式恢复方面具有很好的性能,但也存在一些限制和缺陷,如存储容量有限、容易陷入局部极小值等。

多层感知机所采用“分层型”神经网络的结构不同,Hopfield神经网络是基于“相互连接型”的、递归式的网络。

  • 学习的观点 来看,它是一个强有力的学习系统,系统结构简单,易于编程。

  • 系统的观点 来看,它是一个静态的非线性映射,通过简单的非线性处理单元的复合映射可获得复杂系统的非线性处理能力。

  • 计算的观点 来看,它并不是一强有力系统,缺乏丰富的 动力学 行为。

Hopfield网络的特点:

神经元可取二值 0/1 或-1/1,其中的任意神经元i与j 间的突触权值为 Wij ,且神经元之间的连接是对称的,即,Wij = Wji ;且神经元自身无连接,但每个神经元都与其他的神经元相连。

每个神经元都将其输出通过突触权值传递给其他的神经元,同时每个神经元又都接收来自其他神经元传来的信息,这样对于每个神经元来说,其输出信号经过其他神经元后又可能反馈给自己,所以Hopfield网络是一种反馈神经网络。

其他的博主讲的原理会比我详细很多,建议去看其他博主的原理讲解,然后再来看我的实际例子效果会更好。

代码详情

Chapter1

%% 离散Hopfield的分类——高校科研能力评价

%% 清空环境变量
clear all
clc

%% 导入数据
load class.mat

%% 目标向量
T = [class_1 class_2 class_3 class_4 class_5];

%% 创建网络
net = newhop(T);

%% 导入待分类样本
load sim.mat
A = [sim_1 sim_2 sim_3 sim_4 sim_5];

%% 网络仿真
Y = sim(net,25 20,,A);

%% 结果显示
Y1 = Y20(:,1:5)
Y2 = Y20(:,6:10)
Y3 = Y20(:,11:15)
Y4 = Y20(:,16:20)
Y5 = Y20(:,21:25)

%% 绘图
result = T;A1;Y20;
figure
for p = 1:3
    for k = 1:5 
        subplot(3,5,(p-1)*5+k)
        temp = resultp(:,(k-1)*5+1:k*5);
        [m,n] = size(temp);
        for i = 1:m
            for j = 1:n
                if temp(i,j) > 0
                   plot(j,m-i,'ko','MarkerFaceColor','k');
                else
                   plot(j,m-i,'ko');
                end
                hold on
            end
        end
        axis([0 6 0 12])
        axis off
        if p == 1
           title(['class' num2str(k)])
        elseif p == 2
           title(['pre-sim' num2str(k)])
        else
           title(['sim' num2str(k)])
        end
    end                
end

% 案例扩展(无法分辨情况)
noisy = [1 -1 -1 -1 -1;-1 -1 -1 1 -1;
        -1 1 -1 -1 -1;-1 1 -1 -1 -1;
        1 -1 -1 -1 -1;-1 -1 1 -1 -1;
        -1 -1 -1 1 -1;-1 -1 -1 -1 1;
        -1 1 -1 -1 -1;-1 -1 -1 1 -1;
        -1 -1 1 -1 -1];
y = sim(net,5 100,,noisy);
a = y100

Read me

文件说明:

1. chapter1.m为主程序,将该文件夹设置为MATLAB当前工作路径,运行即可。

2. class.mat为五个理想的等级评价指标编码矩阵,sim.mat为5所待分类高校的等级评价指标编码矩阵。

3. stdlib.m为利用MATLAB自带工具箱创建的一个离散型Hopfield网络例子,test.m为与之对应的神经网络工具箱函数拆解的程序(具体在配套的视频中有详细的讲解)。

4. 该程序在MATLAB2009a版本下测试通过,个别函数在低版本中不存在或者调用格式有所不同,参照对应版本中的帮助文档修改即可。

stdlib

%% 离散Hopfield的分类——高校科研能力评价

%% 清空环境变量
clear all
clc

%% 导入记忆模式
T = [-1 -1 1; 1 -1 1]';

%% 创建网络
net = newhop(T);

%% 导入待记忆模式
Ai = [-0.7; -0.6; 0.6];

%% 网络记忆
a = sim(net,1,5,,Ai);
a1

Test

%% 离散Hopfield的分类——高校科研能力评价

%% 清空环境变量
clear all
clc

%% 导入记忆模式
T = [-1 -1 1; 1 -1 1]';

%% 权值和阈值学习
[S,Q] = size(T);
Y = T(:,1:Q-1) - T(:,Q)*ones(1,Q-1);
[U,SS,V] = svd(Y);
K = rank(SS);

TP = zeros(S,S);
for k = 1:K
  TP = TP + U(:,k)*U(:,k)';
end

TM = zeros(S,S);
for k = K+1:S
  TM = TM + U(:,k)*U(:,k)';
end

tau = 10;
Ttau = TP - tau*TM;
Itau = T(:,Q) - Ttau*T(:,Q);

h = 0.15;
C1 = exp(h)-1;
C2 = -(exp(-tau*h) - 1)/tau;

w = expm(h*Ttau);
b = U * [  C1*eye(K)         zeros(K,S-K);
         zeros(S-K,K)  C2*eye(S-K)] * U' * Itau;
     
%% 导入待记忆的模式
Ai = [-0.7; -0.6; 0.6];
y0 = Ai;

%% 迭代计算
for i = 1:5
    for j = 1:size(y0,1)
        yi(j,:) = satlins(w(j,:)*y0 + b(j));
    end
    y0 = yi;
end
y1

总共有两组数据,如果有需要的可以私信联系。

DL:Hopfield 神经网络

 

 Hopfield 神经网络(DHNN)


在学习Hintonstack autoencoder算法(论文 Reducing the Dimensionality of Data with Neural Networks)之前需要了解什么是RBM,现在就我学习的情况,查找的资料(大部分来自博客、论文),简单介绍一下RBM(当然,这里面还有同组实验的同学提供的资料,借用一下。。。)


目录


RBM简介、网络结构


Hopfield 神经网络


RBM能量模型


RBM学习算法——Gibbs采样、变分方法、对比散度、模拟退火


RBM训练算法


RBM评估





1、简介


        1982年,J.Hopfield提出了可用作联想存储器的互连网络,这个网络称为Hopfield网络模型,也称Hopfield模型。Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接。


       

        反馈神经网络由于其输出端又反馈到其输入端;所以,Hopfield网络在输入的激励下,会产生不断的状态变化。当有输入之后,可以求取出Hopfield的输出,这个输出反馈到输入从而产生新的输出,这个反馈过程一直进行下去。如果Hopfield网络是一个能收敛的稳定网络,则这个反馈与迭代的计算过程所产生的变化越来越小,一旦到达了稳定平衡状态;那么Hopfield网络就会输出一个稳定的恒值。对于一个Hopfield网络来说,关键是在于确定它在稳定条件下的权系数。(无自反馈的权系数对称的Hopfield网络是稳定的网络


       Hopfield最早提出的网络是二值神经网络,神经元的输出只取1和0这两个值,所以,也叫离散Hopfield神经网络。在离散HopfieId网络中,所采用的神经元是二值神经元;故而,所输出的离散值1和0分别表示神经元处于激活和抑制状态。它保证了向局部极小的收敛,但收敛到错误的局部极小值(local minimum),而非全局极小(global minimum)的情况也可能发生。Hopfiled网络也提供了模拟人类记忆的模型。



2、Hopfield 神经网络



首先考虑由三个神经元组成的离散Hopfield神经网络,其结构如图1-13所示

在图中,第0层仅仅是作为网络的输入,它不是实际神经元,所以无计算功能;而第一层是实际神经元,故而执行对输人信息和权系数乘积求累加和,并由非线性函数f处理后产生输出信息。f是一个简单的阈值函效,如果神经元的输出信息大于阈值θ,那么,神经元的输出就取值为1;小于阈值θ,则神经元的输出就取值为θ







 

 


参考文档下载地址


 

以上是关于离散Hopfield神经网络的分类——高校科研能力评价的主要内容,如果未能解决你的问题,请参考以下文章

10.BP神经网络和Hopfield神经网络: 神经元与神经网络, BP在模式识别中的应用, 离散Hopfield神经网络, 连续Hopfield神经网络, Hopfield的应用

TSP问题基于hopfield神经网络求解TSP问题matlab

TSP问题基于hopfield神经网络求解TSP问题matlab

Hopfield神经网络

23基于java教师科研项目管理系统

离散型Hopdield神经网络联想记忆功能