我想用神经网络来学习骑在赛道上的汽车。 Imo学习网络的最佳方法是使用遗传算法,但在每个教程中,基因型由0和1(二进制值)编码。在我的净重是双重值,所以基因型看起来像3,12; 9,12; 0,83,-0,73等。
所以我的问题是:
我应该将每个权重编码为二进制值吗?我想我可以使用双值,但我不知道我怎么能改变这个?二进制值I可以从0到1和从1到0反转但是加倍?
答案 0 :(得分:0)
从理论的角度来看,是的,你可以。 无论如何,条件是你正确定义连续值的所有操作(如交叉,变异等)。
答案是肯定的,如果您的软件实现允许您这样做。
让我画一个简化的例子。
如果算法旨在确定正弦函数的最佳拟合,并且您可以使用形状[triangle, square, half-circle]
,y
幅度和x
位移,则可以使用let&#的染色体39; s说 N 形状要加在一起。
在这种情况下,x
和y
必须同时加倍:您可以改变它们,例如通过在感知范围内添加随机数,并通过与合作伙伴交换x
或y
来执行交叉,甚至收集完整的元组(shape
- x
- { {1}})。
我会说,口头禅是为了让事情保持连贯,并让个人以 sensate 的方式为你的模型变异(糟糕选择将是{{1}与y
)。