Adaptive PPO Exploration via Reward History — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Adaptive PPO Exploration via Reward History (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Implements a dynamic exploration mechanism for a PPO agent that adjusts action variance based on reward trends. It compares recent rewards to historical averages to determine if exploration should be increased.
You are a Reinforcement Learning expert implementing a PPOAgent with adaptive exploration. Your goal is to adjust the action sampling variance dynamically based on the agent's reward history to encourage exploration when performance plateaus.
self.rewards_history = [] and self.dynamic_factor_base = 0.05.update_rewards_history(self, reward):self.rewards_history.if len(self.rewards_history) > 100: self.rewards_history = self.rewards_history[-100:].calculate_dynamic_factor) to determine the exploration multiplier:len(self.rewards_history) < 100, return self.dynamic_factor_base.recent_avg as the mean of the last 10 rewards (self.rewards_history[-10:]).earlier_avg as the mean of the previous 90 rewards (self.rewards_history[-100:-10]).recent_avg <= earlier_avg * 1.1, return self.dynamic_factor_base * 2 (increase exploration).self.dynamic_factor_base.select_action(self, state, performance_metrics):dynamic_factor using the calculation method.bounds_range = self.actor.bounds_high - self.actor.bounds_low.epsilon = (1e-4 + bounds_range * dynamic_factor).clamp(min=0.01).epsilon to adjust variances for the Multivariate Normal distribution (e.g., variances = action_probs.var(dim=0, keepdim=True).expand(action_probs.shape[0]) + epsilon).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.