that the algorithm is derived from simple linear multiple regression
Code: Select all
double pseudoCode()
{
// objective y' = aX1 + bX2 + cX3...
y = value(0) * coef(0)
y+= value(1) * coef(1)
y+= value(n) * coef(n)
y+= coef(n+1) // intercept
// Optional: To replace the linear model it was just put into
y = 1 / (1 + 1 * Exp(-y))
}
Code: Select all
double pseudoode()
{
// objective y' = aX1 + bX2 + cX3...
y = getEvaluationScore()
// y = 1 / (1 + 1 * Exp(-y))
y = sigmoid(y,400)
// return error
return pow(result-y,2)
}
The results are the same and it is able to solve more complex stuff without any math skills.
1.
One of my first questions is: Did i transformed the linear model into a logistic model by
putting the linear function into the exponential function as parameter ?
2.
Who has experience with regression analysis in general and with non-material values in this context ?
3.
Does it make sense to tune on 128000 games for example if you get practically the same result for 8000 games ?
a.
Especially if you do not tune all parameters in one run ( which is practise, because you will
introduce new parameters/or change conditions for them all along)
b.
The solver is sensitive to the existing evaluation, so you need to tune the parameters again anyway
because of orthogonality ?
c.
Re-tuning from an already good vector needs much less computation than from a "zero"-vector.
Isn't a runtime to derive a set of 1 to 64 values within seconds/minutes/hours not a quick approach ?
However, just some words for the results i showed in the first post.
Each test is a run for itself. The times showed are individual for each test.
The values are the material values p,n,b,r,q, because i just noted it on the fly somewhere.
Code: Select all
Finished: 16000 games / 686395 positions / 90 210 225 350 705 Time: 62.99s
Finished: 32000 games / 1415813 positions / 90 220 235 360 730 Time: 196.14s
Finished: 64000 games / 2845859 positions / 85 205 225 350 705 Time: 222.24s
and it catches the global optimum, considering RESOLUTION/STEPZIZE are able to jump out of the local optimum,
and the limitation 1 for the resolution.
Further, what was done by hand so far, picking some new values for a subset of the evaluation, can be done on a sound
base, instead of a wild try.
What do you think ?