1、模式识别 多层神经网络第六章第六章 多层神经网络多层神经网络模式识别 多层神经网络6.1多层感知器网络多层感知器网络(MLP,Multilayer Perceptron)l神经元模型神经元模型1,dtiiiyffw xw xf称为激活函数称为激活函数模式识别 多层神经网络解决异或问题的多层感知器解决异或问题的多层感知器 输入层输入层 隐含层隐含层 输出层输出层模式识别 多层神经网络多层感知器的分类原理多层感知器的分类原理l隐含层实现对输入空间的非线性映射,输出层实现线隐含层实现对输入空间的非线性映射,输出层实现线性分类;性分类;l非线性映射方式和线性判别函数可以同时学习。非线性映射方式和线性判
2、别函数可以同时学习。模式识别 多层神经网络激活函数激活函数阈值函数阈值函数 1,01,0 xf xx模式识别 多层神经网络激活函数激活函数线性函数线性函数 fxx模式识别 多层神经网络激活函数激活函数对数对数Sigmoid函数函数 11xfxe模式识别 多层神经网络激活函数激活函数双曲正切双曲正切Sigmoid函数函数 tanh()xxxxeefxxee模式识别 多层神经网络标准的三层感知器网络标准的三层感知器网络模式识别 多层神经网络多层感知器网络的设计多层感知器网络的设计l选定层数选定层数:通常采用三层网络,增加网络层数并不能提高网:通常采用三层网络,增加网络层数并不能提高网络的分类能力;
3、络的分类能力;l输入层输入层:输入层节点数为输入特征的维数:输入层节点数为输入特征的维数d,映射函数采用,映射函数采用线性函数;线性函数;l隐含层隐含层:隐含层节点数需要设定,一般来说,隐层节点数越:隐含层节点数需要设定,一般来说,隐层节点数越多,网络的分类能力越强,映射函数一般采用多,网络的分类能力越强,映射函数一般采用Sigmoid函数;函数;l输出层输出层:输出层节点数可以等于类别数:输出层节点数可以等于类别数c,也可以采用编码,也可以采用编码输出的方式,少于类别数输出的方式,少于类别数c,输出函数可以采用线性函数或,输出函数可以采用线性函数或Sigmoid函数。函数。模式识别 多层神经
4、网络三层网络的判别函数形式三层网络的判别函数形式 210011Hndkkjji ijkjigfw fw xwwx第第k个输出层神经元的输出,其中个输出层神经元的输出,其中d为特征为特征维数,维数,nH为隐层节点数。为隐层节点数。模式识别 多层神经网络6.2 MLP的训练的训练-误差反向传播算法误差反向传播算法(BP,Backpropagation algorithm)lBP算法的实质是一个均方误差最小算法算法的实质是一个均方误差最小算法(LMS)l符号定义:训练样本符号定义:训练样本x,期望输出,期望输出t=(t1,tc),网络实际输,网络实际输出出z=(z1,zc),隐层输出,隐层输出y=(
5、y1,ynH),第,第k个神经元的个神经元的净输出净输出netk。l目标函数:目标函数:2211122ciiiJtzwt-z 1Jmmmmwwwww迭代公式:迭代公式:模式识别 多层神经网络输出层输出层kkjkkjnetJJwnetw1,Hnkkiiinetw ykjkjnetywkkkkkkkzJJtzfnetnetznet kkkjkjkjJtzfnetyyw kkkktzfnet模式识别 多层神经网络隐含层隐含层jjjijjjiynetJJwynetwjjjyf netnet1djjm mimjijinetw xxww 模式识别 多层神经网络隐含层隐含层21112cckkkkkkkjjj
6、zJtztzyyy 11cckkkkkkkkjkkkjznettztzfnet wnety1ckkkkjjikjiJtzf net wf netxw1cjjkkjkfnetw,jijiJxw 模式识别 多层神经网络迭代公式迭代公式l输出层:输出层:l隐含层:隐含层:,kjkjJyw kkkktzf net,jijiJxw 1cjjkkjkfnetw模式识别 多层神经网络误差反向传播误差反向传播模式识别 多层神经网络BP算法算法批量修改批量修改1.begin initialize nH,w,r r0 02.2.do r do rr+1r+13.3.m m0;0;w wjiji0;0;w wkjk
7、j0 04.4.do m do mm+1m+15.5.x xm mselectselect pattern pattern6.6.w wjijiw wjiji+j jx xi i;w wkjkjw wkjkj+k ky yj j7.7.until m=n until m=n8.8.w wjiji w wjiji+w wjiji;w wkjkj w wkjkj+w wkjkj9.9.until|until|J(wJ(w)|)|10.10.return return w w11.11.endend模式识别 多层神经网络BP算法的一些实用技术算法的一些实用技术l激活函数的选择激活函数的选择:一般可以
8、选择双曲型的:一般可以选择双曲型的Sigmoid函数;函数;l目标值目标值:期望输出一般选择:期望输出一般选择(-1,+1)或或(0,1);l规格化规格化:训练样本每个特征一般要规格化为:训练样本每个特征一般要规格化为0均值和标准差;均值和标准差;l权值初始化权值初始化:期望每个神经元的:期望每个神经元的-1net+1,因此权值一般,因此权值一般初始化为初始化为 ;l学习率的选择学习率的选择:太大容易发散,太小则收敛较慢;:太大容易发散,太小则收敛较慢;l冲量项冲量项:有助于提高收敛速度。:有助于提高收敛速度。11dwd 111bpmmmm wwww模式识别 多层神经网络6.3 多层感知器网络
9、存在的问题多层感知器网络存在的问题1.BP算法的算法的收敛速度收敛速度一般来说比较慢;一般来说比较慢;模式识别 多层神经网络多层感知器网络存在的问题多层感知器网络存在的问题2.BP算法只能收敛于算法只能收敛于局部最优解局部最优解,不能保证收敛于全,不能保证收敛于全局最优解;局最优解;模式识别 多层神经网络多层感知器网络存在的问题多层感知器网络存在的问题3.当隐层元的数量足够多时,网络对训练样本的识别当隐层元的数量足够多时,网络对训练样本的识别率很高,但对测试样本的识别率有可能很差,即网率很高,但对测试样本的识别率有可能很差,即网络的络的推广能力推广能力有可能较差。有可能较差。模式识别 多层神经
10、网络多层感知器网络存在的问题多层感知器网络存在的问题模式识别 多层神经网络6.4 提高收敛速度的方法提高收敛速度的方法l一个比较直观的想法是通过增大学习率来提高收敛一个比较直观的想法是通过增大学习率来提高收敛速度,但这样有可能造成算法发散。速度,但这样有可能造成算法发散。模式识别 多层神经网络梯度下降法梯度下降法l目标函数的一阶泰勒级数展开:目标函数的一阶泰勒级数展开:1ktkkkkkJJJJw wwwwwwww ktkJw wwww0ktkkJJw wwwww目标函数增量:目标函数增量:使目标函数下降最大:使目标函数下降最大:模式识别 多层神经网络牛顿法牛顿法l目标函数的二阶泰勒级数展开:目
11、标函数的二阶泰勒级数展开:12kttkkkkJJ w wwwww H ww 0kkkkd JJd w wwwH www1kkJ w wwwHwH是是Hessian矩阵,求取目标函数增量的极大值:矩阵,求取目标函数增量的极大值:模式识别 多层神经网络Quickprop算法算法l分别对每个参数进行优化,分别对每个参数进行优化,权值增量由上一步的增量迭权值增量由上一步的增量迭代计算:代计算:11mmmdJdww mw mdJdJdwdw模式识别 多层神经网络共轭梯度法共轭梯度法l满足如下条件的两个方满足如下条件的两个方向向和和称为关于矩阵称为关于矩阵H互为共轭方向:互为共轭方向:0tHl对于二次优化
12、函数,权值对于二次优化函数,权值沿着任意一个初始方向移沿着任意一个初始方向移动到最小点,然后再沿着动到最小点,然后再沿着该方向关于该方向关于H的共轭方向的共轭方向移动到最小点即可达到全移动到最小点即可达到全局最小点。局最小点。模式识别 多层神经网络共轭梯度法共轭梯度法1.在第一个梯度方向上移动,寻找到这个方向上的局部极在第一个梯度方向上移动,寻找到这个方向上的局部极小点;小点;2.在共轭方向上计算第二个搜索方向:在共轭方向上计算第二个搜索方向:1mmJmmwww3.如算法未收敛,则继续在共轭方向上计算下一个搜如算法未收敛,则继续在共轭方向上计算下一个搜索方向。索方向。111tmtJmJmJmJ
13、mJm wwwww模式识别 多层神经网络Levenberg-Marquardt算法算法l定义:定义:v wt-z 1ttkkkkkk wJwJ wIJwv w111122221212nnNNNnvvvwwwvvvwwwvvvwwwwwwwwwJ wwww权值增量:权值增量:其中其中I为单位矩阵,为单位矩阵,k k为参数,为参数,J J为为JacobiJacobi矩阵:矩阵:模式识别 多层神经网络6.4 寻找全局最优点寻找全局最优点l全局最优点的搜索一般采用随机方法:全局最优点的搜索一般采用随机方法:1.模拟退火算法模拟退火算法2.模拟进化计算模拟进化计算 遗传算法遗传算法模式识别 多层神经网络
14、模拟退火思想模拟退火思想l模拟退火算法是由模拟退火算法是由Kirkpatrick于于1983年提出的,它年提出的,它的基本思想是将优化问题与统计热力学中的热平衡的基本思想是将优化问题与统计热力学中的热平衡问题进行类比;问题进行类比;l固体在降温退火过程中,处于能量状态固体在降温退火过程中,处于能量状态E的概率的概率P(E)服从服从Boltzmann分布:分布:expP EE kT其中其中T是固体的温度,是固体的温度,k为为Boltzmann常数常数模式识别 多层神经网络波尔兹曼分布波尔兹曼分布模式识别 多层神经网络模拟退火算法模拟退火算法(SA,Simulated Annealing)l模拟退
15、火算法可以用来优化能量函数模拟退火算法可以用来优化能量函数E(w),其中,其中w为参为参数;数;l首先设定一个较高的温度首先设定一个较高的温度T(1),随机初始化参数,随机初始化参数w1,计,计算能量算能量E(w1);l对参数给予一个随机扰动对参数给予一个随机扰动w,w2=w1+w,计算能,计算能量量E(w2);l如果如果E(w2)E(w1),则接受改变,否则按照如下概率接,则接受改变,否则按照如下概率接受改变:受改变:l逐渐降低温度逐渐降低温度T(k),直到,直到0为止。为止。2expPE wT模式识别 多层神经网络模拟退火算法应用于模拟退火算法应用于MLP的训练的训练1.初始化温度初始化温
16、度T(0),t0,随机初始化权值,随机初始化权值w0;2.应用应用BP算法搜索局部最优解算法搜索局部最优解w(t),计算局部最优解目标函数,计算局部最优解目标函数值值E(t);3.随机修正权值随机修正权值w(t)=w(t)+w,计算修正后的目标函数,计算修正后的目标函数值值E(t);4.若若E(t)E(t),则确认修改,则确认修改,w(t)=w(t),E(t)=E(t);5.否则依据概率否则依据概率P=exp(-E(t)/T(t)确认修改;确认修改;6.温度下降:温度下降:T(t)=T(0)/1+ln(t+100),如,如4,5步确认修改,步确认修改,转移到转移到2,否则转移到,否则转移到3,
17、直到温度下降到一定阈值为止;,直到温度下降到一定阈值为止;模式识别 多层神经网络模拟退火算法示例模拟退火算法示例Ew模式识别 多层神经网络模拟退火算法示例模拟退火算法示例模式识别 多层神经网络遗传算法遗传算法(GA,Genetic Algorithm)l遗传算法是由遗传算法是由Holland于于1975年提出的,它主要年提出的,它主要模拟自然界生物模拟自然界生物“适者生存,优胜劣汰适者生存,优胜劣汰”的进化的进化规则;规则;l遗传算法主要是应用于各种组合最优问题的求解,遗传算法主要是应用于各种组合最优问题的求解,经过一定的改进之后,也可以应用于经过一定的改进之后,也可以应用于MLP的权的权值学
18、习。值学习。模式识别 多层神经网络基本名词基本名词l染色体染色体:用一个二进制串表示;:用一个二进制串表示;l种群种群:多个染色体构成一个种群;:多个染色体构成一个种群;l适应度适应度:对每个染色体的评价,这是一个被优化的:对每个染色体的评价,这是一个被优化的函数;函数;l复制复制:上一代的染色体不发生任何改变,直接复制:上一代的染色体不发生任何改变,直接复制到下一代的种群中;到下一代的种群中;l交叉交叉:两条染色体混合,产生两条新的染色体,交:两条染色体混合,产生两条新的染色体,交叉发生的概率:叉发生的概率:Pco;l变异变异:一条染色体在某些位改变自身,:一条染色体在某些位改变自身,01或
19、或10,染色体在每一位上发生变异的概率:染色体在每一位上发生变异的概率:Pmut;模式识别 多层神经网络基本遗传算法基本遗传算法1.begin initialize Pco,Pmut,随机初始化,随机初始化L个染色体作为初个染色体作为初始种群;始种群;2.do 计算种群中每个染色体的适应度计算种群中每个染色体的适应度fi,i=1,L;3.按照适应度对种群中的染色体排序;按照适应度对种群中的染色体排序;4.从前向后选择染色体,按照概率从前向后选择染色体,按照概率Pco进行交叉,进行交叉,5.按照概率按照概率Pmut进行变异;进行变异;6.生成生成N个新的染色体,同原种群中的染色体构成个新的染色体
20、,同原种群中的染色体构成7.一个新的种群,淘汰掉适应度最差的一个新的种群,淘汰掉适应度最差的N个染色体;个染色体;7.until 达到一定的进化代数为止;达到一定的进化代数为止;8.return 适应度最高的染色体。适应度最高的染色体。模式识别 多层神经网络GA应用于应用于MLP权值学习权值学习l染色体表达:染色体表达:直接采用神经元的权值作直接采用神经元的权值作为基因片段,而不转化为为基因片段,而不转化为二进制串。二进制串。g=w11,w12,w13;w21,w22,w23;w31,w32,w33模式识别 多层神经网络遗传算子定义遗传算子定义l交叉:交叉:1.位置交叉:位置交叉:2.线性插值
21、交叉:线性插值交叉:,;,;,a b c d e f g h i,;,;,r s t u v w x y z,;,;,r s t d e f g h i,;,;,a b c u v w x y z,;,;,a b c d e f g h i,;,;,r s t u v w x y z22222,;,33333a rb sc td ui z22222,;,33333r as bt cu bz i模式识别 多层神经网络遗传算子定义遗传算子定义l变异:在染色体的每个位置上随机产生一个小的扰动,产变异:在染色体的每个位置上随机产生一个小的扰动,产生出新的染色体。生出新的染色体。,;,;,;,a b c d e f g h iaa bb cc ddii