Thanks for mentioning this.AlvaroBegue wrote:There are regularization methods to handle this type of situation. For instance, you could replace your error function E withtpetzke wrote:In my tests the values derived are often far away from intuitive values. I also repeated tuning runs that derived then very different parameter sets with almost equal strength.
So strange looking values are not so bad, however they might give you a hint about important and lesser important (maybe even redundant) parameters.
E' = E + some_constant * L1(parameters)
Here L1(parameters) means the sum of the absolute values of all the parameters in your evaluation function. (For this to make sense, you need to somehow normalize things in advance; so if your parameters are simply coefficients in front of features, you should normalize your features so they have mean 0 and variance 1, or something like that.)
These L1-regularization methods seem to be very much in fashion these days. They have some very neat properties. If you have two features that are nearly identical, so only the sum of its coefficients is fixed, a little bit of L1 regularization will make the coefficients be about equal. If you have a feature that is purely noise, it might very well get a coefficient of exactly 0, which is something that wouldn't normally happen with least-squares regression. You might be able to identify parts of your code that don't even need to run!
Has anyone tried anything like that for tuning evaluation functions in chess?
I was unaware of regularization and it does indeed seem appropriate to the tuning of evaluation features or even selection of evaluation features.