Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.ml.application.vqc

Variational Quantum Classifier (VQC) implementation.

VQC is a quantum machine learning algorithm that uses parameterized quantum circuits to perform classification tasks. It combines feature maps for encoding classical data with variational ansatzes optimized to maximize classification accuracy.

Key Features:

  • Multiple feature map types (angle, amplitude, basis, IQP)
  • Integration with existing ansatz types from QClojure
  • Classification-specific objective functions and metrics
  • Support for binary and multi-class classification
  • Comprehensive analysis including confusion matrix and decision boundaries

Algorithm Flow:

  1. Encode classical features using quantum feature maps
  2. Apply parameterized ansatz circuit
  3. Measure classification outputs
  4. Optimize parameters to maximize classification accuracy
  5. Analyze results and performance metrics

This implementation is designed for production use with real quantum hardware.

Variational Quantum Classifier (VQC) implementation.

VQC is a quantum machine learning algorithm that uses parameterized quantum circuits 
to perform classification tasks. It combines feature maps for encoding classical data
with variational ansatzes optimized to maximize classification accuracy.

Key Features:
- Multiple feature map types (angle, amplitude, basis, IQP)
- Integration with existing ansatz types from QClojure
- Classification-specific objective functions and metrics
- Support for binary and multi-class classification
- Comprehensive analysis including confusion matrix and decision boundaries

Algorithm Flow:
1. Encode classical features using quantum feature maps
2. Apply parameterized ansatz circuit
3. Measure classification outputs
4. Optimize parameters to maximize classification accuracy
5. Analyze results and performance metrics

This implementation is designed for production use with real quantum hardware.
raw docstring

calculate-classification-metricsclj

(calculate-classification-metrics predicted-labels true-labels num-classes)

Calculate comprehensive classification metrics from predictions and true labels.

Parameters:

  • predicted-labels: Vector of predicted class labels
  • true-labels: Vector of true class labels
  • num-classes: Number of classes

Returns: Map with accuracy, confusion matrix, precision, recall, and F1-score

Calculate comprehensive classification metrics from predictions and true labels.

Parameters:
- predicted-labels: Vector of predicted class labels
- true-labels: Vector of true class labels
- num-classes: Number of classes

Returns:
Map with accuracy, confusion matrix, precision, recall, and F1-score
sourceraw docstring

create-feature-mapclj

(create-feature-map feature-map-type num-features num-qubits options)

Create a feature map function for encoding classical data into quantum states.

Feature maps are crucial for VQC as they determine how classical data is encoded into quantum states. Different feature map types are suitable for different data characteristics and classification tasks.

Parameters:

  • feature-map-type: Type of feature map (:angle, :amplitude, :basis, :iqp, :custom)
  • num-features: Number of features in the input data
  • num-qubits: Number of qubits available for feature encoding
  • options: Additional options specific to the feature map type

Returns: Function that takes (feature-vector, circuit) and returns encoded circuit

Examples: ;; Angle encoding for continuous features (create-feature-map :angle 4 4 {:gate-type :ry})

;; Amplitude encoding for normalized features (create-feature-map :amplitude 4 2 {})

;; IQP encoding for complex feature interactions (create-feature-map :iqp 4 2 {})

Create a feature map function for encoding classical data into quantum states.

Feature maps are crucial for VQC as they determine how classical data is encoded
into quantum states. Different feature map types are suitable for different 
data characteristics and classification tasks.

Parameters:
- feature-map-type: Type of feature map (:angle, :amplitude, :basis, :iqp, :custom)
- num-features: Number of features in the input data
- num-qubits: Number of qubits available for feature encoding
- options: Additional options specific to the feature map type

Returns:
Function that takes (feature-vector, circuit) and returns encoded circuit

Examples:
;; Angle encoding for continuous features
(create-feature-map :angle 4 4 {:gate-type :ry})

;; Amplitude encoding for normalized features
(create-feature-map :amplitude 4 2 {})

;; IQP encoding for complex feature interactions
(create-feature-map :iqp 4 2 {})
sourceraw docstring

extract-classification-from-measurementsclj

(extract-classification-from-measurements measurement-result num-classes shots)

Extract classification predictions from measurement frequency data.

This function converts measurement results to classification predictions.

Parameters:

  • measurement-result: measurement result map with :frequencies and :measurement-outcomes
  • num-classes: Number of classification classes
  • shots: Total number of measurement shots

Returns: Map with classification probabilities and predicted label

Extract classification predictions from measurement frequency data.

This function converts measurement results to classification predictions.

Parameters:
- measurement-result: measurement result map with :frequencies and :measurement-outcomes
- num-classes: Number of classification classes
- shots: Total number of measurement shots

Returns:
Map with classification probabilities and predicted label
sourceraw docstring

