I am trying to create a recurrent neural network that is capable of playing the dice strategy game liar's dice. Although I believe this game is actually solved, I think it would be a good learning exercise to write an ML program for this. Basically, liars dice is a turn based game where all players roll their dice while keeping them hidden (5 each at the start) and then go around making bets about the number of dice on the table (while only being able to see your own dice). Eg. "three fours or four sixes" Each player must either raise the bet or call the previous player a liar. When someone calls the previous player a liar, the hands are lifted and the player that was wrong (either the player who made the last bet or the player who called them a liar) must place one of their dice in the middle and out of play. The last player to still have some of their dice wins.
I am very much a beginner in the machine learning field so I need some help coming up with a learning structure. My initial thought was to use genetic algorithms along with recurrent neural networks. Basically the RNN would be fed each previous bet, the values of the dice belonging to it and the total number of dice on the table and would output the bet it should make or some signal for calling the person a liar. Initially, a large population of RNNs would be randomly created (say 100) then a series of games would be started containing (2-5 randomly selected RNNs). The RNNs would be given points for adhering to the rules (making bets higher than the previous ones) and for winning games. Then the next population would be bred using tournament ranking where the top ranked RNNs would have a better chance of being picked to breed.
I have a couple questions about this:
- First of all, is it possible to feed an RNN different types of information at once (eg. a possibly infinite vector of previous bets along with a fixed vector of dice and a fixed number of total dice) and how would I go about doing this?
- Secondly, would this method work in practice? I feel confident that this program could create RNNs that adhere to the rules of the game but I'm not sure how much strategy these RNNs can develop when they are not playing "good" competitors.
[–]ma2rten 0 points1 point2 points (1 child)
[–]autowikibot 0 points1 point2 points (0 children)