quantrs2_device/ml_optimization/
transfer_learning.rs

1//! Transfer Learning Configuration Types
2
3use serde::{Deserialize, Serialize};
4
5/// Transfer learning configuration
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct TransferLearningConfig {
8    /// Enable transfer learning
9    pub enable_transfer_learning: bool,
10    /// Source domains
11    pub source_domains: Vec<String>,
12    /// Transfer methods
13    pub transfer_methods: Vec<TransferMethod>,
14    /// Domain adaptation
15    pub domain_adaptation: DomainAdaptationConfig,
16    /// Meta-learning
17    pub meta_learning: MetaLearningConfig,
18}
19
20/// Transfer learning methods
21#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
22pub enum TransferMethod {
23    FeatureTransfer,
24    ParameterTransfer,
25    InstanceTransfer,
26    RelationalTransfer,
27    DomainAdversarial,
28    FewShotLearning,
29}
30
31/// Domain adaptation configuration
32#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct DomainAdaptationConfig {
34    /// Enable domain adaptation
35    pub enable_adaptation: bool,
36    /// Adaptation methods
37    pub adaptation_methods: Vec<DomainAdaptationMethod>,
38    /// Source-target similarity threshold
39    pub similarity_threshold: f64,
40    /// Maximum domain gap
41    pub max_domain_gap: f64,
42}
43
44/// Domain adaptation methods
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
46pub enum DomainAdaptationMethod {
47    CausalInference,
48    DistributionMatching,
49    AdversarialTraining,
50    GradientReversal,
51    CORAL,
52}
53
54/// Meta-learning configuration
55#[derive(Debug, Clone, Serialize, Deserialize)]
56pub struct MetaLearningConfig {
57    /// Enable meta-learning
58    pub enable_meta_learning: bool,
59    /// Meta-learning algorithms
60    pub meta_algorithms: Vec<MetaLearningAlgorithm>,
61    /// Inner loop iterations
62    pub inner_loop_iterations: usize,
63    /// Outer loop iterations
64    pub outer_loop_iterations: usize,
65}
66
67/// Meta-learning algorithms
68#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
69pub enum MetaLearningAlgorithm {
70    MAML,
71    Reptile,
72    ProtoNet,
73    RelationNet,
74    MatchingNet,
75}