0
私はルアで神経進化系に取り組んでいます。ネットワークの世代を作るとき、私は様々な新しい子供のネットワークを作成するために親ネットワークを何度も変えます。コードは次のようになります:突然変異型ニューラルネットワークが期待通りに進まない
function MutateNetwork(net)
for i=2,#net.neurons do
for j=1,#net.neurons[i] do
--Mutate Bias
if (math.random()) > 0.30 then
mut = (math.random() - 0.5) * 2
net.neurons[i][j].bias = net.neurons[i][j].bias + mut
end
--Mutate Weight
for o=1,#net.neurons[i][j].connections do
if (math.random()) > 0.30 then
mut = (math.random() - 0.5) * 2
net.neurons[i][j].connections[o].weight = net.neurons[i][j].connections[o].weight + mut
end
end
end
end
return net
end
function CreateGeneration(parent)
local gen = {}
for i=1,childCount do
gen[i] = MutateNetwork(parent)
end
return gen
end
CreateGeneration()関数を実行した後、私は予想通り、新たなネットワークの配列を得るが、変異の全てが完全に同一です。私は間違って何をしていますか?