src.baseline.metabbo.symbol¶
Module Contents¶
Classes¶
Introduction¶The paper “SYMBOL: Generating Flexible Black-Box Optimizers through Symbolic Equation Learning” introduces a novel framework, SYMBOL, designed to automate the discovery of advanced black-box optimizers using symbolic equation learning. Unlike traditional Meta-Black-Box Optimization (MetaBBO) methods that rely on predefined, hand-crafted optimizers, SYMBOL employs a Symbolic Equation Generator (SEG) to dynamically produce closed-form optimization rules tailored to specific tasks and optimization steps. The framework incorporates reinforcement learning-based strategies to efficiently meta-learn these symbolic rules. |
|
Functions¶
API¶
- class src.baseline.metabbo.symbol.Critic(fea_dim, value_dim)[source]¶
Bases:
torch.nn.ModuleInitialization
- class src.baseline.metabbo.symbol.SYMBOL(config)[source]¶
Bases:
src.rl.ppo.PPO_AgentIntroduction¶
The paper “SYMBOL: Generating Flexible Black-Box Optimizers through Symbolic Equation Learning” introduces a novel framework, SYMBOL, designed to automate the discovery of advanced black-box optimizers using symbolic equation learning. Unlike traditional Meta-Black-Box Optimization (MetaBBO) methods that rely on predefined, hand-crafted optimizers, SYMBOL employs a Symbolic Equation Generator (SEG) to dynamically produce closed-form optimization rules tailored to specific tasks and optimization steps. The framework incorporates reinforcement learning-based strategies to efficiently meta-learn these symbolic rules.
Original Paper¶
“Symbol: Generating Flexible Black-Box Optimizers through Symbolic Equation Learning.” The Twelfth International Conference on Learning Representations. (2024)
Official Implementation¶
Application Scenario¶
single-object optimization problems(SOOP)
Args:¶
`config`: Configuration object containing all necessary parameters for experiment.For details you can visit config.py.Attributes:¶
config (object): Configuration object with various hyperparameters and settings. tokenizer (MyTokenizer): Tokenizer instance used for processing sequences. actor (LSTM): Actor network for generating actions. critic (Critic): Critic network for evaluating states. optimizer (torch.optim.Optimizer): Optimizer for training the actor and critic networks. learning_time (int): Counter for the number of learning steps performed. cur_checkpoint (int): Counter for the current checkpoint during training.
Methods:¶
__str__(): Returns the string representation of the class. train_episode(envs, seeds, para_mode='dummy', compute_resource={}, tb_logger=None, required_info={}): Trains the agent for one episode using the provided environments. Args: envs (list): List of environments for training. seeds (Optional[Union[int, List[int], np.ndarray]]): Seeds for environment initialization. para_mode (Literal['dummy', 'subproc', 'ray', 'ray-subproc']): Parallelization mode. compute_resource (dict): Resources for computation (e.g., CPUs, GPUs). tb_logger (object): TensorBoard logger for logging training metrics. required_info (dict): Additional information required from the environment. Returns: Tuple[bool, dict]: A tuple containing a boolean indicating if training has ended and a dictionary with training information. rollout_episode(env, seed=None, required_info={}): Executes a single rollout episode in the given environment. Args: env (object): Environment for the rollout. seed (Optional[int]): Seed for environment initialization. required_info (dict): Additional information required from the environment. Returns: dict: A dictionary containing rollout results.
Returns:¶
NoneRaises:¶
AssertionError: If a NaN value is found in the loss during training.Initialization
Initializes the PPO agent with the given configuration, networks, and learning rates.Store the initial agent in the checkpoint directory.
Args:¶
config: Configuration object containing all necessary parameters for the experiment.
networks (dict): A dictionary of neural networks used by the agent.
learning_rates (float): Learning rate for the optimizer.
- class src.baseline.metabbo.symbol.LSTM(max_layer, hidden_dim, num_layers, max_c, min_c, fea_dim, c_interval, tokenizer)[source]¶
Bases:
torch.nn.ModuleInitialization
- class src.baseline.metabbo.symbol.MyTokenizer[source]¶
Bases:
src.baseline.metabbo.symbol.TokenizerInitialization
- src.baseline.metabbo.symbol.get_along_continuous_plus_with_minus(tokenizer, seq, begin, visited)[source]¶
- src.baseline.metabbo.symbol.prefix_to_infix(expr, constants, tokenizer: src.baseline.metabbo.symbol.Tokenizer)[source]¶