Artificial Intelligence(AI) is a term that is being used more and more everyday. However, for most people it is hard to get familiar with AI since it contains relatively new technologies and jargon such as artificial neural networks or anything related to machine learning, which are difficult to understand without deep prior knowledge of mathematics and computer science. To bridge the gap between people and neural networks, google tensorflow provides Neural Network Playground, where people can easily construct neural networks to classify linearly inseparable data. Inspired by this playground, we create an Interactive Reinforcement Learning(RL) playground, where even users without any background in AI can train and evaluate their own RL agent for well known game Gomoku
.
Main features are:
- Build own RL agent that plays
Gomoku
Screen.Recording.2021-12-19.at.18.11.21.mov
- Train the agent to learn how to play Gomoku and monitor train process
Screen.Recording.2021-12-19.at.18.12.30.mov
- Battle with Gomoku agents that are created by others
Screen.Recording.2021-12-19.at.18.24.52.mov
Dependencies
1️⃣ Clone Repository
$ git clone https://github.com/jirheee/CS492-Team-Project.git
2️⃣ Install Packages
$ cd client && yarn
$ cd ../server && yarn
$ cp .env.example .env
$ cd ..
3️⃣ Run Server
Below command will run the dockerized db server and main api server in your localhost.
$ cd Server
$ docker-compose up
4️⃣ Run Client
Below command will host the frontend at http://localhost:3000
$ cd Client
$ yarn start
5️⃣ Go to http://localhost:3000, you will be able to build, train, test your own agent!
Client
|-public
|-src
|-config // Configurations & Constants
|-components // React components
|-lib // Utility functions
|-model // ML Data type interfaces
|-pages // Pages for routing
Server
|-src
|-config // Configurations & Constants
|-entity // Typeorm Schema
|-ioHandler // Socket.io handlers
|-loader // Things that run at the start of server
|-manager // Global State Managers
|-ml // ML related code, more explained below
|-routes // Express.js routes
|-types // typescript types
Alphazero_Gomoku
|-game // Game Environment
|-nn_architecture // Build RL agent with user's options
|-train // Train RL agent
|-mcts_pure // Monte Carlo Tree Search(MCTS) Implementation
|-mcts_alphaZero // AlphaZero Implementation
|-human_play // for testing RL agent with human
2021 KAIST Fall Semester · CS492(I) - Intro to DL