人工神经网络

来源:互联网 发布:大智慧股票软件mac版 编辑:程序博客网 时间:2024/04/29 12:57

            人工神经网络(Artificial Neural Network,ANN)通过对大量历史数据的计算来建立分类和预测模型。神经网络的学习就是通过迭代算法对权值逐步修改优化的过程。学习的目标是通过修改权值是训练样本集中所有样本都能被正确分类。

     神经网络由3个要素组成:拓扑结构、连接方式和学习规则。其中拓扑结构分为单层、两层或则三层,本文主要学习三层的。连接方式分为前馈神经网络、反馈神经网络以及层内有互连的神经网络,本文主要学习前馈神经网络。神经网络的学习分为离线学习和在线学习两类。归纳,建立和应用神经网络可以归结为三个步骤:网络结构的确定、关联权的确定和工作阶段。网络结构的确定主要包含网络的拓扑结构(含隐含层的层数,每层的单元个数,以及各层单元的连接关系)和每个单元激活函数的选取。关联权的确定包括计算各层连接权值和偏置值。工作阶段是指用确定好的神经网络解决实际分类问题。

  • 人工神经元
     人工神经元用于模拟生物神经元,人工神经元可以看作一个多输入、单输出的信息处理单元,它先对输入变量进行线性组合,然后对组合的结果做非线性变换。最简单的神经元如图所示:

其中,n个输入xi表示其他神经元的输出值,即当前神经网络的输入值。n个权值wi相当于突触的连接强度。f是一个非线性输出函数。y表示当前神经元的输出值。

工作过程为:

step 1、从各输入端接收输入信号xi。

step 2、根据连接权值wi,求出所有输入的加权和,即

step 3、对net做非线性变换,得到神经元的输出,即y=f(net)。

f称激活函数,常用的集中激活函数为线性函数、符号函数、对数函数、双曲正切函数、高斯函数。

  • 前馈神经网络分类(误差反后向传播(Back Propagation,BP)算法)
BP算法的学习过程包含两个基本过程,即工作信号正向传递子过程和误差信号反向传递子过程。

1)工作信号正向传递子过程

      前馈神经网络共分成三层,具有一个输入层和一个输出层,输入层和输出层之间只有一个隐藏层。每个层具有若干单元(神经元),每一层内的单元之间没有信息交流,前一层单元与后一层单元之间通过有向加权边相连。如图所示:


设输入层到隐藏层的权值为Vij,隐藏层到输出层的权值为Wij,输入层单元个数为n,隐藏层单元个数为m,输出层单元个数为l。并采用对数函数为激活函数。从输入信号到输出信号,神经网络内部的连接权值保持固定不变,每一层单元的状态只影响和它直接连接的后继层单元状态。

输入层的输入向量为X=(x1,x2,...,xn),隐藏层的输出向量为Y=(y1,y2,...,ym),并有:


同样,输出层输出向量O=(o1,o2,...,ol),并有:


2)误差信号反向传递子过程

误差信号从输出层开始反向传递到输入层。误差信号每向后传递一层,位于两层之间的连接权值和前一层的阈值都会被修正。

对于某个训练样本,实际输出与期望输出的误差,及误差信号定义为:


将上式一步一步扩展至隐藏层、输入层。为了使误差信号E最快地减少,采用梯度下降法,


(具体解法见图片,由于字体写的不怎么好,拍照也很模糊,大家见谅,凑合着看)


1 0
原创粉丝点击