pub trait Criterion {
type Cost: CostFunc<Matrix<f64>>;
fn cost(&self, outputs: &Matrix<f64>, targets: &Matrix<f64>) -> f64 { ... }
fn cost_grad(
&self,
outputs: &Matrix<f64>,
targets: &Matrix<f64>
) -> Matrix<f64> { ... }
fn regularization(&self) -> Regularization<f64> { ... }
fn is_regularized(&self) -> bool { ... }
fn reg_cost(&self, reg_weights: MatrixSlice<'_, f64>) -> f64 { ... }
fn reg_cost_grad(&self, reg_weights: MatrixSlice<'_, f64>) -> Matrix<f64> { ... }
}
Expand description
Criterion for Neural Networks
Specifies an activation function and a cost function.
Required Associated Types
Provided Methods
sourcefn cost(&self, outputs: &Matrix<f64>, targets: &Matrix<f64>) -> f64
fn cost(&self, outputs: &Matrix<f64>, targets: &Matrix<f64>) -> f64
The cost function.
Returns a scalar cost.
sourcefn cost_grad(&self, outputs: &Matrix<f64>, targets: &Matrix<f64>) -> Matrix<f64>
fn cost_grad(&self, outputs: &Matrix<f64>, targets: &Matrix<f64>) -> Matrix<f64>
The gradient of the cost function.
Returns a matrix of cost gradients.
sourcefn regularization(&self) -> Regularization<f64>
fn regularization(&self) -> Regularization<f64>
Returns the regularization for this criterion.
Will return Regularization::None
by default.
sourcefn is_regularized(&self) -> bool
fn is_regularized(&self) -> bool
Checks if the current criterion includes regularization.
Will return false
by default.
sourcefn reg_cost(&self, reg_weights: MatrixSlice<'_, f64>) -> f64
fn reg_cost(&self, reg_weights: MatrixSlice<'_, f64>) -> f64
Returns the regularization cost for the criterion.
Will return 0
by default.
This method will not be invoked by the neural network if there is explicitly no regularization.
sourcefn reg_cost_grad(&self, reg_weights: MatrixSlice<'_, f64>) -> Matrix<f64>
fn reg_cost_grad(&self, reg_weights: MatrixSlice<'_, f64>) -> Matrix<f64>
Returns the regularization gradient for the criterion.
Will return a matrix of zeros by default.
This method will not be invoked by the neural network if there is explicitly no regularization.