13 #ifndef MLPACK_METHODS_NCA_NCA_SOFTMAX_ERROR_FUNCTION_HPP 14 #define MLPACK_METHODS_NCA_NCA_SOFTMAX_ERROR_FUNCTION_HPP 41 template<
typename MetricType = metric::SquaredEucl
ideanDistance>
56 const arma::Row<size_t>&
labels,
57 MetricType
metric = MetricType());
66 double Evaluate(
const arma::mat& covariance);
78 double Evaluate(
const arma::mat& covariance,
const size_t i);
88 void Gradient(
const arma::mat& covariance, arma::mat& gradient);
101 void Gradient(
const arma::mat& covariance,
103 arma::mat& gradient);
158 #include "nca_softmax_error_function_impl.hpp" const arma::mat & dataset
The dataset.
The "softmax" stochastic neighbor assignment probability function.
Linear algebra utility functions, generally performed on matrices or vectors.
const arma::Row< size_t > & labels
Labels for each point in the dataset.
arma::vec denominators
Holds denominators for calculation of p_ij, for the non-separable Evaluate() and Gradient().
const arma::mat GetInitialPoint() const
Get the initial point.
The core includes that mlpack expects; standard C++ includes and Armadillo.
size_t NumFunctions() const
Get the number of functions the objective function can be decomposed into.
void Gradient(const arma::mat &covariance, arma::mat &gradient)
Evaluate the gradient of the softmax function for the given covariance matrix.
bool precalculated
False if nothing has ever been precalculated (only at construction time).
SoftmaxErrorFunction(const arma::mat &dataset, const arma::Row< size_t > &labels, MetricType metric=MetricType())
Initialize with the given kernel; useful when the kernel has some state to store, which is set elsewh...
double Evaluate(const arma::mat &covariance)
Evaluate the softmax function for the given covariance matrix.
arma::vec p
Holds calculated p_i, for the non-separable Evaluate() and Gradient().
MetricType metric
The instantiated metric.
void Precalculate(const arma::mat &coordinates)
Precalculate the denominators and numerators that will make up the p_ij, but only if the coordinates ...
arma::mat lastCoordinates
Last coordinates. Used for the non-separable Evaluate() and Gradient().
arma::mat stretchedDataset
Stretched dataset. Kept internal to avoid memory reallocations.