Giter Site home page Giter Site logo

Comments (11)

jun-bun avatar jun-bun commented on June 16, 2024

Assuming you wrote it without external libraries, you would just include the model and weights in the code.

from prisonersdilemmatournament.

redtachyon2098 avatar redtachyon2098 commented on June 16, 2024

Just put all of the data needed to reconstruct an exact copy of the model inside "memory", and load it up when the strategy function starts.

from prisonersdilemmatournament.

carykh avatar carykh commented on June 16, 2024

I hadn't realized people would use ML, because my initial goal was to have people write strategies they could reasonably explain with their own human logic, so each script would mostly be a series of if-then statements. I suppose you could just save the weights in the code itself, like a giant array initialized at the beginning! If it's fewer than 10,000 weights, it should be manageable... I hope!

from prisonersdilemmatournament.

redtachyon2098 avatar redtachyon2098 commented on June 16, 2024

I made a simple Deep Q learning strategy, but it wasn't very good. So I'm now using a neural network to try and predict the opponent's next turn.

from prisonersdilemmatournament.

redtachyon2098 avatar redtachyon2098 commented on June 16, 2024

I hadn't realized people would use ML, because my initial goal was to have people write strategies they could reasonably explain with their own human logic, so each script would mostly be a series of if-then statements. I suppose you could just save the weights in the code itself, like a giant array initialized at the beginning! If it's fewer than 10,000 weights, it should be manageable... I hope!

Due to the content of your channel, I couldn't resist.

from prisonersdilemmatournament.

 avatar commented on June 16, 2024

I think this will ruin all the fun, it shouldn't be allowed

from prisonersdilemmatournament.

ColinJPage avatar ColinJPage commented on June 16, 2024

I think this will ruin all the fun, it shouldn't be allowed

I agree that ML is against the spirit of the competition. But I think it will be cool to see what people come up with regardless. Training an effective ML strategy still requires accurate prediction of the population. I look forward to reading the top strategy designed by a human.

from prisonersdilemmatournament.

HassanWahba avatar HassanWahba commented on June 16, 2024

you can't predict this anyway because there is no function that describes all algorithms at once.
if it gives good results than it's most probably an overfitting problem and won't generalize to other strategies in my humble opinion

from prisonersdilemmatournament.

redtachyon2098 avatar redtachyon2098 commented on June 16, 2024

ML is, at its most basic level, a function approximation algorithm. It is a function that has a lot of variables(In neural networks, these are the "weights" and "biases".) that can be changed to alter the function's behavior. Since you can't save values between games without cheating, unless your algorithm is unnecessarily complex, the model will have to train on the fly. This is what I did(which I didn't submit, by the way) and it would only do a bit better than a detective. But later, ML could become the meta, and at that point, victory would indeed be given to whoever trained it for longer initially so that it will be able to react faster and more efficiently against strategies. Personally I don't see that coming for a while. I believe that if a ML strat that was any good was found any time soon, it would use it to assist a deterministic, main algorithm, rather than using it against strategies directly.

from prisonersdilemmatournament.

Volotomite avatar Volotomite commented on June 16, 2024

I don't think ML is going to cut it because strategy performance fully depends on the whole enviroment, and you should strategize upon enviroment, which is unknown.
Not only this, but also your strategy doesn't have memory over previous opponents, so you can't adapt your strat to figure out the enviroment, which makes ML pretty much useless IMO.

I suppose you can train it against a variety of different strats, your idea might be "Okay I'll train it against random then I'll train it against tft then ..." and then basically train it against all kind of strats, but then there always will be non 0 chance of your strat to try to exploit something since some strats are exploitable. In this case ML strat will probably fail in enviroment with only TFT strats involved.

from prisonersdilemmatournament.

redtachyon2098 avatar redtachyon2098 commented on June 16, 2024

That's why I said ML isn't viable at the moment. But if someone actually trains a good and complex-enough ML algorithm(Maybe some form of Reinforcement Learning algorithm? Not sure) for a very long time with a myriad of strategies, just like you said, it has some chance of reining supreme. But for now, the best it can do is adapting to an opposing strategy quickly, and finding a defense, and even that won't be particularly good. Like I have said above, ML's only real use case right now is to maybe classify different strategies to decrease false positives or false negatives in a detective strategy. We'll just have to see. We never know what will happen in the future. Maybe ML would become an unbeatable meta, or maybe it will fade into obscurity, even more than it is now.

from prisonersdilemmatournament.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.