Parameters 神经网络算法或类似的方法,为使用遗传算法的应用程序找到合适的参数,从而缩短运行时间

Parameters 神经网络算法或类似的方法,为使用遗传算法的应用程序找到合适的参数,从而缩短运行时间,parameters,neural-network,genetic-algorithm,Parameters,Neural Network,Genetic Algorithm,我用Java开发了一个使用遗传算法的应用程序。我的应用程序需要如下参数: How many genes will be populate at first? How many genes will be killed after crossover and mutation? What will be the mutation rate? 我可以测试如下内容: How long(milliseconds) does it take to find a solution. 如何找到好的值

我用Java开发了一个使用遗传算法的应用程序。我的应用程序需要如下参数:

 How many genes will be populate at first?
 How many genes will be killed after crossover and mutation?
 What will be the mutation rate?
我可以测试如下内容:

How long(milliseconds) does it take to find a solution.
如何找到好的值作为应用程序的参数。我的意思是,我将提供以下结果作为输入:

Genes to populate |  Genes to kill   |   Mutation rate   |   Result(milliseconds)
---------------------------------------------------------------------------------
50                        5                 16/1000                 146
50                        5                 16/1000                 208
50                        5                 16/1000                 1000
50                        5                 16/1000                 216
100                       5                 16/1000                 178
100                       5                 16/1000                 546
100                       5                 16/1000                 646
100                       5                 16/1000                 46
100                       5                 16/1000                 186
50                        10                16/1000                 346
50                        10                16/1000                 246
50                        10                16/1000                 546
50                        5                 34/1000                 746
50                        5                 34/1000                 186
50                        5                 34/1000                 196
50                        10                34/1000                 496
50                        10                34/1000                 23
50                        10                34/1000                 169
结果是随机的。我没有测试我的程序

在我运行该算法后(我想我会给出一个对我有利的结果时间,例如78毫秒),它会这样说:

You should use that parameters to get a result that takes 78 milliseconds:
Genes to populate |  Genes to kill   |   Mutation rate   
--------------------------------------------------------
34                        7                  24/1000        
PS1:还有一个问题,我应该采取什么策略来测试它。例如,只需更改一个参数,并对其进行多次测试,以及更改其他参数等(我试图给出我的示例值)或者测试一些值,找到一个参数,总是使用该参数,测试一个接一个变化的其他参数,找到另一个参数,使用这两个参数,一个接一个地变化另一个参数,继续这样做

PS2我也可以使用API或软件程序来查找它

编辑: 以下是我现在使用的变量及其值:

MAX_POPULATION_SIZE = 50;
HARD_WEIGHTS = {1,20,1,1,1,20,1};/* It means that I have 7 variables for this */
NUMBER_OF_GENES_TO_KILL = 5;
MUTATION_RATE = 100;
MAX_MUTATION_NUMBER = 1000;
/* Mutation rate is MUTATION_RATE/MAX_MUTATION_NUMBER */

我首先要得到一些参数组合的统计数据
(实际上,似乎可以尝试所有的组合——或者你有吗 更多参数?
那么直接的方法就是从 这些统计数据,如
{a,b,c}->{min,max,avg,dev}
(参数到度量值统计数据)
然后找到所需度量值对应的参数集

如果参数空间太大,则会更加复杂 完全枚举是不可能的。那你就得建造一个更小的 在收集足够的样本后,首先对参数空间进行近似 在任意点

更新:
它可以利用一些现有的工具。基本上是一样的 统计数据压缩器必须完成的任务。所以有可能做好准备 一个(二进制)表,包含N{metric;params}行以构建模型,然后是{metric;…} 部分行。然后,在处理所需的度量值之后,我们必须随机输入 数据传输到解码器(而不是有效的算术代码),它将根据累积的统计数据对“最可能”的参数组合进行解码。
最好的工具可能是paq8-
建议想法的一个简单演示是使用paq8压缩文本,然后 修改结尾附近的存档(引入错误)。从存档中解压的(损坏的)文件通常会在错误后包含生成的句子。
Paq8通常可以检测表中的行大小,但它的预测可能会在将来得到改进 在这种情况下,可以向表中添加带有特定表维度的.bmp标题