Git Product home page Git Product logo

gohardgohome-part3's Introduction

Go Hard or Go Home: Part 3

  • Created an end-to-end application (DeepLearningAgent) to train/run a Go bot (ch 8.1)

  • Used the web interface and flask server to play your Go bot using an attractive UI (ch 8.2)

  • Have created an AWS account (one for yourself and one for your bot) to allow training of your bot and deploying it. (ch. 8.3 and Appendix C)

  • Have installed gnugo as a LOCAL GTP server using the Go Text Protocol. The server can berun using a user interface such as Sabaki, Lizzie, GoRilla, or q5Go (Appendix C).

  • Create a web application using a Flask server that allows you to play against your bot using a browser to: localhost:5000/static/play_random_99.html . The browser will show a traditional (graphic) view of a Go game, with black and white stones on a wooden board (ch 8) (pp. 229-30).

  • Created a GTP frontend for your bot (chs. 8.4 and 8.5)

    • The code for this can be seen in dlgo/gtp. You can properly test this is working correctly once we train and upload our bot.
  • Your bot can play against two other local Go bots (gnugo and pachi). Gnugo has strength 12 kyu. Pachi has strength 2d to 7d, depending on the strength of the computer running it.

    • The code for this is located in play_local.py, but the script currently hangs after successfully loading Pachi. To test Gnugo, change line 152 opponent='pachi' to opponent='gnugo'.
  • Your bot has been deployed on the OGS (online Go Server) platform (Appendix E)

    • There are instructions below for deploying the bot, but we were not quite able to get this running.
  • Make a self-improving Deep Learning agent using Reinforcement learning, collecting experience data by playing copies of itself. (ch. 9)

  • Made a self-improving Deep Learning agent that uses Keras to develop its policy gradient algorithm (ch. 10).

  • Made a self-improving Deep Learning agent with the Q-learning algorithm (ch. 11)

  • Made a self-improving Deep Learning agent with the actor-critic method (based on advantage: A = R – V(s), where R is an estimate of the action-value method Q(s, a). (ch. 12)

  • Create a 48 plane board encoder, to make your Go bot more powerful.

  • Create TWO deep CNN policy networks for move prediction – one for more accurate results, and the other for faster evaluation (ch. 13)

  • Use the strong self-play CNN policy network to build your self-play value network.

  • Use the fast self-play CNN policy network to guide your tree-search algorithm.

  • Train a value network using the AlphaGo board encoder, and by having the Go bot play itself

  • Improve your MCTS rollout policy to use your policy network to guide rollouts, instead of just making moves at random

  • Winning percentage against other Go bot engines gets you into the top six in the class.

  • Winning percentage against other Go bot engines gets your bot into the top three.

  • Train your Go bot using different hyper-parameters to get best performance.

  • Be written in Python. No issues are shown in PyCharm (all source code screens shown a green checkmark at the top right hand corner).

  • Project directory pushed to new GitHub repository listed above

For any machine intended to host our go bot locally, the following command should be entered onto the command prompt:

Windows Users: SET PATH=/path/to/deep_learning_and_the_game_of_go/code:$PATH

Linux Users: export PATH=/path/to/deep_learning_and_the_game_of_go/code:$PATH

You should have Node.js and all of its relevant dependencies downloaded for this process to work. Then run the following command with the bot of your choice:

  cd deep_learning_and_the_game_of_go/code 
  npm install
  npm install -g forever
  forever start gtp2ogs.js --username GoingInsaneBot --apikey 2b52acfc62953e38df0b961524895dd81b25bf5c /
  --hidden --persist --boardsize 19 --debug -- python3 run_gtp.py

Note that is the filename of the bot that you want people to play against. To stop running the bot on your computer, enter 'forever stopall' on the command line.

gohardgohome-part3's People

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

feldman0007

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.