gpt4 book ai didi

java - Java中通过调整输入参数来最小化迭代次数

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:49 24 4
gpt4 key购买 nike

我受到这个问题的启发XOR Neural Network in Java简而言之,训练一个 XOR 神经网络,完成训练所需的迭代次数取决于七个参数(alpha、gamma3_min_cutoff、gamma3_max_cutoff、gamma4_min_cutoff、gamma4_max_cutoff、gamma4_min_cutoff、gamma4_max_cutoff)。我想通过调整这些参数来最大限度地减少训练所需的迭代次数。

所以,我想重写程序

private static double alpha=0.1, g3min=0.2, g3max=0.8; 
int iteration= 0;
loop {
do_something;
iteration++;
if (error < threshold){break}
}
System.out.println( "iterations: " + iteration)

for (double alpha = 0.01; alpha < 10; alpha+=0.01){
for (double g3min = 0.01; g3min < 0.4; g3min += 0.01){
//Add five more loops to optimize other parameters
int iteration = 1;
loop {
do_something;
iteration++;
if (error < threshold){break}
}
System.out.println( inputs );
//number of iterations, alpha, cutoffs,etc
//Close five more loops here
}
}

但是这种暴力破解方法效率不高。给定 7 个参数和每次计算数百次迭代,即使每个参数有 10 个点,也会转化为数十亿次操作。非线性拟合应该可以,但那些通常需要偏导数,而在本例中我不需要。

是否有用于此类优化的 Java 包?

预先感谢您,斯捷潘

最佳答案

您有一些替代方案 - 取决于控制错误参数的方程。

  1. 在参数空间中选择一个点并使用迭代过程走向最小值。本质上,为每个参数添加一个增量,然后选择将误差减少最多的一个 - rince - 重复。
  2. 选择每个参数并在其极限之间执行二分搜索以找到其最小值。仅当参数的影响是线性时才有效。
  3. 使用某种形式的 Operations-Research 来求解系统追踪最小值的技术。

关于java - Java中通过调整输入参数来最小化迭代次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com