variational-quantum-classifierclj

(variational-quantum-classifier backend options)

Train a Variational Quantum Classifier (VQC) using the enhanced variational algorithm template.

This function configures and executes quantum classifier training with the following architecture:

  • Feature mapping layer (encode classical data into quantum states)
  • Parameterized ansatz layers (trainable quantum circuit)
  • Measurement layer (extract classification predictions)

The training process:

  1. Encodes training features into quantum states
  2. Applies parameterized quantum circuits
  3. Measures results and extracts class predictions
  4. Optimizes circuit parameters to minimize classification loss

Parameters:

  • backend: Quantum backend for circuit execution
  • options: Configuration map with required and optional keys

Required options:

  • :training-data - Map with :features and :labels vectors
  • :num-features - Number of input features per sample
  • :num-classes - Number of classification classes

Optional options (with defaults):

  • :feature-map-type - Type of feature encoding (:angle, :amplitude, :iqp) [default: :angle]
  • :ansatz-type - Type of parameterized circuit (:hardware-efficient, :real-amplitudes) [default: :hardware-efficient]
  • :num-layers - Number of ansatz repetitions [default: 2]
  • :loss-type - Loss function type (:accuracy, :cross-entropy, :hinge) [default: :accuracy]
  • :optimization-method - Optimizer to use (:adam, :cmaes, :nelder-mead) [default: :cmaes]
  • :max-iterations - Maximum training iterations [default: 50]
  • :shots - Number of measurement shots [default: 1024]

Returns: Map containing trained model and analysis results:

  • :success - Training completion status
  • :optimal-parameters - Trained circuit parameters
  • :training-accuracy - Final training accuracy
  • :confusion-matrix - Classification confusion matrix
  • :class-probabilities - Per-class prediction probabilities
  • :iterations - Number of iterations performed
  • :convergence-history - Loss values over iterations
  • :total-runtime-ms - Total training time

Example:

(variational-quantum-classifier 
  backend
  {:training-data {:features [[0.1 0.2] [0.8 0.9]]
                   :labels [0 1]}
   :num-features 2
   :num-classes 2
   :feature-map-type :angle
   :ansatz-type :hardware-efficient
   :num-layers 2
   :optimization-method :cmaes
   :max-iterations 50
   :shots 1024})
Train a Variational Quantum Classifier (VQC) using the enhanced variational algorithm template.

This function configures and executes quantum classifier training with the following architecture:
- Feature mapping layer (encode classical data into quantum states)
- Parameterized ansatz layers (trainable quantum circuit)
- Measurement layer (extract classification predictions)

The training process:
1. Encodes training features into quantum states
2. Applies parameterized quantum circuits
3. Measures results and extracts class predictions
4. Optimizes circuit parameters to minimize classification loss

Parameters:
- backend: Quantum backend for circuit execution
- options: Configuration map with required and optional keys

Required options:
- :training-data - Map with :features and :labels vectors
- :num-features - Number of input features per sample
- :num-classes - Number of classification classes

Optional options (with defaults):
- :feature-map-type - Type of feature encoding (:angle, :amplitude, :iqp) [default: :angle]
- :ansatz-type - Type of parameterized circuit (:hardware-efficient, :real-amplitudes) [default: :hardware-efficient]
- :num-layers - Number of ansatz repetitions [default: 2]
- :loss-type - Loss function type (:accuracy, :cross-entropy, :hinge) [default: :accuracy]
- :optimization-method - Optimizer to use (:adam, :cmaes, :nelder-mead) [default: :cmaes]
- :max-iterations - Maximum training iterations [default: 50]
- :shots - Number of measurement shots [default: 1024]

Returns:
Map containing trained model and analysis results:
- :success - Training completion status
- :optimal-parameters - Trained circuit parameters
- :training-accuracy - Final training accuracy
- :confusion-matrix - Classification confusion matrix
- :class-probabilities - Per-class prediction probabilities
- :iterations - Number of iterations performed
- :convergence-history - Loss values over iterations
- :total-runtime-ms - Total training time

