I’m not starting my Recurce Center (RC) batch until Aug 15th but I already got my login and a sneak peek into Summer 2 batch and what they are up to.
To my pleasant surprise, Michael Nielsen is there. (I really enjoyed his book on Deep Learning.) I contacted him, but unfortunately for me he’s not staying at RC after mid-august. I did find whole bunch of other interesting people, from all kinds of backgrounds – seasoned coders, researchers, scientists. Many of them take strong interest in Machine Learning and AI so I’m really excited to start and pair-program, collaborate and exchange knowledge with them. (My batch will be overlapping with second half of Summer 2.)
Some things that piqued my interest:
- A web app that allows users to upload a headshot and view its projection onto some subsets of eigenfaces. – https://github.com/james727/Eigenface_Explorer
- Chess engine written in Python – https://github.com/james727/chython
- Distributed key value datastore written in Go – https://github.com/arpith/mmapd
- Python implementation of Connect Four – https://github.com/katur/connectfour
The last one I cloned and took some time to study – I really like Katherine’s coding style and would love to pair-program with her. The game has both GUI and CLI and is fun to play with. Perhaps I’ll add some more “intelligence” to its AI… Here’s how it looks like now.
def easy_ai_strategy(self, model): return self.find_random_legal_column(model) def medium_ai_strategy(self, model): column = self.find_win(model) if column is not None: return column return self.find_random_legal_column(model) def hard_ai_strategy(self, model): column = self.find_win(model) if column is not None: return column column = self.prevent_win(model) if column is not None: return column return self.find_random_legal_column(model)
Minimax should do the trick here, and perhaps I’ll try to implement Alpha-Beta Pruning if basic minimax is too slow.
Here’s a good testimonial to read if you don’t know about Recurse Center – https://news.ycombinator.com/item?id=4335460