Skip to main content

MLPLeafModel

Struct MLPLeafModel 

Source
pub struct MLPLeafModel { /* private fields */ }
Available on crate feature alloc only.
Expand description

Single hidden layer MLP leaf model with ReLU activation.

Learns a nonlinear function via backpropagation with Newton-scaled learning rate. Weights are lazily initialized on the first update call using a deterministic xorshift64 PRNG so results are reproducible.

Optional exponential weight decay (decay) gives the model a finite memory horizon for non-stationary streams.

Implementations§

Source§

impl MLPLeafModel

Source

pub fn new( hidden_size: usize, learning_rate: f64, seed: u64, decay: Option<f64>, ) -> Self

Create a new MLP leaf model with the given hidden layer size, learning rate, seed, and optional decay.

The seed controls deterministic weight initialization. Different seeds produce different initial weights, which is critical for ensemble diversity when multiple MLP leaves share the same hidden_size.

Trait Implementations§

Source§

impl LeafModel for MLPLeafModel

Source§

fn predict(&self, features: &[f64]) -> f64

Produce a prediction given input features.
Source§

fn update(&mut self, features: &[f64], gradient: f64, hessian: f64, lambda: f64)

Update model parameters given a gradient, hessian, and regularization lambda.
Source§

fn clone_fresh(&self) -> Box<dyn LeafModel>

Create a fresh (zeroed / re-initialized) clone of this model’s architecture.
Source§

fn clone_warm(&self) -> Box<dyn LeafModel>

Create a warm clone preserving learned weights but resetting optimizer state. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.