离散 Hopfield 神经网络的分类与matlab实现

2024-03-27 19:20

本文主要是介绍离散 Hopfield 神经网络的分类与matlab实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 案例背景

1.1离散 Hopfield 神经网络学习规则

        离散型 Hopfield神经网络的结构、工作方式,稳定性等问题在第9章中已经进行了详细的介绍,此处不再赘述。本节将详细介绍离散Hopfield神经网络权系数矩阵的设计方法。设计权系数矩阵的目的是:
        ①保证系统在异步工作时的稳定性,即它的权值是对称的;

        ②保证所有要求记忆的稳定平衡点都能收敛到自己;
        ③使伪稳定点的数目尽可能地少;
        ④使稳定点的吸引力尽可能地大。
        常用的设计方法有:外积法和正交化法。

1.2高校科研能力评价概述

        科研能力是高校的核心能力,其高低已成为衡量一所高校综合实力的重要指标。科研能力的高低不仅影响高校自身的发展,对高校所在地区的经济发展也有很大的影响。如何准确评价高校的科研能力已成为摆在政府、企业和高校面前的一个十分重要的问题。影响科研能力的因素众多,且互相交叉,互相渗透和互相影响,无法用确定的数学模型进行描述。目前,高校科研能力评价的方法很多,但普遍存在工作繁琐、时间滞后等缺点,且人为主观因素对评价结果有很大的影响。如何快速,准确地对众多高校的科研能力进行客观、公正地评价?这是一个目前亟待解决的问题。

1.3问题描述

        影响高校科研能力的因素很多,本书仅以较为重要的11个影响因素作为评价指标:科研队伍(X1)、科研基地(X2),科技学识及其相应的载体(图书情报资料)(X3)、科研经费(X4)、科研管理(X5),信息接收加工能力(X6)、学识积累与技术储备能力(X7)、科研技术创新能力(X8)、知识释放能力(X9)、自适应调节能力(X10)、科学决策能力(X11)。

        高校科研能力一般分为五个等级:很强(Ⅰ)、较强(Ⅱ)、一般(Ⅲ)、较差(Ⅳ)及很差(V)。某机构对20所高校的科研能力进行了调研和评价,试根据调研结果中较为重要的11个评价指标的数据,并结合离散Hopfield神经网络的联想记忆能力,建立离散 Hopfield高校科研能力评价模型。

2模型建立

2.1设计思路

        将若干个典型的分类等级所对应的评价指标设计为离散型 Hopfield神经网络的平衡点,Hopfield神经网络学习过程即为典型的分类等级的评价指标逐渐趋近于 Hopfield神经网络的平衡点的过程。学习完成后,Hopfield神经网络储存的平衡点即为各个分类等级所对应的评价指标。当有待分类的高校的评价指标输人时,Hopfield神经网络即利用其联想记忆的能力逐渐趋近于某个储存的平衡点,当状态不再改变时,此时平衡点所对应的便是待求的分类等级。

2.2设计步骤

        在设计思路的基础上,本案例的设计步骤主要包括如下5个步骤,如图10-1所示。

        1. 设计理想的等级评价指标
        本书所研究的 20 所高校的科研能力等 11 个评价指标之间的关系如表 10 -1所 列。

        将各个等级的样本对应的各评价指标的平均值作为各个等级的理想评价指标,即作为Hopfield神经网络的平衡点,如表10-2所列。

        2.理想的等级评价指标编码
        由于离散型Hopfield神经网络神经元的状态只有l和一l两种情况,所以将评价指标映射为神经元的状态时,需要将其进行编码。编码规则为:当大于或等于某个等级的指标值时,对应的神经元状态设为“1”,否则设为“一1”。理想的5个等级评价指标编码如图10-2所示.其中●表示神经元状态为“1”,即大于或等于对应等级的理想评价指标值,反之则用O表示。

        3.待分类的等级评价指标编码
        5所待分类的高校等级评价指标如表10-3所列,根据上述的编码规则得到对应的编码,如图10-3所示。

         4.创建网络
        设计好理想的5个等级评价指标及编码后,即可利用MATLAB自带的神经网络工具箱函数创建离散型 Hopfield神经网络。
        5.仿真、分析
        网络创建完毕后,将待分类的5所高校等级评价指标的编码作为Hopfield神经网络的输人,经过一定次数的学习,便可以得到仿真结果。将仿真结果与真实的等级进行比较,可以对该模型进行合理的评价。

3 MATLAB 实现

        利用MATLAB神经网络工具箱提供的函数,将设计步骤在MATLAB环境下实现。

%% 离散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 = Y{20}(:,1:5)
Y2 = Y{20}(:,6:10)
Y3 = Y{20}(:,11:15)
Y4 = Y{20}(:,16:20)
Y5 = Y{20}(:,21:25)%% 绘图
result = {T;A{1};Y{20}};
figure
for p = 1:3for k = 1:5 subplot(3,5,(p-1)*5+k)temp = result{p}(:,(k-1)*5+1:k*5);[m,n] = size(temp);for i = 1:mfor j = 1:nif temp(i,j) > 0plot(j,m-i,'ko','MarkerFaceColor','k');elseplot(j,m-i,'ko');endhold onendendaxis([0 6 0 12])axis offif p == 1title(['class' num2str(k)])elseif p == 2title(['pre-sim' num2str(k)])elsetitle(['sim' num2str(k)])endend                
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 = y{100}

        仿真结果如图10-4所示。其中,第一行与图10-2相对应,表示5个理想的等级评价指标编码;第二行与图10-3相对应,表示5所待分类的高校等级评价指标编码;第三行为设计的 Hopfield神经网络分类的结果。从图中可以清晰地看出,设计的Hopfield网络可以有效地进行分类,从而可以对高校的科研能力进行客观公正地评价。

4案例扩展

        值得注意的是,本书中所设计的离散型 Hopfield神经网络并非适用于任何场合。当某所高校的优势与劣势并存且相当明显(即一些影响因素得分很高,一些影响因素得分很低)时,Hopfield神经网络将得不到确切的分类。:

% 案例扩展(无法分辨情况)
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 = y{100}

        如图10-5所示,从仿真结果中可以看出,其不属于五种典型等级类别即意味着所设计的Hopfield神经网络寻找不到与之最为接近的平衡点,因此无法将其正确分类。在这一点上,和专家打分法的结果是一致的。

5.完整代码

https://download.csdn.net/download/weixin_44209907/88162199

这篇关于离散 Hopfield 神经网络的分类与matlab实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/853123

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too