Files
foxhunt/config/training/dqn-localdev.toml
jgrusewski 332b3eb120 feat(training): cosine LR decay in TOML profile, min_epochs_before_stopping=80
- Added lr_decay_type (0=constant, 1=linear, 2=cosine) and lr_min to
  the TOML training profile system. Wired through apply_to() with
  total_steps derived from epochs.

- dqn-localdev.toml: lr_decay_type=2 (cosine 1e-4→1e-5 over 200 epochs),
  min_epochs_before_stopping=80 (was 50, gives model more room to recover
  after C51 transition).

- Smoketest config unchanged (lr_decay_type not set → default Constant).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 18:16:47 +02:00

74 lines
1.4 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DQN Local Dev Profile — extended training on RTX 3050 (4GB VRAM)
# Larger buffer + more episodes than smoketest for meaningful convergence.
# gpu_n_episodes=64 × gpu_timesteps=200 = 12,800 experiences/epoch
# buffer_size=50K → fills over ~4 epochs, reducing memorization
[training]
epochs = 200
batch_size = 64
learning_rate = 0.0001
gamma = 0.95
weight_decay = 0.0001
adam_epsilon = 1e-8
warmup_steps = 0
hidden_dim_base = 64
max_steps_per_epoch = 200
reward_scale = 1.0
huber_delta = 1.0
lr_decay_type = 2
lr_min = 0.00001
[distributional]
num_atoms = 51
[exploration]
epsilon_start = 1.0
epsilon_end = 0.05
epsilon_decay = 0.85
noisy_sigma_init = 0.3
entropy_coefficient = 0.001
count_bonus_coefficient = 0.1
q_gap_threshold = 0.05
[replay_buffer]
buffer_size = 50000
min_replay_size = 500
[early_stopping]
enabled = true
patience = 20
min_epochs_before_stopping = 80
[experience]
gpu_n_episodes = 64
gpu_timesteps_per_episode = 200
min_hold_bars = 3
[experience.fill_simulation]
ioc_fill_prob = 0.85
limit_fill_min = 0.30
limit_fill_max = 0.80
spread_cost_frac = 0.50
spread_capture_frac = 0.50
[risk]
max_position = 2.0
loss_aversion = 1.5
q_clip_min = -50.0
q_clip_max = 50.0
[advanced]
n_steps = 3
tau = 0.005
c51_warmup_epochs = 5
her_ratio = 0.2
cql_alpha = 0.1
curiosity_weight = 0.1
iqn_lambda = 0.25
spectral_norm_sigma_max = 1.5
gradient_clip_norm = 1.0
[reward]
loss_aversion = 1.5
q_gap_threshold = 0.1