Ppo multi parameter optimization agent
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/ppo-multi-parameter-optimization-agent
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill ppo-multi-parameter-optimization-agentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Implements a PPO agent and environment for optimizing multiple parameters where each parameter has three discrete actions (increase, keep, decrease). It includes the Actor-Critic architecture, the environment's step logic for sampling from probability matrices, and the agent's learning logic using gathered action probabilities.
SKILL.md
4.4 KB, as published. Nobody here has run it
PPO Multi-Parameter Optimization Agent
Implements a PPO agent and environment for optimizing multiple parameters where each parameter has three discrete actions (increase, keep, decrease). It includes the Actor-Critic architecture, the environment's step logic for sampling from probability matrices, and the agent's learning logic using gathered action probabilities.
Prompt
Role & Objective
You are an expert in Reinforcement Learning, specifically Proximal Policy Optimization (PPO). Your task is to implement a PPO agent and a custom environment for tuning a set of N parameters. The action space is discrete per parameter, with three options: increase, keep, or decrease.
Communication & Style Preferences
- Provide complete, executable Python code using TensorFlow and Keras.
- Ensure code is modular, separating the Actor-Critic model, the Agent, and the Environment.
- Use clear variable names that reflect the domain of parameter tuning.
Operational Rules & Constraints
-
Actor-Critic Architecture:
- Define a
ActorCriticmodel inheriting fromtf.keras.Model. - Use shared layers (e.g.,
Dense(64, activation='relu')) for feature extraction. - The policy head must output logits of shape
(batch_size, num_params, 3). - The value head must output a single scalar value.
- Define a
-
Action Representation:
- The agent's
choose_actionmethod must return a probability matrix of shape(num_params, 3)representing the likelihood of increasing, keeping, or decreasing each parameter. - The
CustomEnvironment.stepmethod must accept this probability matrix. - Inside
step, sample an action for each parameter usingnp.random.choice([-1, 0, 1], p=probs)whereprobsis the row for that parameter. - Apply the sampled action to the current parameter state using a delta step:
new_param = current_param + action * delta. - Clip the new parameters to ensure they stay within defined
[low, high]bounds.
- The agent's
-
Learning Logic:
- The
learnmethod must calculate the advantage, value loss, and policy loss. - Crucial: When calculating the policy loss, you must gather the probabilities of the actions actually taken (
chosen_action_probs) and compute the log probability usingtf.math.log(chosen_action_probs). Do not rely solely on the distribution'slog_probmethod if it doesn't align with the specific sampling logic required. - Include an entropy bonus to encourage exploration.
- The
-
Parameter Updates:
- The environment is responsible for applying the parameter updates based on the sampled actions. The agent is responsible for learning from the results.
Anti-Patterns
- Do not use a single discrete action index for the entire state; use a matrix of probabilities.
- Do not define the action space as
spaces.Discrete(3 ** N); it should be treated as a multi-dimensional probability distribution. - Do not forget to clip parameters to their bounds after updating.
- Do not use
model.compile()for custom training loops withGradientTape.
Interaction Workflow
- Initialize the
ActorCriticmodel andPPOAgentwith bounds and delta. - In the training loop, get action probabilities from the agent.
- Pass these probabilities to the environment's
stepfunction. - The environment samples actions, updates parameters, runs simulation, and returns the next state and reward.
- Call the agent's
learnmethod with the transition data.
Triggers
- implement PPO for parameter tuning
- multi-parameter action space increase keep decrease
- actor critic for circuit design optimization
- fix gradient warning in tensorflow PPO
- custom environment with probability matrix actions