我用遗传算法研究了人工神经网络的基础知识.我发现你基本上可以做两件事:
>使用GA设计网络的结构(确定两个神经元之间是否应该存在边缘).我想我们假设我们只能使用一定数量的神经元到神经元的连接.
>使用GA计算最佳权重.
我还了解到GA只有在网络不规则的情况下才有意义.如果网络由层组成,则建议使用反向传播,因为它更快.
如果反向传播更快并且需要由层组成的网络,为什么我还要选择GA来学习或设计网络呢?
最佳答案
Use GA to design the structure of the net (determine whether there
should be an edge between two neurons or not).
一般来说,你似乎在谈论前馈网络,可能是MLP.
这些网络结构与神经元和层的数量以及神经元之间的连接有关.通常这些是完全连接的,因此层n中的每个神经元都连接到层n 1中的每一个.训练方法将通过训练一些权重到零或非常小的数量来挑选部分连通性.
根据数据复杂性以及您希望他们做什么来设置人工神经网络有一些规则.这些可以为您提供一个良好的起点.训练算法将神经元与神经元连接进行分类,但不会影响神经元或层的数量.
因此,GA可用于试验影响网络规模的参数.
Use GA to calculate optimal weights.
GA不保证这样做. “最佳权重”并不存在.经过训练的网络将在识别和错误之间取得平衡.你可以说“最佳权重”来获得目标错误.
对于前馈MLP,GA将比Back Propagation花费更多的处理时间.
我也经历过GA没有微调,所以你可能有一个使用GA而不是BP的噪音容忍度较低的网络.
这两种方法都不能保证精确到绝对最小值或甚至是可接受的最小值.两者都可能陷入局部最小值.如果发生这种情况,有一些技术可以重新启动GA和BP.但请记住,您的网络架构可能不允许它在您的数据上实现可接受的错误.权重中的内存/空间有限,而我的解决方案就不存在.因此,当您认为自己处于局部最小值时,您实际上可能处于绝对最小值但高于可接受的误差.
I also learned that GA makes sense only in case of irregular networks.
If the net consists of layers it’s suggested to use back propagation
as it’s faster.
你就在这里,而不仅仅是BP.大多数具有专用训练算法的网络架构比GA更适合这种情况.
但对于不规则网络,可能没有专门的训练算法.对于这些,GA允许您进行实验和训练.在尝试编写专用训练算法之前,测试体系结构以查看是否可以使用解决方案.
记得在BP发明之前,人工神经网络有十年的间隙,因为没有培训MLP的方法!
If back propagation is faster and requires a network made of layers,
why would I bother to choose GA for learning or designing the network?
如果您使用的是FF网络,BP通常是最好的学习选择.然而,学习只涉及操纵权重. GA可以用来设计结构,并修改其他东西,如偏压,挤压功能,….
需要注意的一点是,Back Propagation通过调整权重来训练单个网络. GA是具有固定权重的许多网络的群体,它发展了一种解决方案,该解决方案是具有固定权重的“天生”网络.没有实际的网络培训/学习.
而单个网络的初始参数;神经元数量,层数,偏差,初始权重,可能需要注意和实验. GA参数;种群大小,初始值,突变率,交叉,…都影响进化时间和可能或可能的解决方案的结果.