Joseph Heled wrote on 18 July 2006 13:27 > Ian Shaw wrote: > > > > If we could split the nets, I would try using fuzzy logic to smooth > > out the gaps at the edges. A position could be evaluated as > > being 60% > > prime, 35% holding, 5% race. The evaluations from those nets would > > then be combined proportionally to give an overall equity. Maybe > > Snowie already does this. > > Well, you first have to find a way to assess the percentages > (using fixed one does not buy you anything in my book. IMBW > (i may be wrong).
I totally agree. You can't use a fixed percentage. Accurately choosing a split is a tricky proposition in its own right. I don't intend to pursue it. > > Does anyone have any idea why those particular inputs were chosen, > > what they are intended to model, and how effective they > are? Some of > > them are obvious well commented, but others at the bottom > of the enum > > are undocumented. > > I spent considerable amount of time on this issue with only > limited success. some of them I inherited from Gary's 0.1 > version of gnubg. > Some I added. Some I eliminated when I decided they don't contribute. Are the deleted ones still in the code - and can I tell which are in use? I don't want to be raking over old ground. > The issue of inputs to a neural net is as close to the pit of > hell as you can get. There is no science I know of, just > black magic. Nothing I tried really worked. For example > - train net only on raw inputs. > - for each of the extra inputs, correlate it with the net error. > (here is one place where a benchmark comes handy) > - take the input with highest score, add it and re-train. > - repeat the steps above He he! I suspected as much. Do you have any stuff I can use? I know you didn't use gnubg itself, so I guess you've got something more suitable for a NN development test bed. I'd also need the training and benchmark databases. Of course, if you or somebody else with more programming competency than I would like to take the lead role, then I'd be happy to tack a back seat and contribute ideas and processing power. That's more what I had in mind when I started this discussion, because it would be much faster. I'm interested in the coding, but in all honesty I'm nowhere near up to speed on neural network design or C (nor any other conventional programming language, for that matter, and I can't see myself implementing neural networks in PLC ladder logic!) > > What is going on? For example, BREAK_CONTACT always seems > to be zero, > > even when there is contact. > > Then something is horribly wrong. > Perhaps it's just the output to the window. dE/dI values do exist. Here is the starting position. BREAK_CONTACT should be 1, because it is normalized to the start position. Position ID: 4HPwATDgc/ABMA Match ID: cAngAAAAAAAA Evaluator: CONTACT Input Value dE/dI OFF1 0.000 0.672 OFF2 0.000 0.757 OFF3 0.000 0.374 BREAK_CONTACT 0.000 0.574 BACK_CHEQUER 0.000 0.624 BACK_ANCHOR 1.000 0.693 FORWARD_ANCHOR 0.000 0.388 PIPLOSS 0.000 (0.000 avg) 0.570 P1 0.000 (0.000/36) 0.613 P2 0.000 (0.000/36) 0.688 BACKESCAPES 0.000 (0.000/36) 0.396 ACONTAIN 0.000 (0.000/36) 0.559 CONTAIN 0.000 (0.000/36) 0.663 MOBILITY 0.000 0.549 MOMENT2 0.000 0.577 ENTER 0.000 (0.000/12) 0.617 ENTER2 0.000 0.601 TIMING 0.000 0.520 BACKBONE 0.000 0.536 BACKGAME 0.000 0.582 BACKGAME1 0.000 0.355 FREEPIP 0.000 0.494 Win W(g) W(bg) L(g) L(bg) Equity Cubeful static: 0.519 0.145 0.006 0.130 0.006 +0.054 +0.076 1 ply: 0.535 0.149 0.008 0.123 0.004 +0.102 +0.142 2 ply: 0.519 0.145 0.006 0.126 0.005 +0.060 +0.084 Cube analysis 2-ply cubeless equity +0.060 (Money: +0.059) 0.519 0.145 0.006 - 0.481 0.126 0.005 Cubeful equities: 1. No double +0.084 2. Double, pass +1.000 ( +0.916) 3. Double, take -0.224 ( -0.308) Proper cube action: No double, take (25.2%) _______________________________________________ Bug-gnubg mailing list Bug-gnubg@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnubg