- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
神经网络算法详解
神经网络算法详解
第0 节、引例
本文以Fisher 的Iris 数据集作为神经网络程序的测试数据集。Iris 数据集可以在
/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris 数据集:
有一批Iris 花,已知这批Iris 花可分为3 个品种,现需要对其进行分类。不同品种的Iris 花
的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris 花的
花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。
一种解决方法是用已有的数据训练一个神经网络用作分类器。
如果你只想用C#或Matlab 快速实现神经网络来解决你手头上的问题,或者已经了解神
经网络基本原理,请直接跳到第二节——神经网络实现。
第一节、神经网络基本原理
1. 人工神经元( Artificial Neuron )模型
人工神经元是神经网络的基本元素,其原理可以用下图表示:
图1. 人工神经元模型
图中x1~xn 是从其他神经元传来的输入信号,wij 表示表示从神经元j 到神经元i 的连
接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias ) 。则神经元i 的输出与输入的关系
表示为:
图中 yi 表示神经元i 的输出,函数f 称为激活函数( Activation Function )或转移函数
( Transfer Function ) ,net 称为净激活(net activation) 。若将阈值看成是神经元i 的一个输入
x0 的权重wi0 ,则上面的式子可以简化为:
若用X 表示输入向量,用W 表示权重向量,即:
X = [ x0 , x1 , x2 , , xn ]
则神经元的输出可以表示为向量相乘的形式:
若神经元的净激活net 为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net
为负,则称神经元处于抑制状态。
图1 中的这种“阈值加权和”的神经元模型称为M-P 模型( McCulloch-Pitts Model ) ,也
称为神经网络的一个处理单元( PE, Processing Element ) 。
2. 常用激活函数
激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。
(1) 线性函数( Liner Function )
(2) 斜面函数( Ramp Function )
(3) 阈值函数( Threshold Function )
以上3 个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。
(4) S 形函数( Sigmoid Function )
该函数的导函数:
(5) 双极S 形函数
该函数的导函数:
S 形函数与双极S 形函数的图像如下:
图3. S 形函数与双极S 形函数图像
双极S 形函数与S 形函数主要区别在于函数的值域,双极S 形函数值域是(-1,1),而S
形函数值域是(0,1)。
由于S 形函数与双极S 形函数都是可导的(导函数是连续函数) ,因此适合用在BP 神经
网络中。(BP 算法要求激活函数可导)
3. 神经网络模型
神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网
络结构主要可以分为下面3类:
(1) 前馈神经网络 ( Feedforward Neural Networks )
前馈网络也称前向网络。这种网络只在训练过程会有反馈信号,而在分类过程中数据只
能向前传送,直到到达输出层,层间没有向后的反馈信号,因此被称为前馈网络。感知机
( perceptron)与BP 神经网络就属于前馈网络。
图4 中是一个3 层的前馈神经网络,其中第一层是输入单元,第二层称为隐含层,第
三层称为输出层(输入单元不是神经元,因此图中有2 层神经元)。
图4. 前馈神经网络
对于一个3 层的前馈神经网络N ,若用X 表示网络的输入向量,W1~W3 表示网络各
层的连接权向量,F1~F3 表示神经网络3 层的激活函数。
那么神经网络的第一层神经元的输出为:
O
文档评论(0)