人工神经网络基本概念介绍
人工神经网络基本概念介绍
人工神经网络是人工智能领域的重要组成部分,其灵感来源于生物神经元的工作原理。本文将从生物神经元的基本结构出发,逐步介绍人工神经元模型、学习向量量化(LVQ)神经网络以及BP网络建模等核心概念,帮助读者建立对神经网络的全面理解。
1.生物神经元与神经网络
大脑的一个重要成分是神经网络。神经网络由相互关联的神经元组成。下图是个神经元的结构简图。每个神经元由细胞体(包含细胞核)、树突、轴突(包含突触)组成。大多数神经元具有多个树突,每个树突都较短,分支较多,可扩大接受信息面积。每个神经元只有一个轴突,其末端分支多,终端末梢形成许多球形的突触小体,贴附于另一个神经元的树突,形成突触。树突的机能是接受其他神经元传来的神经冲动,并将冲动传到细胞体。轴突的机能主要是传导神经冲动,能将冲动经过突触传递到另一个神经元上。
一个神经元通过树突接受到一定的信息后,它对这些信息进行处理,再通过突触传送给其他神经元。神经元可分为“兴奋”性或“抑制”性两种。当一个神经元接受的兴奋信息累计超过某一值时,这个固定值称为阈值,这个神经元被激活并传递出信息给其他神经元。这种传递信息的神经元为“兴奋”性的。而一个神经元虽然接受到信息,但没有向外传递信息,便是“抑制”性的神经元。下图是生物神经元的基本功能模型。
单个神经元在突触地方彼此互相联系,从而形成一个巨大而又复杂的大脑信息处理网络。这些神经网络高度可变,因为神经元之间的突触可塑性较强,这种可塑性产生的变化也是学习的基础。
2.人工神经元与神经网络
2.1人工神经元MP模型
1943年,美国心理学家W.McCulloch 和数学家W.Pits提出了一个简单的神经元模型即 MP 模型。下图是简单的人工神经元MP模型。
为关联权值,表示神经元对第i个树突接受到信息的感知能力,其物理意义是输入信号的强度,若涉及多个神经元则可以理解为神经元之间的连接强度。神经元的权值
应该通过神经元对样本点反复的学习过程而确定,这样的学习过程在神经网络理论中成为训练。传输函数也称为激励函数,可以理解成对信号的非线性映射,一般的传输函数应为单值函数,使得神经元是可逆的。McCulloch-Pitts传输函数为
式中:
称为阈值
除了上述符号函数外,常用的传输函数是Sigmoid函数(亦称为S型函数),它们是双曲正切Sigmoid函数
,对数Sigmoid函数
,对应MATLAB命令分别是 tansig 和logsig。
人工神经网络是由若干个人工神经元相互连接组成的广泛并行互联的网络。因连接方式的不同,有“前馈神经网络”和“反馈神经网络”。前馈神经网络因为其权值的训练中采用误差反向传播计算方式,所以亦称其为反向传播(BackPropagation)神经网络,简称BP网。
2.2学习向量量化(LVQ)神经网络
学习向量量化(LVQ)神经网络是一种由芬兰学者Kohonen提出的有监督神经网络,用于求解分类问题。LVQ是在有监督状态下对竞争层进行训练的一种学习算法,其实质是一种根据样本模式的特性,进行“奖一惩”的迭代学习算法。
基本思想是:对于来自训练集中的样本向量,如果样本与最近神经元属同一类,则无需学习,否则将惩罚分类错误的神经元,奖励分类正确的神经元。竞争层将自动学习对输入向量进行分类,这种分类的结果仅仅依赖于输入向量之间的距离。如果两个输入向量之间特别相近,竞争层就把它们分在同一类。LVQ网络含竞争层和目标分类层。其拓扑图如图
3.BP 网络建模
(I)样本数据收集和整理分组。为监控训练(学习)过程使其不发生“过拟合”和评价建立的网络模型的性能和泛化能力,一般将数据随机分成训练样本、检验样本(10%以上)和测试样本(10%以上)三部分。
(2)数据的预处理。BP网的隐层一般采用Sigmoid传输函数,通常要求对输入数据进行预处理,保证输入数据的值为01。预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。为保证建立的模型具有一定的外推能力,最好使数据预处理后的值为0.20.8。输出变量可以是一个,也可以是多个。一般常将具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。
(3)隐层数。没有隐层的神经网络模型,实际上就是一个线性或非线性回归模型一般认为,增加隐层数可以降低网络误差,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。设计BP网络时应优先考虑三层BP网络(即有一个隐层)。一般地,靠增加隐层结点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。
(4)隐层结点数。在BP网络中,隐层结点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。确定隐层结点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层结点数。研究表明,隐层结点数不仅与输入/输出层的结点数有关,更与需解决的问题的复杂程度和传输函数的类型以及样本数据的特性等因素有关。确定隐层结点数时必须满足:输入层和隐层结点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于0,即建立的网络模型没有泛化能力,也没有任何使用价值;训练样本数必须多于网络模型的连接权数,一般为2倍~10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。
总之,若隐层结点数太少,网络可能根本不能训练或网络性能很差。合理隐层结点数应在综合考虑网络结构复杂程度和误差大小的情况下用结点删除法和扩张法确定。
(5)神经网络的训练。BP网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。设计一个合理的BP网络模型并通过向所给的有限个样本的训练来满意地通近样本所蕴含的规律,目前在很大程度上还需要依靠经验知识和设计者的经验。因此,通过训练样本的学习(训练)建立合理的BP神经网络模型的过程,是一个复杂而又十分繁琐和困难的过程。
(6)网络的初始连接权值。BP算法决定了误差函数一般存在多个局部极小点,不同的网络初始值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。因此,要求计算程序必须能够自由改变网络初始连接权值。由于Sigmoid转换数的特性,一般要求初始权值分布在-0.5~0.5比较有效。
(7)网络模型的性能和泛化能力。训练神经网络的首要任务和根本任务是确保训练好的网络模型对非训练样本具有好的泛化能力(推广性),即有效逼近样本蕴含的内在规律而不是看网络模型对训练样本的拟合能力。即使每个训练样本的误差都很小(可以为0),并不意味着建立的模型已逼近训练样本所蕴含的规律。因此,仅给出训练样本误差的大小而不给出非训练样本误差的大小是没有任何意义的。判断网络模型泛化能力的好坏要看测试样本的误差是否接近于训练样本和检验样本的误差。
注:本篇内容均为对《MATLAB建模与仿真》(周品 赵新芬 编著,国防工业出版社)摘录与个人归纳总结,如需要更加详细了解,可阅读原书“第16章 部分智能优化算法”部分。