神经网络算法与进化算是什么关系?
。
应该没有太大的关系吧,我对遗传算法了解一点,遗传算法主要用来优化神经网络第一次运行时所用的连接权值,因为随机的连接权值往往不能对针对的问题有比较好的收敛效果(Matlab神经网络工具箱自动生成的初始权值其实已经比较好了)。
进化算法的基本步骤
进化计算是基于自然选择和自然遗传等生物进化机制的一种搜索算法常见的神经网络结构。
与普通的搜索方法一样,进化计算也是一种迭代算法,不同的是进化计算在最优解的搜索过程中,一般是从原问题的一组解出发改进到另一组较好的解,再从这组改进的解出发进一步改进。
而且在进化问题中,要求当原问题的优化模型建立后,还必须对原问题的解进行编码。进化计算在搜索过程中利用结构化和随机性的信息,使最满足目标的决策获得最大的生存可能,是一种概率型的算法。
一般来说,进化计算的求解包括以下几个步骤:给定一组初始解;评价当前这组解的性能;从当前这组解中选择一定数量的解作为迭代后的解的基础;再对其进行操作,得到迭代后的解;若这些解满足要求则停止,否则将这些迭代得到的解作为当前解重新操作。
以遗传算法为例,其工作步骤可概括为:(1)对工作对象——字符串用二进制的0/1或其它进制字符编码。(2)根据字符串的长度L,随即产生L个字符组成初始个体。(3)计算适应度。
适应度是衡量个体优劣的标志,通常是所研究问题的目标函数。(4)通过复制,将优良个体插入下一代新群体中,体现“优胜劣汰”的原则。(5)交换字符,产生新个体。
交换点的位置是随机决定的(6)对某个字符进行补运算,将字符1变为0,或将0变为1,这是产生新个体的另一种方法,突变字符的位置也是随机决定的。
(7)遗传算法是一个反复迭代的过程,每次迭代期间,要执行适应度计算、复制、交换、突变等操作,直至满足终止条件。将其用形式化语言表达,则为:假设α∈I记为个体,I记为个体空间。
适应度函数记为Φ:I→R。
在第t代,群体P(t)={a1(t),a2(t),…,an(t)}经过复制r(reproduction)、交换c(crossover)及突变m(mutation)转换成下一代群体。
这里r、c、m均指宏算子,把旧群体变换为新群体。