What is Darkforest?

by Stephen M. Walker II, Co-Founder / CEO

What is Darkforest?

Darkforest is a computer Go program developed by Facebook's AI Research team, based on deep learning techniques using a convolutional neural network. It combines these techniques with Monte Carlo tree search (MCTS), a method commonly seen in computer chess programs, to create a more advanced version known as Darkfmcts3.

Darkforest has been able to substantially improve the win rate for bots over more traditional Monte Carlo Tree Search (MCTS) methods. Against human players, Darkfores2, an earlier version, achieves a stable 3d ranking on the KGS Go Server, which roughly corresponds to an advanced amateur human player. However, after adding MCTS to Darkfores2 to create Darkfmcts3, it can achieve a 5d ranking on the KGS Go Server, making it on par with state-of-the-art Go AIs such as Zen.

The Darkforest Go engine is open-source, and its source code and pre-trained models are publicly available on GitHub. This has been beneficial to the community, as it allows other researchers and developers to use and build upon the work done by the Facebook AI Research team.

In a broader context, the term "Dark Forest" is also used metaphorically in discussions about AI and generative models. It refers to the idea of an expanding landscape of AI-generated content, where AI models are capable of generating text, images, and other forms of content that are increasingly indistinguishable from human-created content. This metaphor draws from the "Dark Forest Theory" in Liu Cixin's science fiction, which describes a universe where civilizations remain silent and hidden to avoid detection and potential destruction. In the context of AI, it suggests a future where distinguishing between human and AI-generated content becomes increasingly challenging.

How does darkforest use deep learning techniques?

Darkforest, a computer Go program developed by Facebook's AI Research team, uses deep learning techniques in combination with a convolutional neural network (CNN). The CNN is designed to predict the next k moves based on the current state of the game and each player's territory. The architecture of Darkforest's CNN is a 12-layer full convolutional network with a width of 384 nodes. Each convolutional layer is followed by a rectified linear unit (ReLU), a popular activation function for deep neural networks.

The deep learning portion of Darkforest involves training a deep policy convolutional neural network. This neural network takes in a Go position and outputs the best moves. The training process involves feeding the network with game positions and the corresponding best moves, allowing the network to learn and predict the best moves given a game position.

In addition to the deep learning techniques, Darkforest also uses Monte Carlo Tree Search (MCTS), a method commonly seen in computer chess programs. The combination of deep learning and MCTS allows Darkforest to effectively evaluate the game state and make strategic decisions.

The most advanced version of Darkforest, Darkfmcts3, introduces a key innovation: it uses only one softmax function, which reduces the overall number of parameters in the model. This makes the model more efficient and potentially improves its performance.

The source code and pre-trained models of Darkforest are publicly available on GitHub, allowing other researchers and developers to use and build upon the work done by the Facebook AI Research team.

More terms

What is satisfiability?

In the context of artificial intelligence (AI) and computer science, satisfiability refers to the problem of determining if there exists an interpretation that satisfies a given Boolean formula. A Boolean formula, or propositional logic formula, is built from variables and operators such as AND, OR, NOT, and parentheses. A formula is said to be satisfiable if it can be made TRUE by assigning appropriate logical values (TRUE, FALSE) to its variables.

Read more

What is the junction tree algorithm?

The junction tree algorithm is a message-passing algorithm for inference in graphical models. It is used to find the most probable configuration of hidden variables in a graphical model, given some observed variables.

Read more

It's time to build

Collaborate with your team on reliable Generative AI features.
Want expert guidance? Book a 1:1 onboarding session from your dashboard.

Start for free