- 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>
74 lines
1.4 KiB
TOML
74 lines
1.4 KiB
TOML
# 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
|