我受到这个问题的启发XOR Neural Network in Java 简而言之,训练XOR神经网络并且完成训练所需的迭代次数取决于七个参数(α,γ3_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包?
提前谢谢你, 斯泰潘
答案 0 :(得分:0)
您有一些选择 - 取决于管理error
参数的公式。