《MATLAB 神经网络43个案例分析》:第10章 离散Hopfield神经网络的分类——高校科研能力评价

《MATLAB 神经网络43个案例分析》:第10章 离散Hopfield神经网络的分类——高校科研能力评价

1. 前言

《MATLAB 神经网络43个案例分析》是MATLAB技术论坛(www.matlabsky.com)策划,由王小川老师主导,2013年北京航空航天大学出版社出版的关于MATLAB为工具的一本MATLAB实例教学书籍,是在《MATLAB神经网络30个案例分析》的基础上修改、补充而成的,秉承着“理论讲解—案例分析—应用扩展”这一特色,帮助读者更加直观、生动地学习神经网络。

《MATLAB神经网络43个案例分析》共有43章,内容涵盖常见的神经网络(BP、RBF、SOM、Hopfield、Elman、LVQ、Kohonen、GRNN、NARX等)以及相关智能算法(SVM、决策树、随机森林、极限学习机等)。同时,部分章节也涉及了常见的优化算法(遗传算法、蚁群算法等)与神经网络的结合问题。此外,《MATLAB神经网络43个案例分析》还介绍了MATLAB R2012b中神经网络工具箱的新增功能与特性,如神经网络并行计算、定制神经网络、神经网络高效编程等。

近年来随着人工智能研究的兴起,神经网络这个相关方向也迎来了又一阵研究热潮,由于其在信号处理领域中的不俗表现,神经网络方法也在不断深入应用到语音和图像方向的各种应用当中,本文结合书中案例,对其进行仿真实现,也算是进行一次重新学习,希望可以温故知新,加强并提升自己对神经网络这一方法在各领域中应用的理解与实践。自己正好在多抓鱼上入手了这本书,下面开始进行仿真示例,主要以介绍各章节中源码应用示例为主,本文主要基于MATLAB2015b(32位)平台仿真实现,这是本书第十章离散Hopfield神经网络的分类实例,话不多说,开始!

2. MATLAB 仿真示例

打开MATLAB,点击“主页”,点击“打开”,找到示例文件
在这里插入图片描述

选中chapter10.m,点击“打开”

chapter10.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:离散Hopfield的分类——高校科研能力评价
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-06-09
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 清空环境变量
clear all
clc
tic
%% 导入数据
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:3
    for 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: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 = y{
    
    100};
toc

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:
在这里插入图片描述

3. 小结

Hopfield神经网络简称HNN(Hopfiled Neural Network),是在1982年由美国加州理工学院的J.Hopfield教授提出,它是一种单层反馈神经网络。Hopfield网络是一种循环的神经网络,从输出到输入均有反馈连接,每一个神经元跟所有其他神经元相互连接,又称为全互联网络。它保证了向局部极小值的收敛,但收敛到错误的局部极小值(local minimum),而非全局极小值(global minimum)的情况也可能发生。上一章是应用离散Hopfield神经网络对数字图像进行识别,对本章内容感兴趣或者想充分学习了解的,建议去研习书中第十章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

猜你喜欢

转载自blog.csdn.net/sinat_34897952/article/details/125195619
今日推荐