TomBolton.io

Tom Bolton’s AI and Machine Learning Lab Notebook.

Machine Learning

This weekend, I pushed a bunch of other stuff aside and managed to complete the game-play parallelization effort. It was definitely worth it. Before the refactoring, tensorflow was able to play about 3 games per second. Now it’s able to play 15 games per second. So now, rather than taking 9 hours, I only have to wait a bit under 2 hours to discover my model has blown up. Heh!

But despite that, I now have an architecture that spits out training data at five times the speed as my previous architecture. I think here are my next steps:

  1. Figure out an implementation of this basic approach on this basic problem that learns and doesn’t explode. This is part of one of my main goals: learning fundamentals.
    • This may well include using one of TensorFlow’s many built in optimizers. In my first quick-and-dirty attempt at implementing TF’s gradient descent optimizer, I couldn’t get it quickly to work with the weights I had set on each training example. It has a place to input weights, but it wasn’t clear from the documentation that it would do what I used the weights for in my hand-coded implementation. And the way that I started off using it was clearly different than it is intended to be used based upon the output. So rather than troubleshoot that, I re-implemented my python hand-coded GD algorithm with the weights. It was just faster that way, and it worked. But now I think it’s time to use some more powerful optimizers and see what kind of results I can get.
  2. Try the actual correct feature set to tackle my intermediate problem (legal moves).
  3. Start the real task: design a system to play checkers well.
Tagged:

LEAVE A RESPONSE

You Might Also Like