[mlpack-svn] r11462 - in mlpack/trunk/src/mlpack/methods: mvu nca
fastlab-svn at coffeetalk-1.cc.gatech.edu
fastlab-svn at coffeetalk-1.cc.gatech.edu
Fri Feb 10 12:56:29 EST 2012
Author: rcurtin
Date: 2012-02-10 12:56:29 -0500 (Fri, 10 Feb 2012)
New Revision: 11462
Modified:
mlpack/trunk/src/mlpack/methods/mvu/mvu.cpp
mlpack/trunk/src/mlpack/methods/nca/nca.hpp
mlpack/trunk/src/mlpack/methods/nca/nca_impl.hpp
Log:
Revamp NCA and MVU, which use AugLagrangian and LRSDP, respectively. MVU is not
yet done but, bit by bit...
Modified: mlpack/trunk/src/mlpack/methods/mvu/mvu.cpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/mvu/mvu.cpp 2012-02-10 17:55:50 UTC (rev 11461)
+++ mlpack/trunk/src/mlpack/methods/mvu/mvu.cpp 2012-02-10 17:56:29 UTC (rev 11462)
@@ -7,7 +7,8 @@
#include "mvu.hpp"
#include "mvu_objective_function.hpp"
-#include <mlpack/core/optimizers/aug_lagrangian/aug_lagrangian.hpp>
+//#include <mlpack/core/optimizers/aug_lagrangian/aug_lagrangian.hpp>
+#include <mlpack/core/optimizers/lrsdp/lrsdp.hpp>
using namespace mlpack;
using namespace mlpack::mvu;
@@ -22,12 +23,16 @@
const size_t numNeighbors,
arma::mat& outputData)
{
+ // Set up LRSDP that we will solve.
+ LRSDP mvuSolver;
+
+
MVUObjectiveFunction obj(data, newDim, numNeighbors);
// Set up Augmented Lagrangian method.
// Memory choice is arbitrary; this needs to be configurable.
- AugLagrangian<MVUObjectiveFunction> aug(obj, 20);
+//AugLagrangian<MVUObjectiveFunction> aug(obj, 20);
- outputData = obj.GetInitialPoint();
- aug.Optimize(outputData, 0);
+// outputData = obj.GetInitialPoint();
+// aug.Optimize(outputData, 0);
}
Modified: mlpack/trunk/src/mlpack/methods/nca/nca.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/nca/nca.hpp 2012-02-10 17:55:50 UTC (rev 11461)
+++ mlpack/trunk/src/mlpack/methods/nca/nca.hpp 2012-02-10 17:56:29 UTC (rev 11462)
@@ -54,11 +54,11 @@
*
* @param output_matrix Covariance matrix of Mahalanobis distance.
*/
- void LearnDistance(arma::mat& output_matrix);
+ void LearnDistance(arma::mat& outputMatrix);
private:
- const arma::mat& dataset_;
- const arma::uvec& labels_;
+ const arma::mat& dataset;
+ const arma::uvec& labels;
};
}; // namespace nca
Modified: mlpack/trunk/src/mlpack/methods/nca/nca_impl.hpp
===================================================================
--- mlpack/trunk/src/mlpack/methods/nca/nca_impl.hpp 2012-02-10 17:55:50 UTC (rev 11461)
+++ mlpack/trunk/src/mlpack/methods/nca/nca_impl.hpp 2012-02-10 17:56:29 UTC (rev 11462)
@@ -20,21 +20,21 @@
// Just set the internal matrix reference.
template<typename Kernel>
NCA<Kernel>::NCA(const arma::mat& dataset, const arma::uvec& labels) :
- dataset_(dataset), labels_(labels) { /* nothing to do */ }
+ dataset(dataset), labels(labels) { /* nothing to do */ }
template<typename Kernel>
-void NCA<Kernel>::LearnDistance(arma::mat& output_matrix)
+void NCA<Kernel>::LearnDistance(arma::mat& outputMatrix)
{
- output_matrix = arma::eye<arma::mat>(dataset_.n_rows, dataset_.n_rows);
+ outputMatrix = arma::eye<arma::mat>(dataset.n_rows, dataset.n_rows);
- SoftmaxErrorFunction<Kernel> error_func(dataset_, labels_);
+ SoftmaxErrorFunction<Kernel> errorFunc(dataset, labels);
// We will use the L-BFGS optimizer to optimize the stretching matrix.
- optimization::L_BFGS<SoftmaxErrorFunction<Kernel> > lbfgs(error_func, 10);
+ optimization::L_BFGS<SoftmaxErrorFunction<Kernel> > lbfgs(errorFunc, 10);
Timer::Start("nca_lbfgs_optimization");
- lbfgs.Optimize(0, output_matrix);
+ lbfgs.Optimize(outputMatrix);
Timer::Stop("nca_lbfgs_optimization");
}
More information about the mlpack-svn
mailing list