The base case and pruning rules for FastMKS (fast max-kernel search). More...
Public Member Functions | |
FastMKSRules (const arma::mat &referenceSet, const arma::mat &querySet, arma::Mat< size_t > &indices, arma::mat &products, KernelType &kernel) | |
double | BaseCase (const size_t queryIndex, const size_t referenceIndex) |
Compute the base case (kernel value) between two points. | |
size_t & | BaseCases () |
Modify the number of times BaseCase() was called. | |
size_t | BaseCases () const |
Get the number of times BaseCase() was called. | |
double | Rescore (TreeType &queryNode, TreeType &referenceNode, const double oldScore) const |
Re-evaluate the score for recursion order. | |
double | Rescore (const size_t queryIndex, TreeType &referenceNode, const double oldScore) const |
Re-evaluate the score for recursion order. | |
double | Score (TreeType &queryNode, TreeType &referenceNode) |
Get the score for recursion order. | |
double | Score (const size_t queryIndex, TreeType &referenceNode) |
Get the score for recursion order. | |
size_t & | Scores () |
Modify the number of times Score() was called. | |
size_t | Scores () const |
Get the number of times Score() was called. | |
Private Member Functions | |
double | CalculateBound (TreeType &queryNode) const |
Calculate the bound for a given query node. | |
void | InsertNeighbor (const size_t queryIndex, const size_t pos, const size_t neighbor, const double distance) |
Utility function to insert neighbor into list of results. | |
Private Attributes | |
size_t | baseCases |
For benchmarking. | |
arma::Mat< size_t > & | indices |
The indices of the maximum kernel results. | |
KernelType & | kernel |
The instantiated kernel. | |
double | lastKernel |
The last kernel evaluation resulting from BaseCase(). | |
size_t | lastQueryIndex |
The last query index BaseCase() was called with. | |
size_t | lastReferenceIndex |
The last reference index BaseCase() was called with. | |
arma::mat & | products |
The maximum kernels. | |
arma::vec | queryKernels |
Cached query set self-kernels (|| q || for each q). | |
const arma::mat & | querySet |
The query dataset. | |
arma::vec | referenceKernels |
Cached reference set self-kernels (|| r || for each r). | |
const arma::mat & | referenceSet |
The reference dataset. | |
size_t | scores |
For benchmarking. |
The base case and pruning rules for FastMKS (fast max-kernel search).
Definition at line 35 of file fastmks_rules.hpp.
mlpack::fastmks::FastMKSRules< KernelType, TreeType >::FastMKSRules | ( | const arma::mat & | referenceSet, | |
const arma::mat & | querySet, | |||
arma::Mat< size_t > & | indices, | |||
arma::mat & | products, | |||
KernelType & | kernel | |||
) |
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::BaseCase | ( | const size_t | queryIndex, | |
const size_t | referenceIndex | |||
) |
Compute the base case (kernel value) between two points.
size_t& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::BaseCases | ( | ) | [inline] |
Modify the number of times BaseCase() was called.
Definition at line 100 of file fastmks_rules.hpp.
References mlpack::fastmks::FastMKSRules< KernelType, TreeType >::baseCases.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::BaseCases | ( | ) | const [inline] |
Get the number of times BaseCase() was called.
Definition at line 98 of file fastmks_rules.hpp.
References mlpack::fastmks::FastMKSRules< KernelType, TreeType >::baseCases.
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::CalculateBound | ( | TreeType & | queryNode | ) | const [private] |
Calculate the bound for a given query node.
void mlpack::fastmks::FastMKSRules< KernelType, TreeType >::InsertNeighbor | ( | const size_t | queryIndex, | |
const size_t | pos, | |||
const size_t | neighbor, | |||
const double | distance | |||
) | [private] |
Utility function to insert neighbor into list of results.
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Rescore | ( | TreeType & | queryNode, | |
TreeType & | referenceNode, | |||
const double | oldScore | |||
) | const |
Re-evaluate the score for recursion order.
A low score indicates priority for recursion, while DBL_MAX indicates that a node should not be recursed into at all (it should be pruned). This is used when the score has already been calculated, but another recursion may have modified the bounds for pruning. So the old score is checked against the new pruning bound.
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Rescore | ( | const size_t | queryIndex, | |
TreeType & | referenceNode, | |||
const double | oldScore | |||
) | const |
Re-evaluate the score for recursion order.
A low score indicates priority for recursion, while DBL_MAX indicates that a node should not be recursed into at all (it should be pruned). This is used when the score has already been calculated, but another recursion may have modified the bounds for pruning. So the old score is checked against the new pruning bound.
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Score | ( | TreeType & | queryNode, | |
TreeType & | referenceNode | |||
) |
Get the score for recursion order.
A low score indicates priority for recursion, while DBL_MAX indicates that the node should not be recursed into at all (it should be pruned).
queryNode | Candidate query node to be recursed into. | |
referenceNode | Candidate reference node to be recursed into. |
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Score | ( | const size_t | queryIndex, | |
TreeType & | referenceNode | |||
) |
Get the score for recursion order.
A low score indicates priority for recursion, while DBL_MAX indicates that the node should not be recursed into at all (it should be pruned).
queryIndex | Index of query point. | |
referenceNode | Candidate to be recursed into. |
size_t& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Scores | ( | ) | [inline] |
Modify the number of times Score() was called.
Definition at line 105 of file fastmks_rules.hpp.
References mlpack::fastmks::FastMKSRules< KernelType, TreeType >::scores.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Scores | ( | ) | const [inline] |
Get the number of times Score() was called.
Definition at line 103 of file fastmks_rules.hpp.
References mlpack::fastmks::FastMKSRules< KernelType, TreeType >::scores.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::baseCases [private] |
For benchmarking.
Definition at line 143 of file fastmks_rules.hpp.
Referenced by mlpack::fastmks::FastMKSRules< KernelType, TreeType >::BaseCases().
arma::Mat<size_t>& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::indices [private] |
The indices of the maximum kernel results.
Definition at line 114 of file fastmks_rules.hpp.
KernelType& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::kernel [private] |
The instantiated kernel.
Definition at line 124 of file fastmks_rules.hpp.
double mlpack::fastmks::FastMKSRules< KernelType, TreeType >::lastKernel [private] |
The last kernel evaluation resulting from BaseCase().
Definition at line 131 of file fastmks_rules.hpp.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::lastQueryIndex [private] |
The last query index BaseCase() was called with.
Definition at line 127 of file fastmks_rules.hpp.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::lastReferenceIndex [private] |
The last reference index BaseCase() was called with.
Definition at line 129 of file fastmks_rules.hpp.
arma::mat& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::products [private] |
The maximum kernels.
Definition at line 116 of file fastmks_rules.hpp.
arma::vec mlpack::fastmks::FastMKSRules< KernelType, TreeType >::queryKernels [private] |
Cached query set self-kernels (|| q || for each q).
Definition at line 119 of file fastmks_rules.hpp.
const arma::mat& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::querySet [private] |
The query dataset.
Definition at line 111 of file fastmks_rules.hpp.
arma::vec mlpack::fastmks::FastMKSRules< KernelType, TreeType >::referenceKernels [private] |
Cached reference set self-kernels (|| r || for each r).
Definition at line 121 of file fastmks_rules.hpp.
const arma::mat& mlpack::fastmks::FastMKSRules< KernelType, TreeType >::referenceSet [private] |
The reference dataset.
Definition at line 109 of file fastmks_rules.hpp.
size_t mlpack::fastmks::FastMKSRules< KernelType, TreeType >::scores [private] |
For benchmarking.
Definition at line 145 of file fastmks_rules.hpp.
Referenced by mlpack::fastmks::FastMKSRules< KernelType, TreeType >::Scores().