Class MuZeroOptions<T>
Configuration options for MuZero agents.
public class MuZeroOptions<T> : ReinforcementLearningOptions<T>
Type Parameters
TThe numeric type used for calculations.
- Inheritance
-
MuZeroOptions<T>
- Inherited Members
Remarks
MuZero combines tree search (like AlphaZero) with learned models. It learns dynamics, rewards, and values without knowing environment rules.
For Beginners: MuZero is DeepMind's breakthrough that mastered Atari, Go, Chess, and Shogi without being told the rules. It learns its own "internal model" of the game and uses tree search to plan ahead.
Key innovations:
- Learned Model: No need for game rules, learns environment dynamics
- MCTS: Uses Monte Carlo Tree Search for planning
- Three Networks: Representation, dynamics, and prediction
- Planning: Searches through imagined futures
Think of it like: Learning to play chess by watching games, figuring out the rules yourself, then planning moves by mentally simulating the game.
Famous for: Superhuman performance across Atari, board games, without rules
Properties
ActionSize
public int ActionSize { get; init; }
Property Value
DynamicsLayers
public List<int> DynamicsLayers { get; init; }
Property Value
LatentStateSize
public int LatentStateSize { get; init; }
Property Value
NumSimulations
public int NumSimulations { get; init; }
Property Value
ObservationSize
public int ObservationSize { get; init; }
Property Value
Optimizer
The optimizer used for updating network parameters. If null, Adam optimizer will be used by default.
public IOptimizer<T, Vector<T>, Vector<T>>? Optimizer { get; init; }
Property Value
- IOptimizer<T, Vector<T>, Vector<T>>
PUCTConstant
public double PUCTConstant { get; init; }
Property Value
PredictionLayers
public List<int> PredictionLayers { get; init; }
Property Value
PriorityAlpha
public double PriorityAlpha { get; init; }
Property Value
RepresentationLayers
public List<int> RepresentationLayers { get; init; }
Property Value
RootDirichletAlpha
public double RootDirichletAlpha { get; init; }
Property Value
RootExplorationFraction
public double RootExplorationFraction { get; init; }
Property Value
TDSteps
public int TDSteps { get; init; }
Property Value
UnrollSteps
public int UnrollSteps { get; init; }
Property Value
UseValuePrefix
public bool UseValuePrefix { get; init; }