Jump to content

madvorak

Members
  • Posts

    14
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by madvorak

  1. So you would choose opening bid rules manually and then let the AI develop responses and rebids after each one individually? Pro: opening bids could be made disjoint. Cons: my selection of opening bids may be unsuitable for AI (moreover, having disjoint openings isn't a big deal, because the system will develop responses and other bids that cannot be disjoint, since such a test would be NP-hard; therefore, the system will have to deal with "bid ambiguity" anyways).
  2. Good idea! I can use some rough criteria (like HCP and length) to quickly filter which deals start with a preemptive bid. Because generating random deals is fast and filtering by simple criteria too (the "slow" part is getting the DD results, which I don't need for the rest of deals), I may develop a fast way to learn something that's difficult for human players.
  3. Thanks for your comment! You are right. DD will cause a systematic bias to my learning algorithm. For example, 3NT is often made in reality, even when DD says that the results is 3NT-1. On the other hand, I am able to generate much more DD results than I am able to download real tournament results. With unlimited training data, I am more able to fight against overfitting, which is very likely to happen. What's worse, with real tournament data, my AI can end up in a contract that nobody played in the tournament on the deal, but I need to evaluate the contract. And if I use real tournament data for some contracts but DD data for other contracts (which will most time be bad contracts), I end up in a worse bias than what DD causes itself.
  4. I am not going to do this. I would need tons of training data from real deals played by experts who all use the exactly same bidding system. I am afraid I would not be able to get such data.
  5. OK. How do you decide which deals are opened by 3 bananas from the opponent? I don't have trouble generating DD results. I have trouble selecting the deals if I want to do this specialized analysis.
  6. Wow, you are awesome! As for the double-dummy approach and number of hands needed, the good thing is that double-dummy analyses can be pregenerated (since calculating the result of the deal for all contracts takes about 700 ms, but loading the deal with results from hard drive takes less than 1 ms). Therefore, I can use a fixed (big) pack of pre-generated deals and experiment with various algorithms on them. However, when I want to see the result of my evolution, despite many optimizations it takes almost and hour for my computer to evolve the system. However since this Friday, I have obtained an access to computers at the university, so I will be able to run my program on several computers in order to test several versions/settings of my algorithm at the same time. At the moment, I am studying papers about Michigan style strength-based learning systems vs Michigan style accuracy-based learning systems.
  7. Wow, that sounds interesting! BTW, how do you manage to stay on top of all the researchers in your fields of interest, when you are not payed by any university for studying this? Do you spend most of your free time on studying research papers etc?
  8. Thanks for your comment! I have just read the discussion you mentioned. There are interesting ideas! I especially like the idea "maybe the algorithm should be tuned to avoid making low-level nonforcing calls that are unnecessary" because it seems that such a change could solve the problems of premature convergence that I have now (in my current program, too many biddings go like 1x - pass - pass - pass). Thanks for your idea of setting an easier goal! In fact, this is something with a limited state-space (making it possibly easy for computers), but very complicated for me to do it as a human player well (in fact, I am terrible in bidding after opps' preempts). Do you have any idea how I should download/generate training data containing deals where opponents preempted? For example, I might generate random deals and somehow co-evolve a classifier to decide whether to preempt or pass (opponents' strategy). However, it could lead to some unrealistic bidding sequence. I would like to make this based on human data instead.
  9. I am afraid that my program will not be able to export its bidding system in such a simple form.
  10. Thanks for your thoughts! 1. I am also interested! 2. I think it will not develop transfers at all. Maybe I am wrong. Application of a deep learning to bridge bidding is certainly a good idea! Recently (2016) there was made a great breakthrough in this area. See this paper: https://arxiv.org/pdf/1607.03290.pdf However, the method (DRL from the paper) has its limits. I will probably not be applicable to competitive bidding. Since the algorithm learns each sequence separately by Q-learning, it can't learn more general and abstract rules. This is a major obstacle. In competitive bidding, there are way too many possible sequences (they are there inherently; and what's worse, the algorithm cannot choose to limit the length of the bidding as it did with 4 bid limit in pure NS bidding). There will never be enough training data to learn every sequence from them. For comparison, real bridge players (people) don't learn each sequence separately. They use analogies. My work focuses on creating generalized rules. I hope that my program will be able to perform in a competitive bidding, at least to some degree. I decided to use evolutionary algorithms. However, it is highly possible that deep learning is also useful for this purpose. For example, I could use evolution for exploration and generalization of bidding rules and then I could use deep learning for fine tuning of parameters (without creating nor destroying existing rules).
  11. First, I would like to share one funny moment with you. About 5 months ago, when I finally implemented the learning classifier based genetic programming, I decided to train it on about 200 deals (which is not enough of course) and then test it on 1 deal, only to see the opening bid. I didn't expect any high-quality bidding, I just wanted to see whether it can do something. pass I started it again. pass I wanted to see, whether it can bid anything else (because always-pass system would be a symptom of either underfitting or implementation bug). So I started it again. pass It seemed that it can bid only pass. I started to feel disappointed. However, I started it again. 7NT Well, it doesn't look like a reasonable opening!
  12. Before I share information about methods that I use, I will add a brief comment on your question. My algorithm will never explore relay bids. I don't inject any human-created knowledge into the system. I let my algorithms create everything from scratch, using a form of reinforcement learning. And because I decided to use a model-free approach to reinforcement learning, "pure ask bids" cannot emerge. PS: With a very, very, very low probability, a "pure ask bid" can occur. However, the evolution will not be able to select them by their fitness anytime soon after they appear, so they will most likely die.
  13. Hello! I am a student of Computer Science at the Charles University in Prague. I am also an enthusiastic bridge player. You can probably guess where this combination of interests leads to ... My master thesis deals with an artificial intelligence for bridge. Specifically, my goal is to let my computer design its own bidding system without any prior knowledge. I perform experiments with evolutionary algorithms (involving genetic programming and learning classifier systems) for this purpose. Would you be interested in watching my progress? I think that posting information about my research could increase my motivation to progress faster.
×
×
  • Create New...