Overview

The main optimization interface that coordinates multi-agent hyperparameter search using reinforcement learning.

️ Initialization

python
from MAT_HPO_LIB import MAT_HPO_Optimizer
from MAT_HPO_LIB.utils import DefaultConfigs

optimizer = MAT_HPO_Optimizer(
    environment=your_environment,
    hyperparameter_space=your_space,
    config=DefaultConfigs.standard()
)

Parameters

Constructor Parameters

  • environment: Your BaseEnvironment implementation
  • hyperparameter_space: HyperparameterSpace defining search bounds
  • config: OptimizationConfig with optimization settings

Main Method

optimize()

optimize() -> Dict[str, Any]

Run the multi-agent hyperparameter optimization.

python
results = optimizer.optimize()

# Results dictionary contains:
print(results['best_hyperparameters'])  # Best params found
print(results['best_performance'])      # Best reward/score
print(results['optimization_history'])  # History of all evaluations

Results Structure

python
{
    'best_hyperparameters': {
        'learning_rate': 0.0034,
        'hidden_size': 128,
        'batch_size': 64
    },
    'best_performance': 0.9234,
    'optimization_history': [
        {'step': 1, 'hyperparams': {...}, 'reward': 0.85},
        {'step': 2, 'hyperparams': {...}, 'reward': 0.87},
        # ... all evaluation steps
    ],
    'total_steps': 100,
    'convergence_info': {...}
}

Output Files

Optimization results are automatically saved to:

  • best_hyperparams.json - Best hyperparameters found
  • optimization_results.json - Complete results dictionary
  • step_log.jsonl - Step-by-step evaluation log

Complete Example

python
from MAT_HPO_LIB import MAT_HPO_Optimizer, BaseEnvironment, HyperparameterSpace
from MAT_HPO_LIB.utils import DefaultConfigs

# 1. Setup environment and space
environment = MyEnvironment()
space = HyperparameterSpace()
space.add_continuous('class_weight_0', 0.5, 3.0, agent=0)  # Problem-specific
space.add_continuous('hidden_size', 64, 512, agent=1)  # Architecture
space.add_continuous('learning_rate', 1e-4, 1e-2, agent=2)  # Training
space.add_discrete('batch_size', [16, 32, 64, 128], agent=2)  # Training

# 2. Configure optimization
config = DefaultConfigs.standard()  # 100 steps

# 3. Run optimization
optimizer = MAT_HPO_Optimizer(environment, space, config)
results = optimizer.optimize()

# 4. Use best hyperparameters
best_params = results['best_hyperparameters']
print(f"Best learning rate: {best_params['learning_rate']}")
print(f"Best performance: {results['best_performance']}")