This Deep learning book is turning out to be very technical. But it is terrific! It explains in technical detail exactly what each function does and the reasoning behind it.
My purpose of learning this deep learning is the develop a bridge bidding system using raw data. Essentially, don’t worry about human conventions at all. Also, don’t tell the computer it has a partner, let it just find the best score based off the information it has.
This insight has allowed me to think of other problems. Eg, When solving double dummy hands, the max number of tricks you make, might be different than the goal of number of tricks you need. Thankfully the deal program can tell you how many tricks you can take via a greedy line, and how many tricks you can take via a conservative line.
I think the ideas of bidding conventions might be a bit complex. It might be best to have a computer actually bid what they think they can make. I obviously can’t create machine learning for each bidding sequence. So I think the computer should only take the last bid into consideration. What happens if the opponents are playing a conventional bid, then it would be stupid to try to infer anything other than that could be the last bid they make! I imagine it will emerge that all the computer agents have a huge advantage to bid what they actually have. Both for descriptive reasons and for pre-emptive reasons.
A shortcut I could use is once I have a deal, do learning with each hand. But this might really bias the data so I think I won’t do that. (Eg. 1 deal = 4 learning iterations)
Besides the book talking about softmax functions,which I think I can use to assign a probability of making each contract times the ‘expected value’, the scored reward of actually making the contract.
The model that seems to be pretty universal is a DNN with linear regression on the inputs, a convolution network on each suit, and a couple of relu layers. Then a softmax expected value. It would be neat to use gradient descent on the calculated score of the different bids. But I’ll likely just use the default L2.
So that is my best beginner approach.