资源描述
神经网络概述神经网络概述 人的大脑约由人的大脑约由 个神经细胞个神经细胞(也称神经元)组也称神经元)组成,细胞之间通过树突和轴突互相连接,构成成,细胞之间通过树突和轴突互相连接,构成纵横交错的网络结构。神经细胞通过突触互相纵横交错的网络结构。神经细胞通过突触互相交换信息,树突用来接受神经冲动,轴突分化交换信息,树突用来接受神经冲动,轴突分化出的神经末梢则可传出神经冲动。由于输出端出的神经末梢则可传出神经冲动。由于输出端只有两个状态:兴奋态与抑制态。因此,一个只有两个状态:兴奋态与抑制态。因此,一个神经元就是一个简单的系统,或者说是一个逻神经元就是一个简单的系统,或者说是一个逻辑元件。下图表示它的数学模型,这里辑元件。下图表示它的数学模型,这里 是输入,是输入,是输出,是输出,是神经元内部状态。特别是神经元内部状态。特别要说明的是,每个神经元都有一个特殊的参数要说明的是,每个神经元都有一个特殊的参数1010nxxx,21yu神经网络概述神经网络概述 称为阈值,它是输出的一个临界值,直接影响称为阈值,它是输出的一个临界值,直接影响神经元的内部状态。神经元的内部状态。u状态:u状态:1x输入:2xnxy输出:神经元的数学模型人们的记忆和智能并不是储存在单个脑细人们的记忆和智能并不是储存在单个脑细胞中,而是储存在脑细胞之间互相连接的胞中,而是储存在脑细胞之间互相连接的网络之中,这称为分布式存储方式。这样网络之中,这称为分布式存储方式。这样一种一种“分布方式分布方式”并不因单个脑细胞的死并不因单个脑细胞的死亡而消失。人们通过亡而消失。人们通过学习学习可以不断地改变可以不断地改变脑细胞之间的连接方式,使这个网络的功脑细胞之间的连接方式,使这个网络的功能不断提高。模仿神经细胞的结构,人们能不断提高。模仿神经细胞的结构,人们设计了种种人工神经网络,如感知器、设计了种种人工神经网络,如感知器、BPBP网络、自组织网络等。网络、自组织网络等。神经网络概述神经网络概述神经网络概述神经网络概述人工神经网络的基本工作原理是:对于每个神经人工神经网络的基本工作原理是:对于每个神经元,假设它有元,假设它有 个输入,输入值为个输入,输入值为 那么,它的输出值就是那么,它的输出值就是 ,这里,这里,是等待确定的权重系数,简称权值。是等待确定的权重系数,简称权值。是一个是一个函数,它有几种典型选法。一种常用的函数是函数,它有几种典型选法。一种常用的函数是SigmoidSigmoid函数。函数。神经元网络工作的全部秘密就在于它的权重值,神经元网络工作的全部秘密就在于它的权重值,nnxxx,21niiixfy1if神经网络概述神经网络概述 选择不同的权重值,神经元网络就会有不同的选择不同的权重值,神经元网络就会有不同的输入输入-输出关系。输出关系。神经元网络的具体工作原理:我们将样本数据神经元网络的具体工作原理:我们将样本数据的输入值输进神经元网络,就得到一组输出值。的输入值输进神经元网络,就得到一组输出值。这组输出值当然不是我们的理想输出值。于是,这组输出值当然不是我们的理想输出值。于是,我们就根据实际输出与理想输出的差来修正权我们就根据实际输出与理想输出的差来修正权值,以缩小这种差别。这样反复训练多次,最值,以缩小这种差别。这样反复训练多次,最后,使实际输出与理想输出趋于一致。这样,后,使实际输出与理想输出趋于一致。这样,神经元网络就可以用来代替我们所需要的模型神经元网络就可以用来代替我们所需要的模型了。了。BPBP神经网络模型与学习算法神经网络模型与学习算法BPBP神经网络概述神经网络概述pRumelhartRumelhart,McClellandMcClelland于于19851985年提出了年提出了BPBP网络的误差反网络的误差反向后传向后传BP(Back Propagation)BP(Back Propagation)学习算法学习算法pBPBP算法基本原理算法基本原理利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。J.McClelland David Rumelhart BPBP神经网络模型神经网络模型p三层三层BPBP网络网络1x2x1Nx1y2y2Ny1z2z3Nz123N1T2Tihwhjw-隐含层输出层输入层3NT BP BP神经网络模型神经网络模型p激活函数激活函数必须处处可导一般都使用一般都使用S S型函数型函数 p使用使用S S型激活函数时型激活函数时BPBP网络输入与输出关网络输入与输出关系系输入输出1122.nnnetx wx wx w1f()1enetynet BP BP神经网络模型神经网络模型输出的导数211f()(1)1e(1e)-netnetnetyy根据根据S S型激活函数的图形可知型激活函数的图形可知,对神经网络进行训练,应该将对神经网络进行训练,应该将netnet的值尽的值尽量控制在收敛比较快的范围内量控制在收敛比较快的范围内 BP BP网络的标准学习算法网络的标准学习算法p学习的过程:学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。p学习的本质:学习的本质:对各连接权值的动态调整p学习规则:学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。BP BP网络的标准学习算法网络的标准学习算法-算法思想算法思想p学习的类型:有导师学习学习的类型:有导师学习p核心思想:核心思想:将输出误差以某种形式通过隐层向输入层逐层反传p学习的过程:学习的过程:信号的正向传播 误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元各层单元的误单元各层单元的误差信号差信号修正各单元权修正各单元权值值BPBP网络的标准学习算法网络的标准学习算法-学习过程学习过程p正向传播:正向传播:输入样本输入层各隐层输出层p判断是否转入反向传播阶段:判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符p误差反传误差反传 误差以某种形式在各层表示修正各层单元的权值p网络输出的误差减少到可接受的程度网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止进行到预先设定的学习次数为止 BP BP网络的标准学习算法网络的标准学习算法 p网络结构网络结构输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元p变量定义变量定义输入向量;隐含层输入向量;隐含层输出向量;输出层输入向量;输出层输出向量;期望输出向量;12,nxxxx12,phihihihi12,pho hohoho12,qyiyiyiyi12,qyoyoyoyo12,qdddod BP BP网络的标准学习算法网络的标准学习算法输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数:误差函数:ihwf()howhb1,2,kmob211()()2qoooedkyo k BP BP网络的标准学习算法网络的标准学习算法p第一步,网络初始化第一步,网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。p第二步第二步,随机选取第随机选取第 个输入样本及对应个输入样本及对应期望输出期望输出 k12()(),(),()nkx kx kx kx12()(),(),()qkd kdkdkod BP BP网络的标准学习算法网络的标准学习算法p第三步,计算隐含层各神经元的输入和第三步,计算隐含层各神经元的输入和输出输出1()()1,2,nhihihihikw x kbhp()f()1,2,hhho khi khp1()()1,2,pohohohyi kw ho kboq()f()1,2,ooyo kyi koq BP BP网络的标准学习算法网络的标准学习算法p第四步,利用网络期望输出和实际输出,第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导计算误差函数对输出层的各神经元的偏导数数 。ohoohoeeyiwyiw()()()phohoohhhohow ho kbyi kho kww211()()2()()()()()f()()qooooooooooood kyo ked kyo k yo kyiyid kyo kyi kk()ok BP BP网络的标准学习算法网络的标准学习算法()()oohhoohoeeyik ho kwyiw 1()()()()()hihhihnihihhiiihiheehikwhikww x kbhikx kwwp第五步,利用隐含层到输出层的连接权第五步,利用隐含层到输出层的连接权值、输出层的值、输出层的 和隐含层的输出计算误和隐含层的输出计算误差函数对隐含层各神经元的偏导数差函数对隐含层各神经元的偏导数 。()hk()ok BP BP网络的标准学习算法网络的标准学习算法21212111()()()2()()()1()f()()2()()1()f()()2()()qoohohhhqoohohhqpohohohohhhd kyo keho khi kho khi kd kyi kho kho khi kd kw ho kbho kho khi k11()()()f()()()f()()qhooohoohqohohhoho kd kyo kyi kwhi kk whi kk BP BP网络的标准学习算法网络的标准学习算法p第六步,利用输出层各神经元的第六步,利用输出层各神经元的 和和隐含层各神经元的输出来修正连接权隐含层各神经元的输出来修正连接权值值 。1()()()()()hoohhoNNhohoohewkk ho kwwwk ho k()ok()howkBPBP网络的标准学习算法网络的标准学习算法p第七步,利用隐含层各神经元的第七步,利用隐含层各神经元的 和和输入层各神经元的输入修正连接权。输入层各神经元的输入修正连接权。()hk1()()()()()()()hihhiihhihNNihihhieehi kw kk x kwhi kwwwk x k BP BP网络的标准学习算法网络的标准学习算法p第八步,计算全局误差第八步,计算全局误差p第九步,判断网络误差是否满足要求。当误差第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学应的期望输出,返回到第三步,进入下一轮学习。习。2111()()2qmookoEdky km BP BP网络的标准学习算法网络的标准学习算法pBPBP算法直观解释算法直观解释情况一直观表达 当误差对权值的偏当误差对权值的偏导数大于零时,权值导数大于零时,权值调整量为负,实际输调整量为负,实际输出大于期望输出,出大于期望输出,权值向减少方向调整,权值向减少方向调整,使得实际输出与期望使得实际输出与期望输出的差减少。输出的差减少。whohoewe0,此时,此时who0 BP BP网络的标准学习算法网络的标准学习算法pBPBP算法直解释算法直解释情况二直观表达当误差对权值的偏导数当误差对权值的偏导数小于零时,权值调整量小于零时,权值调整量为正,实际输出少于期为正,实际输出少于期望输出,权值向增大方向望输出,权值向增大方向调整,使得实际输出与期调整,使得实际输出与期望输出的差减少。望输出的差减少。hoewe0who BP BP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现 pMATLABMATLAB中中BPBP神经网络的重要函数和基本神经网络的重要函数和基本功能功能 函函 数数 名名功功 能能newff()生成一个前馈生成一个前馈BP网络网络tansig()双曲正切双曲正切S型型(Tan-Sigmoid)传输函数传输函数logsig()对数对数S型型(Log-Sigmoid)传输函数传输函数traingd()梯度下降梯度下降BP训练函数训练函数BPBP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现pMATLABMATLAB中中BPBP神经网络的重要函数和基本功能神经网络的重要函数和基本功能newff()功能功能 建立一个前向建立一个前向BPBP网络网络格式格式 net=newff(PRnet=newff(PR,S1 S2.SN1S1 S2.SN1,TF1 TF1 TF2.TFN1TF2.TFN1,BTFBTF,BLFBLF,PF)PF)说明说明 netnet为创建的新为创建的新BPBP神经网络;神经网络;PRPR为网络输入为网络输入取向量取值范围的矩阵;取向量取值范围的矩阵;S1 S2SNlS1 S2SNl表示网络表示网络隐含层和输出层神经元的个数;隐含层和输出层神经元的个数;TFl TF2TFN1TFl TF2TFN1表示网络隐含层和输出层的传输函数,默认为表示网络隐含层和输出层的传输函数,默认为tansigtansig;BTFBTF表示网络的训练函数,默认为表示网络的训练函数,默认为trainlmtrainlm;BLFBLF表示网络的权值学习函数,默表示网络的权值学习函数,默认为认为learngdmlearngdm;PFPF表示性能数,默认为表示性能数,默认为msemse。BP BP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现pMATLABMATLAB中中BPBP神经网络的重要函数和基本功能神经网络的重要函数和基本功能tansig()功能功能 正切正切sigmoidsigmoid激活函数激活函数格式格式 a=tansig(n)a=tansig(n)说明说明 双曲正切双曲正切SigmoidSigmoid函数把神经元的输入范围从函数把神经元的输入范围从(-(-,+)+)映射到映射到(-1(-1,1)1)。它是可导函数,适用于。它是可导函数,适用于BPBP训练的神经元。训练的神经元。logsig()功能功能 对数对数SigmoidSigmoid激活函数激活函数格式格式 a=logsig(N)a=logsig(N)说明对数说明对数SigmoidSigmoid函数把神经元的输入范围从函数把神经元的输入范围从(-(-,+)+)映射映射到到(0(0,1)1)。它是可导函数,适用于。它是可导函数,适用于BPBP训练的神经元。训练的神经元。BP BP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现p例题:下表为某药品的销售情况,现构建一个如下的三层例题:下表为某药品的销售情况,现构建一个如下的三层BPBP神经神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为为5 5,隐含层的激活函数为,隐含层的激活函数为tansigtansig;输出层结点数为;输出层结点数为1 1个,输出层个,输出层的激活函数为的激活函数为logsiglogsig,并利用此网络对药品的销售量进行预测,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用个月的销售量,如用1 1、2 2、3 3月的销售量为输入预测第月的销售量为输入预测第4 4个月的销个月的销售量,用售量,用2 2、3 3、4 4月的销售量为输入预测第月的销售量为输入预测第5 5个月的销售量个月的销售量.如此反如此反复直至满足预测精度要求为止。复直至满足预测精度要求为止。月份月份123456销量销量205623952600229816341600月份月份789101112销量销量187314781900150020461556 BP BP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现%以每三个月的销售量经归一化处理后作为输入p P=0.5152P=0.51520.81730.81731.0000;1.0000;0.8173 0.81731.00001.00000.7308;0.7308;1.0000 1.00000.73080.73080.1390;0.1390;0.7308 0.73080.13900.13900.1087;0.1087;0.1390 0.13900.10870.10870.3520;0.3520;0.1087 0.10870.35200.35200.0000;0.0000;%以第四个月的销售量归一化处理后作为目标向量p T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;%创建一个BP神经网络,每一个输入向量的取值范围为0,1,隐含层有5个神经%元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数,即上面所描述的标准学习算法p net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);p net.trainParam.epochs=15000;net.trainParam.epochs=15000;p net.trainParam.goal=0.01;net.trainParam.goal=0.01;%设置学习速率为0.1p LP.lr=0.1;LP.lr=0.1;p net=train(net,P,T);net=train(net,P,T);BP BP神经网络学习算法的神经网络学习算法的MATLABMATLAB实现实现pBPBP网络应用于药品预测对比图网络应用于药品预测对比图p由对比图可以看出预测效果与实际存在一定误差,此误差可以通过由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度业进一步缩小增加运行步数和提高预设误差精度业进一步缩小BPBP神经网络的特点神经网络的特点p非线性映射能力非线性映射能力能学习和存贮大量输入能学习和存贮大量输入-输出模式映射关系,而无需事输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由多的样本模式对供网络进行学习训练,它便能完成由n n维输入空间到维输入空间到m m维输出空间的非线性映射。维输出空间的非线性映射。p泛化能力泛化能力当向网络输入训练时未曾见过的非样本数据时,网络也当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。为泛化能力。p容错能力容错能力输入样本中带有较大的误差甚至个别错误对网络的输入输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。输出规律影响很小。谢谢!谢谢!
展开阅读全文