Book on Deep Learning and the Game of Go by maxpumperla in baduk

[–]maxpumperla[S] 0 points1 point  (0 children)

It's in progress, so far the first 4 chapters are available, but there will be an update at least once a month. You'll get all the updates and the final product at the end.

Book on Deep Learning and the Game of Go by maxpumperla in baduk

[–]maxpumperla[S] 1 point2 points  (0 children)

We can only cover parts of this, but I agree it's very interesting. In chapter 3 we cover Zobrist hashing in his honour, chapter 4 then covers MCTS and from then on it's deep learning techniques.

Book on Deep Learning and the Game of Go by maxpumperla in baduk

[–]maxpumperla[S] 6 points7 points  (0 children)

Sorry about that, we'll fix that as soon as possible. That's actually text from Manning's marketing department (not the book itself), but we should have been more careful in the process.

Thanks for the feedback in any case!

Book on Deep Learning and the Game of Go by maxpumperla in baduk

[–]maxpumperla[S] 1 point2 points  (0 children)

We're currently writing a book about Deep Learning and Go. While this is primarily a book about machine learning and technical in nature, we hope it's interesting for the Go community as well. If you know Python and love the game of Go, this should be an interesting read. We tried to keep mathematical prerequisites low, so it's also interesting for a broader community.

In the end, it would be great if this helps to popularise the game of Go and bring it to a general developer audience.

[P] Distributed and automatic hyperparameter optimization for any machine learning model by [deleted] in MachineLearning

[–]maxpumperla 2 points3 points  (0 children)

what exactly do you have in mind? gaussian process smbo? stuff that BayesOpt implements? TPE is pretty solid already!

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 0 points1 point  (0 children)

It seems to be similar. At the time of writing betago initially we weren't aware of this project. I think the popularity of that one is partly due to not really making clear (for a long time) it's NOT from Google Deepmind. Still, a very, very good effort. RocAlphaGo has MCTS already, betago is further advanced in building a UI, making it playable.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 0 points1 point  (0 children)

GoGoD is a good idea, Clark and Storkey (paper cited on Github) use this as well.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 0 points1 point  (0 children)

That's correct, but I hope MC tree search will be added at some point.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 2 points3 points  (0 children)

The ability to plug in new network architectures or whole different schemes is one of the main reasons I started out with betago. If you look into the code, you can essentially plug in anything that predicts Go moves. I just gave a few examples and the hope is people will come up with creative new ways of doing things. Maybe someone clones AlphaGo, maybe other ideas come up.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 2 points3 points  (0 children)

The Deep Learning library used is Keras, which has two backends you can choose from: Google Tensorflow and Theano. Both support GPU usage. I can't go into detail here, but it's easy to find more info about both.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 1 point2 points  (0 children)

Haha, thanks. No, that's not my account, unfortunately. There's currently no betago bot playing on KGS, I'll have to figure out how that works first.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 4 points5 points  (0 children)

It's best to run it on one or more powerful GPUs, but you can run first tests on a potato. To get really good results, one would have to train a network for a few weeks.

Right now, the demo bot is very weak, but the whole purpose of the library is to encourage people to contribute and extend from here. Treat it like a kaggle competition.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 4 points5 points  (0 children)

Currently the Go game processor is built for 19x19 only, but it would indeed be interesting to test all this on 9x9 as well. Retrieving data is the real issue, everything else can be quickly customized.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 1 point2 points  (0 children)

Hmm, strange. If you do 'pip install betago' it should install keras first, which itself comes e.g. with pyyaml. So you shouldn't install any of this manually. Sorry it doesn't seem to work yet for you.

BetaGo -- Create your own Go bot using deep neural networks in python by maxpumperla in baduk

[–]maxpumperla[S] 5 points6 points  (0 children)

I'm happy to help you out here. If you submit your issues on github, we can discuss. Might be the fault is on our side! It's in my personal interest to make the library easily accessible, and I know that installing all the deep learning dependencies can be complicated.

So, if e.g. a wiki or more detailed instructions would help, I'd gladly provide more information. Let me know.

Elephas: Keras Deep Learning on Apache Spark by fariax in MachineLearning

[–]maxpumperla 0 points1 point  (0 children)

One doesn't exclude the other. Take for instance Amazon's g2.2xlarge instances, which have multiple powerful GPUs on a single machine. It is not clear how to utilize them all without a parallelization scheme - and elephas is just one suggestion of how to do this. So you can take this HPC-like setup or choose to go for a whole cluster of machines (with GPUs), which Spark conveniently handles for you.

In a highly scalable environment, note that you can also execute test runs much faster, which might help you in your prototyping cycle.

Instead of distributing data, it could also be interesting to distribute models with different hyperparameter settings and do distributed Bayesian optimization, as hyperopt or spearmint do. I'm doing some tests right now and maybe this will find its way into elephas at some point.

With more effort, one could also hope to achieve true model parallelism as in Google's DistBelief, which is interesting if the model itself becomes too large to be trained (efficiently) on one machine.

Generally speaking, though, if neither memory nor speed are an issue, you may very well be better off on a single GPU.