quantrs2_device/ml_optimization/
config.rs1use scirs2_core::ndarray::Array1;
4use serde::{Deserialize, Serialize};
5use std::collections::HashMap;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct MLOptimizationConfig {
10 pub enable_optimization: bool,
12 pub model_config: MLModelConfig,
14 pub feature_extraction: FeatureExtractionConfig,
16 pub hardware_prediction: HardwarePredictionConfig,
18 pub online_learning: OnlineLearningConfig,
20 pub transfer_learning: TransferLearningConfig,
22 pub ensemble_config: EnsembleConfig,
24 pub optimization_strategy: OptimizationStrategyConfig,
26 pub validation_config: MLValidationConfig,
28 pub monitoring_config: MLMonitoringConfig,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct MLModelConfig {
35 pub primary_algorithms: Vec<MLAlgorithm>,
37 pub fallback_algorithms: Vec<MLAlgorithm>,
39 pub hyperparameters: HashMap<String, MLHyperparameter>,
41 pub training_config: TrainingConfig,
43 pub model_selection: ModelSelectionStrategy,
45 pub regularization: RegularizationConfig,
47}
48
49#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
51pub enum MLAlgorithm {
52 DeepNeuralNetwork,
54 RandomForest,
56 GradientBoosting,
58 SupportVectorMachine,
60 GaussianProcess,
62 EnsembleMethods,
64 ReinforcementLearning,
66 QuantumNeuralNetwork,
68 GraphNeuralNetwork,
70 TransformerNetwork,
72 BayesianNetwork,
74 Custom(String),
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80pub struct MLHyperparameter {
81 pub parameter_type: HyperparameterType,
82 pub value: HyperparameterValue,
83 pub search_space: Option<HyperparameterSearchSpace>,
84 pub importance: f64,
85}
86
87#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
89pub enum HyperparameterType {
90 Integer,
91 Float,
92 Categorical,
93 Boolean,
94 Array,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
99pub enum HyperparameterValue {
100 Integer(i64),
101 Float(f64),
102 Categorical(String),
103 Boolean(bool),
104 Array(Array1<f64>),
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize)]
109pub enum HyperparameterSearchSpace {
110 IntegerRange(i64, i64),
111 FloatRange(f64, f64),
112 CategoricalOptions(Vec<String>),
113 BooleanOptions,
114 ArrayBounds(Vec<(f64, f64)>),
115}
116
117#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
119pub enum ModelSelectionStrategy {
120 CrossValidation,
121 HoldoutValidation,
122 BootstrapValidation,
123 TimeSeriesValidation,
124 BayesianModelSelection,
125 EnsembleSelection,
126}
127
128use super::{
130 ensemble::EnsembleConfig,
131 features::FeatureExtractionConfig,
132 hardware::HardwarePredictionConfig,
133 monitoring::MLMonitoringConfig,
134 online_learning::OnlineLearningConfig,
135 optimization::OptimizationStrategyConfig,
136 training::{RegularizationConfig, TrainingConfig},
137 transfer_learning::TransferLearningConfig,
138 validation::MLValidationConfig,
139};