huber_loss.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_METHODS_ANN_LOSS_FUNCTION_HUBER_LOSS_HPP
13 #define MLPACK_METHODS_ANN_LOSS_FUNCTION_HUBER_LOSS_HPP
14 
15 #include <mlpack/prereqs.hpp>
16 
17 namespace mlpack {
18 namespace ann {
19 
32 template <
33  typename InputDataType = arma::mat,
34  typename OutputDataType = arma::mat
35 >
36 class HuberLoss
37 {
38  public:
46  HuberLoss(const double delta = 1.0, const bool mean = true);
47 
55  template<typename PredictionType, typename TargetType>
56  typename PredictionType::elem_type Forward(const PredictionType& prediction,
57  const TargetType& target);
58 
67  template<typename PredictionType, typename TargetType, typename LossType>
68  void Backward(const PredictionType& prediction,
69  const TargetType& target,
70  LossType& loss);
71 
73  OutputDataType& OutputParameter() const { return outputParameter; }
75  OutputDataType& OutputParameter() { return outputParameter; }
76 
78  double Delta() const { return delta; }
80  double& Delta() { return delta; }
81 
83  bool Mean() const { return mean; }
85  bool& Mean() { return mean; }
86 
90  template<typename Archive>
91  void serialize(Archive& ar, const uint32_t /* version */);
92 
93  private:
95  OutputDataType outputParameter;
96 
98  double delta;
99 
101  bool mean;
102 }; // class HuberLoss
103 
104 } // namespace ann
105 } // namespace mlpack
106 
107 // Include implementation.
108 #include "huber_loss_impl.hpp"
109 
110 #endif
The Huber loss is a loss function used in robust regression, that is less sensitive to outliers in da...
Definition: huber_loss.hpp:36
Linear algebra utility functions, generally performed on matrices or vectors.
double Delta() const
Get the value of delta.
Definition: huber_loss.hpp:78
The core includes that mlpack expects; standard C++ includes and Armadillo.
void serialize(Archive &ar, const uint32_t)
Serialize the layer.
bool Mean() const
Get the value of reduction type.
Definition: huber_loss.hpp:83
bool & Mean()
Set the value of reduction type.
Definition: huber_loss.hpp:85
double & Delta()
Set the value of delta.
Definition: huber_loss.hpp:80
OutputDataType & OutputParameter() const
Get the output parameter.
Definition: huber_loss.hpp:73
HuberLoss(const double delta=1.0, const bool mean=true)
Create the HuberLoss object.
void Backward(const PredictionType &prediction, const TargetType &target, LossType &loss)
Ordinary feed backward pass of a neural network.
OutputDataType & OutputParameter()
Modify the output parameter.
Definition: huber_loss.hpp:75
PredictionType::elem_type Forward(const PredictionType &prediction, const TargetType &target)
Computes the Huber Loss function.