quantrs2_ml/quantum_self_supervised_learning/
quantumselfsupervisedconfig_traits.rs1use scirs2_core::random::prelude::*;
12
13use super::types::{
14 ClusteringConfig, ContrastiveConfig, ContrastiveLossFunction, MaskEvolutionType, MaskStrategy,
15 MaskedLearningConfig, MomentumConfig, NegativePairStrategy, PositivePairStrategy,
16 PrototypeUpdateStrategy, QuantumAssignmentMethod, QuantumClusteringMethod,
17 QuantumMaskEvolution, QuantumProjector, QuantumSSLMethod, QuantumSelfSupervisedConfig,
18 ReconstructionTarget, TargetNetworkUpdate, TemperatureScheduling,
19};
20
21impl Default for QuantumSelfSupervisedConfig {
22 fn default() -> Self {
23 Self {
24 input_dim: 64,
25 representation_dim: 128,
26 num_qubits: 8,
27 ssl_method: QuantumSSLMethod::QuantumSimCLR {
28 batch_size: 256,
29 augmentation_strength: 0.5,
30 quantum_projector: QuantumProjector {
31 projection_layers: Vec::new(),
32 output_normalization: true,
33 quantum_enhancement: 1.0,
34 },
35 },
36 quantum_enhancement_level: 1.0,
37 temperature: 0.1,
38 momentum_coefficient: 0.999,
39 use_quantum_augmentations: true,
40 enable_entanglement_similarity: true,
41 contrastive_config: ContrastiveConfig {
42 positive_pair_strategy: PositivePairStrategy::Augmentation,
43 negative_pair_strategy: NegativePairStrategy::Random,
44 loss_function: ContrastiveLossFunction::InfoNCE,
45 temperature_scheduling: TemperatureScheduling::Fixed,
46 },
47 masked_learning_config: MaskedLearningConfig {
48 mask_ratio: 0.15,
49 mask_strategy: MaskStrategy::Random,
50 reconstruction_target: ReconstructionTarget::RawPixels,
51 quantum_mask_evolution: QuantumMaskEvolution {
52 evolution_type: MaskEvolutionType::Static,
53 adaptation_rate: 0.01,
54 quantum_coherence_preservation: 0.9,
55 },
56 },
57 momentum_config: MomentumConfig {
58 momentum_coefficient: 0.999,
59 target_network_update: TargetNetworkUpdate::Soft,
60 quantum_momentum_preservation: 0.9,
61 },
62 clustering_config: ClusteringConfig {
63 num_clusters: 256,
64 clustering_method: QuantumClusteringMethod::QuantumKMeans,
65 prototype_update_strategy: PrototypeUpdateStrategy::MovingAverage,
66 quantum_assignment_method: QuantumAssignmentMethod::SoftAssignment,
67 },
68 }
69 }
70}