协同进化神经网络的体系架构 ------铂链原创出品

in #blockchain7 years ago

铂链原创出品
第一节【模型建立的思想】
神经网络具有强大的学习能力和信息表示能力,因此被广泛地应用于模式识别、自动控制、图象处理等领域。但是目前神经网络方法面临三大问题:(1)难以确定神经网络的结构,即难以确定前向神经网络的隐含层数和各层的神经元节点数;(2)传统算法训练大规模神经网络学习时间太长,甚至无法完成;(3)传统的梯度法在有随机扰动下不能达到最优效果,常常收敛于局部最优解。
为了克服上述缺点,近年来出现了利用进化算法优化神经网络的方法。传统进化算法尚能解决问题(3),但它无法同步优化结构和参数,而且复杂的神经网络优化用传统遗传算法计算量更大。
对于目前已有的很多改进型的遗传算法,主要存在以下几个问题:(1)大部分的改进型算法没能同步优化神经网络的结构和权值,有的只优化神经网络的结构,有的只优化神经网络的权值,有的采用不同的算法思想孤立地优化神经网络的结构和权值。(2)很多进化算法与其它算法结合在一起来优化神经网络,取得了一定的成果,但仍然没有克服种群编码长度过长的缺点。(3)有些改进型的进化算法致力于扩张进化算法的研究,设计了许多的进化操作算子,在一定程度上改善了简单进化算法的性能,但是无法从根本上克服简单进化算法的理论缺陷。
神经网络结构和权值的同步优化是一个复杂优化问题,合作式协同进化算法是同步优化神经网络结构和权值的有效方法。
合作式协同进化算法是为了适应现实世界中广泛存在的相互适应模块的优化而提出的,对变量空间进行分割,对分割子空间分别编码构成子物种,各物种独立进化。在进行适应度评估的时候,单个种群中的个体仅是待优化系统的一个部分,对其单独评估是无法完成的,必须利用其他部分的信息,构成一个整体,才可以利用目标函数进行适应度评估。即在合作式协同进化算法中,种群之间是相互受益相互制约相互协同,共同进化的。
为解决一般遗传算法优化神经网络存在的缺点,我们提出合作式协同进化优化神经网络的方法。用合作式协同进化算法优化神经网络,与一般的遗传算法相比,有两个特点,一是同步优化神经网络的结构和权值;二是分别优化网络的每一部分。整个神经网络是各个子种群中个体的联合。
该算法首先将神经网络中待优化的变量分组,将一个复杂神经网络转化为多个相对简单的子网络。对分组后的多个子网络分别编码,形成多个独立的子种群,各子种群独立进化。合作式协同进化算法中各子种群内部独立实施进化操作,如进行交叉和变异等,只有在进行适应度评估的时候,子种群之间才有信息的交换。因为一个子种群内部的个体仅代表神经网络的一部分,无法直接对其进行适应度的评价,为了解决这个问题,待评估的个体只有和其他种群中的个体结合以构成一个完整网络,进而对其实施适应度评估,其中选择的其它种群中的个体称为代表个体。
第二节【协同进化神经网络的概念】
定义1(子种群):按照合作式协同进化的思想,前向神经网络采用一定的分割方法,把整个网络分割成若干部分,每一部分编码构成独立进化的种群。
定义2(子网络):子种群中的个体。
定义3(子网络的适应度):评价子网络优劣的标准。由于只有整个网络才具有真实的适应度,因此子网络的适应度实际上反映的是子网络所在的整个网络的适应度信息。
定义4(代表个体):评价某子网络的适应度时,用一定的方法选取的其它子种群中的个体。
第三节【种群分割】
合作式协同进化是基于种群分割进行的,下面给出神经网络优化的种群分割方法。在该算法中,对网络进行纵向分割,即把层与层之间的连接及其权值分离出来作为独立进化的种群,即子种群,如图1:

