Jazz Man, first let me apologize in advance for long gaps in any future replies. I am involved in a project which will take me out of town for various periods of time. Your project here is a great one to work on as the inputted data is solid, unlike my ai that inputs data whose accuracy needs to be constantly checked. Also, it sometimes takes me awhile to research the calculus formula, conceptulize their mean and then Laymanize the formula into qb64 jargon. Find I often need to tinker with my formulas.
I have been trying to run your program but can't get it go yet. It will not locate and load the supporting files. That seems to be the way I have written the path to those files. I will sort that out .
Is the relationship between your 2 grids TIME? For example is Grid 1 producing the relevant material data before the race is run, and Grid 2 projecting the outcome at the end of the race? Which I am then imaging that the Sigmoid Grid 1 is refining the weights for input into Grid 2? Actually, I "think" it's more complex than that - it would be more like Neuron (x1,Y1) in Grid 1 is producing relevant and material data for every Neuron (x1...Xn, Y1...Yn) in Grid 2. And is it that everyone of those outputs to Grid 2 are evaluated for activation by the Sigmoid function, or will the Sigmoid function determine if Neuron (X1,Y1) in Grid 1 has a weight of zero and therefore not pass anything?
In my approach to back propagation, the backward adjustment of a Neuron (or the neuron's weight) is made to those neurons which have the largest impact. (similar to the Delta Rule). So Neuron (X1,Y1) in Grid 1 offering zero would not be adjusted. I do recognize Learning Rates and Error codes do need to be contended with in backpropagation, but is this basically the approach you are taking?