本文进行了神经网络原理简介,并对蜢虫分类问题进行了matlab仿真。
一、神经网络介绍
神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体作出的交互反应。
神经网络中最基本的成分是神经元(neuron)模型,即简单神经元。
(1)神经元:模拟人体结构,将数据输入神经元,中间通过激活函数f(x),即一组算法,输出结果。它是组成神经网络的最小单位。
神经元示意图如下图所示:

                  图1 神经元示意图

为输入向量的各个分量;为神经元各个突触的权值;系数1与为偏置;f为传递函数,通常为非线性函数;t为神经元输出。

(2)神经网络
由无数个(人工)神经元组成的神经元网络即为(人工)神经网络。
神经网络需要按照一定的规则进行学习,它的参数权值(以上图为例说明),即为学习成果。通过学习减少神经网络下次犯同样错误的可能性,达到这一目标后,网络才能开展工作。网络学习时,首先给网络的各连接权值赋予(0,1)区间内的随机值,网络将输入模式加权求和、与门限比较,再进行非线性运算。
神经元收到的总输入值与神经元的阈值比较,然后通过激活函数(activation function)处理以产生神经元的输出。一般激活函数为Sigmoid函数(逻辑回归中使用的),该函数连续、可导,具有很好的数学特性。

当激活函数输出值为正时,输出为“1”,为负则输出“0”。
以下将以下图为例介绍神经网络的运算过程。

图2 多层神经网络意图

上图是由一个输入层、两个隐藏层和一个输出层构成的神经网络。这种也叫多层前馈神经网络(multi-layer feedforward neural networks)。输入层神经元接收外界输入,不进行函数处理,隐层与输出层对信号进行加工,即包含功能神经元,最终输出。只要包含隐层,即可称为多层网络。
隐藏层可以找到数据内在特点,后续层可以在这些特点(而不是嘈杂庞大的原始数据)基础上进行操作,所以隐藏层越多模型效果越好。事实上,直到最近,机器学习技术都没有普遍直接用于原始数据输入,比如图像和音频。相反,机器学习被用于经过特征提取后的数据——也就是说,为了让学习更简单,机器学习被用在预处理的数据上,一些更加有用的特征,比如角度,形状早已被从中提取出来。

(3)神经网络学习方法
神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权,(connection weight)以及每个功能神经元的阈值,所以学习的就是阈值和连接权。譬如说,如果输出结果为“1”(结果正确),则增大连接权值;如果输出结果为“0”(结果错误),则将连接权值向着综合输入加权值减小的方向调整,减小犯同样错误的可能性。网络经过若干次类似的学习调整后,其输出的判断正确率会有明显的改善,达到了学习的目的。
今后当该网络再次遇到类似模式判断时,就能及时做出准确的判断和识别。一般说来,构成网络的神经元个数越多,则它能记忆和识别的模式也就越多,准确度也会越高。

二、BP神经网络(Back-Propagation Neural Networks)
BP神经网络思想如下图所示:

图3 BP神经网络思想
给定训练集 。这是一个拥有d个神经元、l个输出神经元、q个隐层神经元的多层前馈网络结构。其中输出层第j个神经元的阈值用表示,隐层第h个神经元阈值用表示,输入层第i个神经元与隐层第h个神经元间连接权为,隐层与输出层为。
如下图所示,隐层第h个神经元收到的输入为,输出层第j个神经元收到的输入为,其中为第h层神经元输出。

图4 BP网络算法及变量符号
对于训练集,假定神经网络输出为,。在网络上的均方误差。
图4的网络中有(d+l+1)q+l个参数需要确定。BP是一个迭代(iterate)学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。
BP算法基于梯度下降(gradient decent)策略,以目标的负梯度方向对参数进行调整,而Sigmoid函数的性质是。所以可以根据一系列计算得到,类似有,,。
学习率控制着算法每一轮迭代更新的步长,太大容易振荡找不到最小值,太小收敛速度过慢。BP算法的工作流程:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,迭代过程循环进行,直到达到条件停止。

三、神经网络matlab仿真实验
实验问题:
蠓虫分类问题可概括叙述如下:生物学家试图对两种蠓虫(Af 与 Apf)进行鉴别,依据的资料是触角和翅膀的长度,已经测得了 9 支 Af 和 6 支 Apf 的数据如下:
Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).
Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).
现在的问题是:
(i)根据如上资料,如何制定一种方法,正确地区分两类蠓虫。
(ii)对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的 3 个标本,用所得到的方法加以识别。
解答:如上的问题是有代表性的,它的特点是要求依据已知资料(9 支 Af 的数据和 6 支Apf 的数据)制定一种分类方法,类别是已经给定的(Af 或 Apf)。我们将 9 支Af 及 6 支 Apf 的数据集合称之为学习样本。而(1.24,1.80),(1.28,1.84)与(1.40,2.04)的 3 个标本为测试集。

(1)首先画出散点图

图5 蜢虫分类散点图

其可能具有一定的非线性特征,此处采用BP(后向传播算法)神经网络算法对其进行分类。

(2)将数据导入matlab;形成p矩阵,为训练集输入,设Af标记为,Apf标记为,则标签矩阵为goal=[ones(1,9),zeros(1,6);zeros(1,9),ones(1,6)]。
(3)设定相关参数:
训练网络采用对数S型函数logsig;
训练目标最小误差为0.000001,即goal=0.000001;
训练次数epoch=5000;
学习速率lr=0.05(为(0,1)之间的一个数);
显示频率:show=20,即每训练20次显示一次。
训练界面

