Skip to content
parton69 edited this page Nov 15, 2019 · 5 revisions

Some of the features that make SAI different from Leela Zero

Free komi

SAI can play with any komi value. Just use the --komi k command-line option or change the komi via your favourite GUI. (For example sabaki.)

Sensible agents

SAI networks can estimate the score difference and how much the game is settled. This information can be used in many ways to get a program that plays with improved understanding of the game.

We encourage people to write their own agents/algorithms that use SAI value head, but for now SAI is shipped with a basic family of agents that you can already use. These agents are controlled by two command-line arguments:

  • --lambda x default 0.5, suggested range [0,1]
  • --mu y default 0, suggested range [0,x]

If you set x=y=0, then the agent is the same as Leela Zero, trying hard to win at the given komi, sometimes playing suboptimal moves when the win-rate is very near to 1 or to 0.

If you set x=y=0.5, then the agent will try to win with a virtual komi which shifted from the real one in the direction of a balanced game. So for example, if SAI believes to be ahead by 40 points, it will try to win with a (say) -25 handicap (komi shifts of this quantity). In this way the agent is able to distinguish between winning moves that keep the score lead and winning moves that lose points, because the latter would decrease the win-rate with the virtual komi. The virtual shift in the komi depends also on how much the score is settled, and the agent becomes more and more daring as you increase x and y from 0 to 1.

If you set x=0.5, y=0 (the default), then the agent will average the win-rate between the real komi and the virtual one, this way keeping the feets on the ground.

No history

SAI networks estimate policy and value using just the current board position. AlphaGo Zero and Leela Zero on the other hand use the last 8 positions. This way SAI could never get the habit of answering locally to a move, unless this is the largest move on the board. Of course SAI knows if a move is forbidden by the ko state.

Advanced features

SAI networks use advanced features: namely planes with chains size and chains liberties.

Symmetries exploitation

If you use the command-line flag --nrsymm, SAI will pool together equivalent moves in symmetric positions, to get a deeper exploration of the tree, then choosing the move on the "polite" eights of the board if possible. The command-line flag --symm is the same, but the chosen move is random instead than polite.

Rich comments in self-plays

There is a quick description here