Table of Contents

Class RainbowDQNOptions<T>

Namespace
AiDotNet.Models.Options
Assembly
AiDotNet.dll

Configuration options for Rainbow DQN agent.

public class RainbowDQNOptions<T> : ReinforcementLearningOptions<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
RainbowDQNOptions<T>
Inherited Members

Remarks

Rainbow DQN combines six extensions to DQN:

  1. Double Q-learning: Reduces overestimation bias
  2. Dueling networks: Separates value and advantage streams
  3. Prioritized replay: Samples important experiences more frequently
  4. Multi-step learning: Uses n-step returns for better credit assignment
  5. Distributional RL: Learns full distribution of returns (C51)
  6. Noisy networks: Parameter noise for exploration

Properties

ActionSize

public int ActionSize { get; init; }

Property Value

int

AdvantageStreamLayers

public List<int> AdvantageStreamLayers { get; init; }

Property Value

List<int>

NSteps

public int NSteps { get; init; }

Property Value

int

NoisyNetSigma

public double NoisyNetSigma { get; init; }

Property Value

double

NumAtoms

public int NumAtoms { 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>>

PriorityAlpha

public double PriorityAlpha { get; init; }

Property Value

double

PriorityBeta

public double PriorityBeta { get; init; }

Property Value

double

PriorityBetaIncrement

public double PriorityBetaIncrement { get; init; }

Property Value

double

PriorityEpsilon

public double PriorityEpsilon { get; init; }

Property Value

double

SharedLayers

public List<int> SharedLayers { get; init; }

Property Value

List<int>

StateSize

public int StateSize { get; init; }

Property Value

int

UseDistributional

public bool UseDistributional { get; init; }

Property Value

bool

UseNoisyNetworks

public bool UseNoisyNetworks { get; init; }

Property Value

bool

VMax

public double VMax { get; init; }

Property Value

double

VMin

public double VMin { get; init; }

Property Value

double

ValueStreamLayers

public List<int> ValueStreamLayers { get; init; }

Property Value

List<int>