mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-15 03:12:03 +00:00
fix(training): cut grounded_upright_reward, restart stage-4 from Stage-3 foundation
grounded_upright_reward at 0.015 overshot: four force-retries pushed upright_fraction from 0.265 to a plateauing 0.331, then the fifth jumped it to 0.696 (55% over the 0.45 floor) while goal_rate collapsed 0.542->0.366 and forward_motion_fraction fell 0.244->0.184 (vertical_thrust_mean went negative) - the policy learned to sit pinned upright and farm the bonus instead of chasing the ball. It was sized "comparable to time_penalty/ball_distance_penalty" but at 0.015/tick it was actually above ball_distance_penalty's 0.01/tick worst case, so idling near the ball beat playing. Cut to 0.004/tick (episode ceiling ~7.2, below ball_distance_penalty's ~18 worst case). Delete the five blocked attempts and reset generation5_state.json so the next run starts fresh from the Stage-3 foundation rather than continuing from the farming checkpoint.
This commit is contained in:
+18
-1
@@ -58,6 +58,23 @@ STANDING_ARGS = ["--ent-coef", "0.01", "--entropy-floor"]
|
||||
# reward is the positive counterpart: a bonus for genuine floor contact
|
||||
# (not just low altitude) while upright, so grounding well is the locally
|
||||
# profitable choice rather than merely the least-punished one.
|
||||
#
|
||||
# Round 2 (2026-08-11): grounded_upright_reward at 0.015 overshot. Four
|
||||
# force-retries pushed upright_fraction from 0.265 to a plateauing 0.331,
|
||||
# then the fifth jumped it to 0.696 (55% over the 0.45 floor) while
|
||||
# goal_rate collapsed 0.542->0.366 and forward_motion_fraction fell
|
||||
# 0.244->0.184 — the ship learned to sit pinned upright on the floor
|
||||
# (vertical_thrust_mean went negative) and farm the bonus instead of
|
||||
# playing. Root cause: 0.015/tick was actually *larger* than
|
||||
# ball_distance_penalty's worst case (0.01/tick), so idling near the ball
|
||||
# beat chasing it — not "comparable to time_penalty/ball_distance_penalty"
|
||||
# as originally sized. Cut to 0.004/tick (a full grounded episode now caps
|
||||
# at ~7.2, versus ball_distance_penalty's worst-case ~18 and a single goal's
|
||||
# 80) — enough to stop "avoid the floor" without being worth farming over
|
||||
# actually playing. Resets from the Stage-3 foundation again rather than
|
||||
# continuing from the farming checkpoint, same reasoning as the ground_tilt/
|
||||
# non_forward_penalty retune: don't resume a policy shaped by one reward
|
||||
# balance into a meaningfully different one.
|
||||
HANDLING_REWARD_FLAGS = [
|
||||
"--velocity-to-ball-weight", "0.04",
|
||||
"--forward-velocity-to-ball-weight", "0.06",
|
||||
@@ -69,7 +86,7 @@ HANDLING_REWARD_FLAGS = [
|
||||
"--tilt-penalty", "0.0002",
|
||||
"--ground-tilt-penalty", "0.05",
|
||||
"--non-forward-penalty", "0.04",
|
||||
"--grounded-upright-reward", "0.015",
|
||||
"--grounded-upright-reward", "0.004",
|
||||
]
|
||||
|
||||
STAGES = [
|
||||
|
||||
Reference in New Issue
Block a user