Table of Contents

Class DreamerOptions<T>

Namespace
AiDotNet.Models.Options
Assembly
AiDotNet.dll

Configuration options for Dreamer agents.

public class DreamerOptions<T> : ReinforcementLearningOptions<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
DreamerOptions<T>
Inherited Members

Remarks

Dreamer learns a world model in latent space and uses it for planning. It combines representation learning, dynamics modeling, and policy learning.

For Beginners: Dreamer learns a "mental model" of how the environment works, then uses that model to imagine future scenarios and plan actions - like playing chess in your head.

Key components:

  • World Model: Learns environment dynamics in compact latent space
  • Representation Network: Encodes observations to latent states
  • Transition Model: Predicts next latent state
  • Reward Model: Predicts rewards
  • Actor-Critic: Learns policy by imagining trajectories

Think of it like: Learning physics by observation, then using that knowledge to predict "what happens if I do X" without actually doing it.

Advantages: Sample efficient, works with image observations, enables planning

Properties

ActionSize

public int ActionSize { get; init; }

Property Value

int

BatchLength

public int BatchLength { get; init; }

Property Value

int

ContinueScale

public double ContinueScale { get; init; }

Property Value

double

DeterministicSize

public int DeterministicSize { get; init; }

Property Value

int

HiddenSize

public int HiddenSize { get; init; }

Property Value

int

ImaginationHorizon

public int ImaginationHorizon { get; init; }

Property Value

int

KLScale

public double KLScale { get; init; }

Property Value

double

LatentSize

public int LatentSize { get; init; }

Property Value

int

ObservationSize

public int ObservationSize { get; init; }

Property Value

int

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>>

RewardScale

public double RewardScale { get; init; }

Property Value

double

StochasticSize

public int StochasticSize { get; init; }

Property Value

int