当前位置:文档之家› 神经网络分类器及相关改进的实现与比较

神经网络分类器及相关改进的实现与比较


3. 基于退火的后向神经网络优化(SA-BP) 2. 后向神经网络(BP) 后向传播算法是训练神经网络的基本实现算 法。它主要分成传播和权重修改这两部分。其基 本算法如下: Step 1. 初始网络权重(通常采用随机化) Step 2. 如果训练集非空,从训练集中抽取一条记 录 e 进行训练。否则,训练结束。 Step 3. O = neural-net-output(network, e); Step 4. 对输出节点计算误差(T-O) Step 5. 计算从输出层到隐藏层的权重矩阵中权重 更改量。 Step 6. 计算从隐藏层到输入层的权重矩阵中权重 更改量 Step 7. 如果所得网络对训练集达到所要求的误分 类率,则终止训练,返回神经网络。否则转 入 Step 2。 对于上述算法,我们进行如下更改: 1) 在进行抽取记录 e 时,我们并没有按照训 练数据集的原有顺序进行抽取,而是采用 原始的 BP 算法有陷入局部最优的趋势,为 了跳出 BP 算法对局部最优解的选取,模拟退火 是一个可选的可用于搜索全局最优解的技术[7]。 模拟退火算法(Simulated Annealing,SA)最早 由 Kirkpatrick 等应用于组合优化领域,它是基于 蒙特卡洛迭代求解策略的一种随机寻优算法,其 出发点是基于物理中固体物质的退火过程与一般 组合优化问题之间的相似性。模拟退火算法从某 一较高初温出发,伴随温度参数的不断下降,结 合概率突跳特性在解空间中随机寻找目标函数的 全局最优解,即在局部最优解中能概率性地跳出 并最终趋于全局最优。它通过赋予搜索过程一种 时变且最终趋于零的概率突跳性,从而可有效避 免陷入局部极优并最终趋于全局最优的优化算 法。 在进行这一部分的优化时,我们参考了中国 科学技术大学张涛、席道瑛,李石灿的论文 [8] , 策略是将 BP 与模拟退火结合使用,交替进行, 当后向神经网络陷入局部最优无法继续提升准确 率时则切换到模拟退火的模式,如果认为程序在
4
数据挖掘课程报告
Step 1. 随机产生若干初始权重矩阵和权重偏移, 构成集合 S 并从原始训练集中随机抽取若干 记录组成新的较小训练集 T。令 N 表示 S 中 的个体数目。 Step 2. 对 S 中的每个个体,采用 T 来计算误分 类率。如果误分类率低于某一阈值,则 终 止,返回 S 中误分类率最低的个体作为 BP 的初始值。否则进入 Step 3。 Step 3. 对 S 中的个体任取两个个体进行杂交, 即随机交换矩阵中的部分权重。杂交操作共 进行 N 次。同时,对 S 中每个个体进行一定 概率的变异操作,即随机产生新的随机值赋 给 S 中的个体。 Step 4. 对繁衍后的集合 S 进行筛选,筛选后的 个体数目为 N。转入 Step 2。 Step 5. 若繁衍次数大于某一阈值,终止繁衍。返 回性能最优的个体作为初始值。 在获得最优个体后,我们将该个体作为后向 传播算法的初始种子对神经网络进行训练。
如下图所示,这上述的这种操作会使结果从 A 点变为 E 或 D 点,虽然暂时看上去结果变差了 但实际是朝着全局最优更近了一步。
E(n 1) E (n 1) E (n)
如果发现某次的误差值小于某一足够小的正数即
E (n 1)
则认为达到了局部最优点并转入退火模式。记录 此 时 的 误 差 值 以 及 权 重 矩 阵 : TempW=W, TempE=E。 退火的过程如下: Step 1. 初始化:给定一初始的温度 T0 ,迭代次 数为 0,TempW 为当前解; Step 2. 输入学习样本; Step 3. 对 权 值 进 行 随 机 修 正 , W 1 TempW+W ,修正后重新按照误 差函数计算新的误差值 E1。 Step 4. 如果 E1<TempE,那么接受这次修正。如 果 E1>TempE,按照 Boltzman 分布确定是否 接受修正:具体就是比较 P exp(E / kT ) 与一个随机数 f(0~1 之间)的大小,若 P>f, 接受这次修改(W=W1, TempW=W1),否则, 拒绝此次修改(W=TempW) Step 5. 对系统进行降温 T=rT (r 为 0~1 之间的降 温系数,也可以用其他的函数进行降温)。 Step 6. 跳出局部最小时,回到后向神经网络中继 续运行。如此交替进行直到找到全局最优。 该算法中可能跳出局部最优的关键是在第三 步中进行随机的修改权值以及即使修改后使结果 变差了也以一定的概率接受修改结果。
使网络收敛于某个部分最优解,而不是解空间里 的全局最优解。而模拟退火 [3] 算法的作用就是打 破神经网络收敛于局部最优解的稳定状态使其重 新收敛,直至收敛于全局最优解为止。 传统的后向传播算法的初始值是通过随机数 随机产生的。初始产生的种子对训练网络时的迭 代次数、收敛速度和收敛位置有很大程度上的影 响。一个好的初始种子能够使神经网络快速收敛 于最优解。本文采用了遗传算法 [4] 对网络初始种 子的选取过程进行了优化,使收敛过程更加迅 速。 粒子群算法 [5] 在在获得全局最优解上也有很 强的搜索能力。采用粒子群算法对后向传播算法
神经网络分类器及相关改进的实现与比较
1
神经网络分类器及相关改进的实现与比较
石贝,a 吴含宇,b 姚思佳,c 杨鑫晟 c *
a b c
中科院软件所基础软件中心, 北京, 中国, 100190 中科院软件所互联网实验室, 北京, 中国, 100190 中科院软件所软件工程中心, 北京, 中国, 100190
随机抽样的方法从训练集随机抽取数据对 网络进行训练。这大大减弱了训练集数据 顺序对神经网络的影响。 抽取训练集数据后,我们并没有完全采用 Min-Max 归一化对训练数据进行归一化。 在归一化过程中,我们尝试了多种归一化 方法,并取误分类率最低的归一化方法对 训练集进行归一化。
后向传播过程由于其算法特性具有以下缺点: 1) 训练过程和迭代过程缓慢。 2) 训练过程的收敛结果不能够得到保证。 3) 后向传播算法需要对输入数据进行归一 化,通常输入范围为 0.1 至 0.9 时会得到 较好的性能。 4) 训练过程容易收敛于局部最优解。 为了改善上述的第一条和第四条缺点,我们 提出了如下三个改进算法。
Pg ( pg1 , pg 2 ,..., pgD ) 。 对速度的定义和位置相似,第 i 个粒子的速度为 Vi (vi1 , vi 2 ,..., viD ) 。接下来定义每次迭代速度
过的最好位置定义为 和位置更新公式如下:
vid (t 1) w vid (t ) c1 rand () [ pid (t ) xid (t )] c2 rand () [ pgd (t ) xid (t )]
4. 基于遗传算法的后向神经网络优化(GA-BP) 遗传算法是计算数学中用于解决最优化的搜 索算法,是进化算法的一种。进化算法最初是借 鉴了进化生物学中的一些现象而发展起来的,这 些现象包括遗传、突变、自然选择以及杂交等。 对于一个最优化问题,一定数量的候选解的 抽象表示的种群可以向更好地解进化。进化从完 全随机个体的种群开始,之后一代一代发生。在 每一代中,整个种群的适应度被评价,从当前种 群中随机地选择多个个体(基于它们的适应 度),通过自然选择和突变产生新的生命种群, 该种群在算法的下一次迭代中成为当前种群。其 具体算法如下: Step 1. 选择初始生命种群 Step 2. 评价种群中的个体适应度 Step 3. 以比例原则选择产生下一个种群 Step 4. 通过交叉和变异改变该种群 Step 5. 如果所得种群满足条件则终止繁衍,否则 转入 Step2。 神经网络的训练过程中,初始值的选取至关 重要。一个好的初始值能够很好的减少神经网络 训练过程中的迭代次数,并决定了训练的收敛位 置。采用遗传算法对后向传播算法的改进策略便 是对随机产生的训练种子进行筛选,然后对其进 行筛选后的结果进行杂交和变异操作。具体算法 如下:
神经网络分类器及相关改进的实现与比较
3
退火的过程中跳出了局部最优或者温度降到最小 值以下则切换回后向神经网络模式。 退火的具体步骤如下: 我们首先定义一个误差函数 1 k 2 E (W ) ( D k j O j ) 2 D 为期望值,O 为实际输出值,k 为样本序号,j 为输出结点序号。 在后向神经网络的执行过程中,每隔一定次 数计算 E(W)值,与前一次的进行比较,定义误差 的改变为
摘要
神经网络分类器由于具有对噪音数据很高的承受能力从而越来越受到人们的重视。后向传播算法作为神经网络 的主要实现之一,具有简洁的优点,但同时也有收敛速度慢,收敛于局部最优解等缺点。本文实现了后向传播算 法,并对其使用标准数据集进行测试,统计它的分类性能。为了解决神经网络收敛速度慢和收敛于局部最优解的缺 点,本文采用了模拟退火,遗传算法和粒子群优化等高级算法对神经网络进行优化,并采用标准数据集对它们进行 测试。实验结果表明,这些高级算法的应用改进了神经网络的收敛速度,并使神经网络收敛于全局最优解。
ห้องสมุดไป่ตู้
c2 越大则全局最优值对粒子的移动方向影响越 大,粒子间交流的影响更大。 w 一般被定义为一
个递减函数,用于限制适应性粒子群优化算法的 迭代次数。除此之外,还可以限制位置和速度的 最大最小值来防止对无效解空间的搜索。 基于粒子群优化的后向神经网络 [9] 是一种结 合粒子群优化算法和后向神经网络的优化算法。 和遗传算法相似,粒子群优化算法拥有很强的全 局最优解的搜索能力,但是其在全局最优解附近 的搜索速度很慢。相反的,后向神经网络算法拥 有很强的局部最优解搜索能力并且收敛迅速,但 是它有较大的可能性无法获得全局最优解。基于 粒子群优化的后向神经网络算法通过粒子群对数 据进行预处理,在粒子群迭代终止后使用后向神 经网络算法搜索全局最优解,具有很快的收敛的 速度和很高的准确率。 算法步骤叙述如下: Step 1. 初始化粒子群的位置和速度,值在 [0, 1] 之间。 Step 2. 计算每个粒子当前位置的价值存入 P ib , 将粒子最优位置 P ib 初始化为当前位置。将例 子中最大价值的位置存入全局最优位置 Pg 。 Step 3. 假如到达最大迭代次数,跳至 Step 8,否 则进入 Step 4。
相关主题