pub struct NeuralBridge { /* private fields */ }Expand description
Bridge for converting neural outputs to probabilistic constructs.
Handles numerical stability through epsilon clamping and normalization.
Implementations§
Source§impl NeuralBridge
impl NeuralBridge
Sourcepub fn with_epsilon(epsilon: f64) -> Self
pub fn with_epsilon(epsilon: f64) -> Self
Create a bridge with custom epsilon.
Sourcepub fn to_ad_probabilities(&self, output: &NeuralOutput) -> Vec<ADProbability>
pub fn to_ad_probabilities(&self, output: &NeuralOutput) -> Vec<ADProbability>
Convert softmax output to annotated disjunction probabilities.
Each probability is clamped to [epsilon, 1.0] for numerical stability.
Sourcepub fn batch_to_circuit_leaves(
&self,
outputs: &[NeuralOutput],
) -> Vec<Vec<CircuitLeaf>>
pub fn batch_to_circuit_leaves( &self, outputs: &[NeuralOutput], ) -> Vec<Vec<CircuitLeaf>>
Convert batch of neural outputs to circuit leaf weights.
Returns a 2D structure: leaves[sample_idx][label_idx]
Sourcepub fn to_log_probabilities(&self, output: &NeuralOutput) -> Vec<f64>
pub fn to_log_probabilities(&self, output: &NeuralOutput) -> Vec<f64>
Convert to log probabilities for numerical stability.
Log probabilities are used for:
- Computing NLL loss:
-log(p_true) - Avoiding underflow in product of many small probabilities
Sourcepub fn normalize(&self, output: &NeuralOutput) -> NeuralOutput
pub fn normalize(&self, output: &NeuralOutput) -> NeuralOutput
Normalize probabilities to sum to 1.0.
Useful when network outputs have small numerical errors.
Sourcepub fn extract_gradient_weights(&self, output: &NeuralOutput) -> Vec<f64>
pub fn extract_gradient_weights(&self, output: &NeuralOutput) -> Vec<f64>
Extract raw weights for gradient computation.
These weights are passed to the backward pass to compute gradients w.r.t. the neural network parameters.
Sourcepub fn probability_of(&self, output: &NeuralOutput, label: &str) -> Option<f64>
pub fn probability_of(&self, output: &NeuralOutput, label: &str) -> Option<f64>
Compute the probability of a specific label.
Sourcepub fn log_probability_of(
&self,
output: &NeuralOutput,
label: &str,
) -> Option<f64>
pub fn log_probability_of( &self, output: &NeuralOutput, label: &str, ) -> Option<f64>
Compute the log probability of a specific label.
Sourcepub fn to_circuit_leaves_with_offset(
&self,
output: &NeuralOutput,
variable_offset: usize,
) -> Vec<CircuitLeaf>
pub fn to_circuit_leaves_with_offset( &self, output: &NeuralOutput, variable_offset: usize, ) -> Vec<CircuitLeaf>
Create circuit leaves for a single sample with variable ID offset.
Used when multiple samples share a circuit structure but have different variable ID ranges.