Entangling Feature Maps

Pauli Feature Map

Generalized feature map with configurable Pauli rotation strings for custom feature interactions.

Qubits

4

Depth

10

Total Gates

52

Simulability

Not simulable

Mathematical Formulation

UΦ(x)=S[n]exp(iϕS(x)kSPk),Pk{X,Y,Z}U_{\Phi}(\mathbf{x}) = \prod_{S \subseteq [n]} \exp\left(i \phi_S(\mathbf{x}) \prod_{k \in S} P_k\right), \quad P_k \in \{X, Y, Z\}

Description

The Pauli Feature Map generalizes the ZZ Feature Map by allowing arbitrary Pauli operator strings for both single-qubit and two-qubit interactions. Instead of being restricted to Z-basis operations, the encoding supports any combination of Pauli operators (X, Y, Z) in both single and two-qubit terms, enabling richer and more flexible feature maps.

Each layer applies Hadamard gates for superposition, then single-qubit Pauli rotations (e.g., RZ, RX, RY) with feature-dependent angles, followed by two-qubit Pauli interaction gates (e.g., ZZ, XX, YY, XZ). The two-qubit terms are decomposed into CNOT gates with basis-change rotations when non-Z Paulis are involved, increasing circuit depth for X and Y terms.

This flexibility makes the Pauli Feature Map the most versatile entangling encoding in the library, suitable for research applications where custom feature interaction kernels are needed. The default configuration uses ["Z", "ZZ"] Pauli strings, which is equivalent to the ZZ Feature Map.

Circuit Diagram

Property Radar

Properties

Qubits
4
Circuit Depth
10
Total Gates
52
Single-Qubit Gates
28
Two-Qubit Gates
24
Parameters
0
Entangling
Yes
Simulability
Not Simulable
Expressibility
Entanglement Capability
Trainability
0.40
Noise Resilience

Resource Scaling

How resource requirements grow with the number of input features.

FeaturesQubitsDepthGates2Q Gates
2210144
44105224
8810200112
161610784480

Code Examples

Pauli Feature Map with PennyLane using default Z+ZZ Pauli strings.

python
from encoding_atlas import PauliFeatureMap
import pennylane as qml
import numpy as np

enc = PauliFeatureMap(n_features=4, reps=2, paulis=["Z", "ZZ"])
dev = qml.device("default.qubit", wires=enc.n_qubits)

@qml.qnode(dev)
def circuit(x):
    enc.get_circuit(x, backend="pennylane")
    return qml.state()

x = np.array([0.1, 0.5, 1.2, 2.3])
state = circuit(x)

When to Use This Encoding

  • Custom quantum kernel design with specific Pauli interaction terms
  • Research into optimal feature map structures
  • Encoding domain-specific feature interactions (e.g., XX for correlation-sensitive data)
  • Quantum kernel methods requiring non-standard feature maps
  • Benchmarking different Pauli term combinations

Pros & Cons

Advantages

  • Maximum flexibility — any Pauli operator combination
  • Subsumes ZZ Feature Map and other standard feature maps as special cases
  • Enables custom feature interaction kernels for domain-specific problems
  • Supports all entanglement topologies
  • Rich theoretical framework connecting Pauli terms to kernel expressibility

Limitations

  • Non-Z Pauli terms require basis-change gates, increasing depth
  • More complex configuration than simpler encodings
  • O(n²) scaling with full entanglement
  • Lower trainability with deeper circuits
  • Feature count limited to ~12 for practical use

References

  1. [1]Havlíček, V., et al. (2019). Supervised learning with quantum-enhanced feature spaces. Nature, 567(7747), 209–212.
  2. [2]Schuld, M. (2021). Supervised quantum machine learning models are kernel methods. arXiv:2101.11020.
  3. [3]Sim, S., Johnson, P.D., & Aspuru-Guzik, A. (2019). Expressibility and entangling capability of parameterized quantum circuits for hybrid quantum-classical algorithms. Advanced Quantum Technologies, 2(12), 1900070.