pub struct FisherInformation { /* private fields */ }Expand description
Fisher Information Matrix calculator
Implementations§
Source§impl FisherInformation
impl FisherInformation
Sourcepub fn with_damping(self, damping: f64) -> Self
pub fn with_damping(self, damping: f64) -> Self
Set damping factor (for matrix inversion stability)
Sourcepub fn with_samples(self, num_samples: usize) -> Self
pub fn with_samples(self, num_samples: usize) -> Self
Set number of samples for empirical FIM
Sourcepub fn empirical_fim(&self, gradients: &[Vec<f64>]) -> Result<Vec<Vec<f64>>>
pub fn empirical_fim(&self, gradients: &[Vec<f64>]) -> Result<Vec<Vec<f64>>>
Compute empirical FIM from gradient samples
F ≈ (1/N) Σᵢ ∇log p(xᵢ|θ) ∇log p(xᵢ|θ)^T
§Arguments
gradients- Sample gradients, each of length d
Sourcepub fn diagonal_fim(&self, gradients: &[Vec<f64>]) -> Result<Vec<f64>>
pub fn diagonal_fim(&self, gradients: &[Vec<f64>]) -> Result<Vec<f64>>
Compute diagonal FIM approximation (much faster)
Only computes diagonal: F_ii ≈ (1/N) Σₙ (∂log p / ∂θᵢ)²
Sourcepub fn gaussian_fim(&self, dim: usize, variance: f64) -> Vec<Vec<f64>>
pub fn gaussian_fim(&self, dim: usize, variance: f64) -> Vec<Vec<f64>>
Compute FIM for Gaussian distribution with known variance
For N(μ, σ²I): F(μ) = I/σ²
Sourcepub fn categorical_fim(&self, probabilities: &[f64]) -> Result<Vec<Vec<f64>>>
pub fn categorical_fim(&self, probabilities: &[f64]) -> Result<Vec<Vec<f64>>>
Compute FIM for categorical distribution
For categorical p = (p₁, …, pₖ): F_ij = δᵢⱼ/pᵢ - 1
Trait Implementations§
Source§impl Clone for FisherInformation
impl Clone for FisherInformation
Source§fn clone(&self) -> FisherInformation
fn clone(&self) -> FisherInformation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FisherInformation
impl Debug for FisherInformation
Auto Trait Implementations§
impl Freeze for FisherInformation
impl RefUnwindSafe for FisherInformation
impl Send for FisherInformation
impl Sync for FisherInformation
impl Unpin for FisherInformation
impl UnwindSafe for FisherInformation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more