And I've made a lot of good progress with my tuner, implementing many suggestions and ideas from folks around here, but I'm still running into a few issues though:
First, with my current hardware (Google Pixelbook, 8GB ram, i5 processor), I can only load in about 200k-100k positions for tuning. So part of the reason I suspect my tuning isn't producing very good results right now is that its overfitting. I've tried to compensate for this by shuffling the training data frequently during the tuning, but can this number of positions be made to work to any effective degree?
Second, the tuning process itself is producing weird values, as I mentioned above. For instance, I'm currently trying to tune some mobility tables and values being produced don't make much sense intuitively after running a few minutes:
Code: Select all
Iteration 13 complete. Best error=0.122326
Knight MG mobility bonuses
[-54 -23 -22 -31 -15 -24 -38 -52 -61]
Bishop MG mobility bonuses
[34 -55 -29 -3 18 4 -5 -19 -8 -27 -41 -60 -59 22]
Rook MG mobility bonuses
[-7 59 -40 -29 -28 -22 -31 -20 -19 -23 -37 -1 -45 -44 -58]
Queen MG mobility bonuses
[-4 -8 -12 54 -75 -9 7 8 24 20 11 7 -7 -26 10 -24 -48 -37 -6 -60 11 27 73 69 -30 66 42 73 24]
Knight EG mobility bonuses
[-19 -23 -12 19 10 6 -13 3 -61]
Bishop EG mobility bonuses
[24 -70 -14 -43 -37 -1 5 -4 -13 -12 9 -20 1 -28]
Rook EG mobility bonuses
[-7 39 -70 -59 -8 -32 19 15 16 12 18 4 20 -14 -3]
Queen EG mobility bonuses
[-4 -13 -12 -11 -55 6 -68 -22 -71 -70 -14 -33 33 59 0 36 62 23 -6 50 1 12 -17 -6 75 76 -28 78 24]
I'm also implementing mobility evaluation by counting the number of pseudo-legal moves a particular piece has, excluding squares controlled by enemy pawns. And I've also tried starting the weights from intuitive values, and from 0s, and both approaches work quite poorly.
Lastly, part of the reason I'm focusing on improving evaluation is that right now, adding various pruning methods to Blunder doesn't contribute much Elo and my working theory behind why this is happening is because the evaluation isn't good enough right now to where it can really capitalize on the extra nodes it can search. Does this sound about right?