图6 蜢虫分类训练界面

可见为两层神经网络,其中中止时仅迭代了18次,此时已经达到中止条件。


图7 实验结果摘要

最终分类结果:
将测试集代入可以得到矩阵则测试结果分别为Af、Af、Apf(分类结果)。
表1 分类结果表

四、总结
神经网络的优势在于可以处理非线性问题的分类,只要设定好了学习参数(如阈值函数、学习速率、目标误差、最大迭代次数等)即可开始训练,计算机可以自动搜索到一个网络模型,训练过程自动化、操作方便。但是由于其使用梯度下降法寻优,不可避免会陷入局部最小值,此时可以加入附加动量mc来进行优化。另外,如果网络规模大,计算量增加,训练时间、收敛时间变长,且学习速率固定,不能根据实际训练过程进行更新和改变。网络的学习和记忆也具有不稳定性,如果增加了学习样本,训练好的网络又需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。

神经网络及其matlab仿真相关推荐

  1. rbf神经网络自适应控制matlab仿真,机械系统RBF神经网络控制:设计、分析及Matlab仿真(英文)...

    机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文) 作者:刘金琨 著 出版时间:2013年 内容简介 <机械系统RBF神经网络控制:设计.分析及Matlab仿真(英文)>从M ...

  2. 汽轮机振动的日平均峰峰值的BP神经网络预测matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 BP神经网络是一种具有一个输入层,一个或多个隐含层和一个输出层的多层网络.隐含层和输出层上的每个神经 ...

  3. ann matlab,人工神经网络ann及其matlab仿真.ppt

    人工神经网络ann及其matlab仿真 人工神经网络 的研究方法及应用刘 长 安2004. 12. 31 引 言 利用机器模仿人类的智能是长期以来人们认识自然.改造自然和认识自身的理想. 研究ANN目 ...

  4. 基于BP神经网络的多因素房屋价格预测matlab仿真

    目录 一.理论基础 二.案例背景 1.问题描述 2.思路流程 三.部分MATLAB仿真 四.仿真结论分析 五.参考文献 一.理论基础 神经网络主要由处理单元.网络拓扑结构.训练规则组成.处理单元是神经 ...

  5. rbf神经网络matlab代码_【新书推荐】【2008.06】机器人控制系统的设计与MATLAB仿真(刘金琨)...

    本书系统地介绍了机器人控制的几种先进设计方法,是作者多年来从事机器人控制系统教学和科研工作的结晶,同时融入了国内外同行近年来所取得的最新成果. 全书以机器人为对象,共分10章,包括先进PID控制.神经 ...

  6. 基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真

    目录 一.理论基础 二.核心MATLAB程序 三.MATLAB仿真测试结果 一.理论基础 GRNN通常被用来进行函数逼近.它具有一个径向基隐含层和一个特殊的线性层.第一层和第二层的神经元数目都与输入的 ...

  7. 神经网络pid控制器MATLAB,基于BP神经网络的PID控制器及其MATLAB仿真.pdf

    基于BP神经网络的PID控制器及其MATLAB仿真.pdf 2009 NO.10 中国新技术新产品 China New Technologies and Products 高新技术 基于BP 神经网络 ...

  8. 双隐藏层BP网络的matlab仿真,求遗传算法优化含有两个隐含层的BP神经网络的matlab程序...

    怎样用遗传算法优化含有两个隐含层的BP神经网络的matlab程序啊,这个代码是错的,可不知道错在哪,求高手帮忙解答,非常感谢! FieldD=[repmat(PRECI,1,N);repmat([-0 ...

  9. 基于GA优化RBF神经网络(GA-RBF)数据预测的matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 遗传算法的基本运算过程如下:  (1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0 ...

最新文章

  1. 使用node.js进行API自动化回归测试
  2. System.Data.OracleClient.OracleConnection已过时
  3. 使用ycsb对mongodb做性能测试
  4. 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果(转)
  5. guava之preconditions
  6. 题注Oracle数据库的网络连接原理
  7. Java-Java I/O流解读之基于字符的I / O和字符流
  8. [html] 浏览器是怎么对HTML5的离线储存资源进行管理和加载的
  9. 文件流——Excel文件数据读写
  10. python 实例化方法_Python中__new__()方法的使用和实例化
  11. java邮箱格式_JavaMail入门:创建纯文本、HTML格式的邮件
  12. linux装逼指南-数字雨
  13. 简单地图的实现Android,android开发一:高德地图的简单制作
  14. C/C++语言IDE_开发工具
  15. 集成融云 即时通讯总结
  16. 疫情下的思考-危机与机遇
  17. 使用sysprep.exe遇到windows无法完成系统配置。若要尝试恢复配置,请重新启动计算机
  18. flutter 踩的那些坑 (一) Scheme not starting with alphabetic character
  19. MATLAB学习系列--绘制函数曲线
  20. MVG读书笔记——单应矩阵估计这件小事(二)

热门文章

  1. 1256 字符串复制
  2. OfficeMalScanner(宏病毒分析)软件分享,绝对免费!
  3. WE WANT U ┃中天微 国防科技大学2017届硕士专场校园宣讲会
  4. unity android 宏定义,Unity各平台内置宏定义
  5. 获得淘宝app商品详情原数据API
  6. Linux应用开发(十一)——I^2C接口
  7. vue input file 上传图片
  8. 虚拟主机、VPS、云服务器三者的区别
  9. kdd 2021 多网络挖掘的新前沿:近期发展和未来趋势
  10. python字符串equals方法_equals方法和 == 的使用