图1 前向神经网络分割
其中子种群X表示输入层和第一隐层之间的连接关系和权重系数,子种群Y表示第一隐层和第二隐层之间的连接关系和权重系数,子种群Z表示第二隐层和输出层之间的连接关系和权重系数。
第四节【神经网络的编码方法】
为了实现同时优化网络结构和权值的目的,给出新的编码方法,该方法对所有子种群均适用。基本思想是对神经网络的结构进行二值编码、连接权值系数进行实值编码,称为分层编码。二值码部分作为控制层,直接对应着网络拓扑结构,实值码部分作为构造层,构造层码串长度依赖于控制层的编码情况。
拓扑结构编码:对于一个有 个隐层的神经网络, 分别代表神经网络的各层, 为各层对应的节点数。 分别代表各层之间的连接关系矩阵。若某元素 ( ),表示第 层的第 个节点与第 层的第 个节点之间的连接存在;若为0则表示不存在。以图1为例,三个子网的结构编码矩阵依次为:
该矩阵等价于结构码串:111011
等价于结构码串:011001100
等价于结构码串:111
权值编码:对连接权值采用实数编码。若节点之间的连接为0,则权系数不赋值,即构造层码串长度等于控制层中1的个数,构造层编码长度由控制层决定,则随着控制层1的个数的变化,构造层长动态变化,就不必固定权值编码串长,可以有效地减小计算量。仍以图1为例,则相应权值部分编码如下:
0.2,0.4,-0.2,0.1,0.3
-0.3,0.3,-0.1,0.4
0.1,-0.1,0.2
第五节【适应度计算】
个体适应度计算公式如下:

其中 分别指第 个样本,神经网络第 个输出单元的期望值与实际值。 指神经网络的输出单元数。 可以指代一个适当小的正数,或者指代为与它相加的表达式同数量级的神经网络的结构因子。
第六节【代表个体选择】
由于合作式协同进化采用的是模块化算子,所处理的只是整体的部分信息,而进行个体适应度评估时需用到其它部分的信息,因此需要选择代表个体。在Poter的论文中给出了两种代表个体的选择方案,一是直接选择其它种群当前代最优个体;二是选择“最优+随机”方式。方案一计算量较小,在子种群相关性不大的问题中适用;方案二适用于子种群相关性较大的问题,由于各个子网络之间的输入输出是密切相关的,故本文选择方案二来选取代表个体。
具体步骤如下:
(1)初始化子种群, , , ( 代表第一子种群, 代表第二子种群, 代表第三子种群中的个体)。 , , , 代表种群规模。
(2) 子网络的适应度计算方法为:以子种群X为例,计算某个个体 (1≤i≤λ1)的适应度 时,代表个体随机选取 (1≤ ≤λ2)和 (1≤ ≤λ3),则 。
代每个子网络的适应度集为:

(3)子种群经过选择、交叉、变异等遗传操作之后,形成第 代子种群,该代子种群个体的适应度计算如下:以 为例, 。再随机选择 代其它子种群中的个体,获得另外一个适应度值,即 ,则 。

【参考文献】
【1】Kruse, Rudolf,; Borgelt, Christian; Klawonn, F.; Moewes, Christian; Steinbrecher, Matthias; Held,, Pascal (2013). Computational intelligence : a methodological introduction. Springer.ISBN 9781447150121. OCLC 83752417
【2】Potter,M.A.,&Jong,K.A.de.(2000). Cooperative Coevolution:an architecture for evolving coadaptedsubcomponents.Evolutionary Compution,8(1),1-29.
【3】García-Pedrajas, N., Hervás-Martínez, C. and Muñoz Pérez, J., COVNET: a cooperative coevolutionary model for evolving artificial neural networks. IEEE Transactions on Neural Networks.v14 i3.575-596.
【4】Glorieux E., Danielsson F., Svensson B., Lennartson B., "Optimisation of interacting production stations using a Constructive Cooperative Coevolutionary approach", 2014 IEEE International Conference on Automation Science and Engineering (CASE), pp.322-327,

Sort:  

Congratulations @julie2008! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Congratulations @julie2008! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemitBoard supports the SteemFest⁴ Travel Reimbursement Fund.
Vote for @Steemitboard as a witness to get one more award and increased upvotes!