《MATLAB 神经网络43个案例分析》:第22章 SOM神经网络的数据分类--柴油机故障诊断

《MATLAB 神经网络43个案例分析》:第22章 SOM神经网络的数据分类--柴油机故障诊断

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位)平台仿真实现,这是本书第二十二章SOM神经网络的数据分类实例,话不多说,开始!

2. MATLAB 仿真示例

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

chapter22.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:SOM神经网络的数据分类--柴油机故障诊断
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-06-18
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Matlab神经网络43个案例分析

% SOM神经网络的数据分类--柴油机故障诊断
% by 王小川(@王小川_matlab)
% http://www.matlabsky.com
% Email:sina363@163.com
% http://weibo.com/hgsz2003

%% 清空环境变量
clc
clear
tic
%% 录入输入数据
% 载入数据
load p;

%转置后符合神经网络的输入格式
P=P';

%% 网络建立和训练
% newsom建立SOM网络。minmax(P)取输入的最大最小值。竞争层为6*6=36个神经元
net=newsom(minmax(P),[6 6]);
plotsom(net.layers{
    
    1}.positions)
% 5次训练的步数
a=[10 30 50 100 200 500 1000];
% 随机初始化一个1*10向量。
yc=rands(7,8);
%% 进行训练
% 训练次数为10次
net.trainparam.epochs=a(1);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(1,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)

% 训练次数为30次
net.trainparam.epochs=a(2);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(2,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)

% 训练次数为50次
net.trainparam.epochs=a(3);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(3,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)


% 训练次数为100次
net.trainparam.epochs=a(4);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(4,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)


% 训练次数为200次
net.trainparam.epochs=a(5);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(5,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)

% 训练次数为500次
net.trainparam.epochs=a(6);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(6,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)

% 训练次数为1000次
net.trainparam.epochs=a(7);
% 训练网络和查看分类
net=train(net,P);
y=sim(net,P);
yc(7,:)=vec2ind(y);
plotsom(net.IW{
    
    1,1},net.layers{
    
    1}.distances)
yc
%% 网络作分类的预测
% 测试样本输入
t=[0.9512 1.0000 0.9458 -0.4215 0.4218 0.9511 0.9645 0.8941]';
% sim( )来做网络仿真
r=sim(net,t);
% 变换函数 将单值向量转变成下标向量。
rr=vec2ind(r)

%% 网络神经元分布情况
% 查看网络拓扑学结构
plotsomtop(net)
% 查看临近神经元直接的距离情况
plotsomnd(net)
% 查看每个神经元的分类情况
plotsomhits(net,P)
toc

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:

Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
Warning - PLOTSOM only shows first three dimensions.
yc =
     1     6     1     5     1    36     1     1
     1    24     1    36     1    36     7     2
     1    24     1    36    31    12    19    31
     1    31     2    30    16    36    21     6
     1    31     2    24     9    34    20     6
    36    31    24     1     9    13    22     6
    36    31    35     3    16    13    28     6
rr =
    36
时间已过 8.732863 秒。

在这里插入图片描述
在上图中的Plots栏,依次点击SOM Topolpgy,SOM Neighbor Connections,SOM Neighbor Distances,
SOM Input Planes,SOM Sample Hits,SOM Weight Positions,可依次查看到相应的画图信息。
在这里插入图片描述

3. 小结

SOM神经网络,没记错的话,记得在SVM中,SOM应该是重要的一环,主要就是要解决分类过程中的凸优化问题,所以了解SOM神经网络对学习理解SVM也是大有裨益的。对本章内容感兴趣或者想充分学习了解的,建议去研习书中第二十二章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

猜你喜欢

转载自blog.csdn.net/sinat_34897952/article/details/125288000