Example:
```clojure
(variational-quantum-classifier 
  backend
  {:training-data {:features [[0.1 0.2] [0.8 0.9]]
                   :labels [0 1]}
   :num-features 2
   :num-classes 2
   :feature-map-type :angle
   :ansatz-type :hardware-efficient
   :num-layers 2
   :optimization-method :cmaes
   :max-iterations 50
   :shots 1024})
sourceraw docstring

vqc-circuit-constructorclj

(vqc-circuit-constructor config)

Create circuit constructor function for VQC from configuration.

This function creates a circuit constructor that combines feature encoding with a variational ansatz. The resulting function takes parameters and a feature vector, returning a complete VQC circuit.

Parameters:

  • config: VQC configuration map with ansatz and feature map settings

Returns: Function that takes (parameters, feature-vector) and returns a quantum circuit

Create circuit constructor function for VQC from configuration.

This function creates a circuit constructor that combines feature encoding
with a variational ansatz. The resulting function takes parameters and a
feature vector, returning a complete VQC circuit.

Parameters:
- config: VQC configuration map with ansatz and feature map settings

Returns:
Function that takes (parameters, feature-vector) and returns a quantum circuit
sourceraw docstring

vqc-data-constructorclj

(vqc-data-constructor config)

Extract training data from VQC configuration for the variational algorithm template.

This function adapts the VQC data format to work with the variational algorithm template, which expects a single data source rather than separate training data.

Parameters:

  • config: VQC configuration map containing :training-data

Returns: Training data map with features and labels

Extract training data from VQC configuration for the variational algorithm template.

This function adapts the VQC data format to work with the variational algorithm template,
which expects a single data source rather than separate training data.

Parameters:
- config: VQC configuration map containing :training-data

Returns:
Training data map with features and labels
sourceraw docstring

vqc-loss-functionclj

(vqc-loss-function loss-type)

Create a loss function for VQC classification that works with the enhanced template.

This function computes classification loss based on predictions and true labels. It supports cross-entropy and hinge loss for binary and multi-class classification.

Parameters:

  • loss-type: Type of loss function (:cross-entropy, :hinge, :accuracy)

Returns: Function that takes (predictions, labels) and returns loss value

Create a loss function for VQC classification that works with the enhanced template.

This function computes classification loss based on predictions and true labels.
It supports cross-entropy and hinge loss for binary and multi-class classification.

Parameters:
- loss-type: Type of loss function (:cross-entropy, :hinge, :accuracy)

Returns:
Function that takes (predictions, labels) and returns loss value
sourceraw docstring

vqc-measurement-objectiveclj

(vqc-measurement-objective training-data
                           circuit-construction-fn
                           backend
                           execution-options
                           num-classes)

Create a VQC objective function using hardware-compatible measurement result specs.

This function uses the result specification framework to request measurement counts directly, making it compatible with real quantum hardware.

Parameters:

  • training-data: Map with :features and :labels
  • circuit-construction-fn: Function creating VQC circuits
  • backend: Quantum backend
  • execution-options: Execution options including shots
  • num-classes: Number of classification classes

Returns: Objective function that returns negative accuracy for minimization

Create a VQC objective function using hardware-compatible measurement result specs.

This function uses the result specification framework to request measurement
counts directly, making it compatible with real quantum hardware.

Parameters:
- training-data: Map with :features and :labels
- circuit-construction-fn: Function creating VQC circuits
- backend: Quantum backend
- execution-options: Execution options including shots
- num-classes: Number of classification classes

Returns:
Objective function that returns negative accuracy for minimization
sourceraw docstring

vqc-parameter-countclj

(vqc-parameter-count config)

Calculate required parameter count for VQC ansatz configuration.

This function determines how many parameters are needed for the specified ansatz type and configuration, independent of the feature map.

Parameters:

  • config: VQC configuration map with ansatz settings

Returns: Number of parameters required for the ansatz

Calculate required parameter count for VQC ansatz configuration.

This function determines how many parameters are needed for the specified
ansatz type and configuration, independent of the feature map.

Parameters:
- config: VQC configuration map with ansatz settings

Returns:
Number of parameters required for the ansatz
sourceraw docstring

vqc-prediction-extractorclj

(vqc-prediction-extractor measurement-result num-classes shots)

Extract classification prediction from measurement result for enhanced template.

This function is designed to work with the enhanced-variational-algorithm template's prediction extraction infrastructure.

Parameters:

  • measurement-result: Measurement result map with :frequencies
  • num-classes: Number of classification classes

Returns: Predicted class label (integer)

Extract classification prediction from measurement result for enhanced template.

This function is designed to work with the enhanced-variational-algorithm template's
prediction extraction infrastructure.

Parameters:
- measurement-result: Measurement result map with :frequencies
- num-classes: Number of classification classes

Returns:
Predicted class label (integer)
sourceraw docstring

vqc-result-processorclj

(vqc-result-processor optimization-result config)

Process VQC results with hardware-compatible classification metrics.

This processor extracts classification performance metrics from the optimization results and adds VQC-specific analysis.

Parameters:

  • optimization-result: Result from variational optimization
  • config: VQC configuration

Returns: Enhanced result map with classification metrics

Process VQC results with hardware-compatible classification metrics.

This processor extracts classification performance metrics from the
optimization results and adds VQC-specific analysis.

Parameters:
- optimization-result: Result from variational optimization
- config: VQC configuration

Returns:
Enhanced result map with classification metrics
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close