使用自编GA进行NN教学的问题

时间:2016-08-06 13:12:18

标签: matlab optimization neural-network artificial-intelligence genetic-algorithm

所以,首先 - 我要做的是编写一个或多或少的通用GA来教授单个/多层感知器。

我的理解是,要实现这一点,我已经正确地选择了#34; (优化)输入权重单元,层权重单元和偏置单元。 (如果我在这里错了,请纠正我)

到目前为止我的算法: 1)随机生成起始种群 2)通过计算平均标准误差来评估它 3)选择繁殖种群并通过交叉(跨越个体权重)和突变(突变步骤在几代人中衰退,使早期"搜索"更广泛,后来调整微妙)进行到下一代,导致一个新的人口,是前一个人口的两倍 4)以与2)中相同的方式评估新种群,然后剔除包的下半部分以将种群大小减少到初始大小 5)重复以上所有内容,直到达到满意的误差水平,或直到设定的循环次数通过

问题在于它永远达不到令人满意的水平,即使对计算量进行大量过度杀伤(130个人口规模,对于具有10个神经元的单层网络有200个以上的周期),并且卡在局部最小值(在至少那就是我认为正在发生的事情,因为结果在大约20-30代之后才停止变化。它肯定在某种程度上起作用,因为近似情节的形状"尝试"按照预期的结果,只是非常糟糕。下面的链接显示了尝试教导2层网络的结果,每个网络有5个神经元,遵循y = x ^ 2函数的曲线,给出1000个随机选择的样本,沿着曲线的2000个点。

http://puu.sh/qrN0z/e53e25a5be.png

有人可以给我任何关于如何解决这个问题的指示吗?

代码:http://pastebin.com/ay2nVmaB

0 个答案:

没有答案
相关问题