Files
mlpack/HISTORY.md
T

338 lines
11 KiB
Markdown

### mlpack 2.0.2
###### 2016-??-??
* Handle zero-variance dimensions in DET (#515).
* Add MiniBatchSGD optimizer (src/mlpack/core/optimizers/minibatch_sgd/) and
allow its use in mlpack_logistic_regression and mlpack_nca programs.
* Add better backtrace support from Grzegorz Krajewski for Log::Fatal messages
when compiled with debugging and profiling symbols. This requires libbfd
and libdl to be present during compilation.
* CosineTree test fix from Mikhail Lozhnikov (#358).
* Fixed HMM initial state estimation (#600).
* Changed versioning macros __MLPACK_VERSION_MAJOR, __MLPACK_VERSION_MINOR,
and __MLPACK_VERSION_PATCH to MLPACK_VERSION_MAJOR, MLPACK_VERSION_MINOR,
and MLPACK_VERSION_PATCH. The old names will remain in place until
mlpack 3.0.0.
### mlpack 2.0.1
###### 2016-02-04
* Fix CMake to properly detect when MKL is being used with Armadillo.
* Minor parameter handling fixes to mlpack_logistic_regression (#504, #505).
* Properly install arma_config.hpp.
* Memory handling fixes for Hoeffding tree code.
* Add functions that allow changing training-time parameters to HoeffdingTree
class.
* Fix infinite loop in sparse coding test.
* Documentation spelling fixes (#501).
* Properly handle covariances for Gaussians with large condition number
(#496), preventing GMMs from filling with NaNs during training (and also
HMMs that use GMMs).
* CMake fixes for finding LAPACK and BLAS as Armadillo dependencies when ATLAS
is used.
* CMake fix for projects using mlpack's CMake configuration from elsewhere
(#512).
### mlpack 2.0.0
###### 2015-12-24
* Removed overclustering support from k-means because it is not well-tested,
may be buggy, and is (I think) unused. If this was support you were using,
open a bug or get in touch with us; it would not be hard for us to
reimplement it.
* Refactored KMeans to allow different types of Lloyd iterations.
* Added implementations of k-means: Elkan's algorithm, Hamerly's algorithm,
Pelleg-Moore's algorithm, and the DTNN (dual-tree nearest neighbor)
algorithm.
* Significant acceleration of LRSDP via the use of accu(a % b) instead of
trace(a * b).
* Added MatrixCompletion class (matrix_completion), which performs nuclear
norm minimization to fill unknown values of an input matrix.
* No more dependence on Boost.Random; now we use C++11 STL random support.
* Add softmax regression, contributed by Siddharth Agrawal and QiaoAn Chen.
* Changed NeighborSearch, RangeSearch, FastMKS, LSH, and RASearch API; these
classes now take the query sets in the Search() method, instead of in the
constructor.
* Use OpenMP, if available. For now OpenMP support is only available in the
DET training code.
* Add support for predicting new test point values to LARS and the
command-line 'lars' program.
* Add serialization support for Perceptron and LogisticRegression.
* Refactor SoftmaxRegression to predict into an arma::Row<size_t> object, and
add a softmax_regression program.
* Refactor LSH to allow loading and saving of models.
* ToString() is removed entirely (#487).
* Add --input_model_file and --output_model_file options to appropriate
machine learning algorithms.
* Rename all executables to start with an "mlpack" prefix (#229).
* Add HoeffdingTree and mlpack_hoeffding_tree, an implementation of the
streaming decision tree methodology from Domingos and Hulten in 2000.
### mlpack 1.0.12
###### 2015-01-07
* Switch to 3-clause BSD license (from LGPL).
### mlpack 1.0.11
###### 2014-12-11
* Proper handling of dimension calculation in PCA.
* Load parameter vectors properly for LinearRegression models.
* Linker fixes for AugLagrangian specializations under Visual Studio.
* Add support for observation weights to LinearRegression.
* MahalanobisDistance<> now takes root of the distance by default and
therefore satisfies the triangle inequality (TakeRoot now defaults to true).
* Better handling of optional Armadillo HDF5 dependency.
* Fixes for numerous intermittent test failures.
* math::RandomSeed() now sets the random seed for recent (>=3.930) Armadillo
versions.
* Handle Newton method convergence better for
SparseCoding::OptimizeDictionary() and make maximum iterations a parameter.
* Known bug: CosineTree construction may fail in some cases on i386 systems
(#358).
### mlpack 1.0.10
###### 2014-08-29
* Bugfix for NeighborSearch regression which caused very slow allknn/allkfn.
Speeds are now restored to approximately 1.0.8 speeds, with significant
improvement for the cover tree (#347).
* Detect dependencies correctly when ARMA_USE_WRAPPER is not being defined
(i.e., libarmadillo.so does not exist).
* Bugfix for compilation under Visual Studio (#348).
### mlpack 1.0.9
###### 2014-07-28
* GMM initialization is now safer and provides a working GMM when constructed
with only the dimensionality and number of Gaussians (#301).
* Check for division by 0 in Forward-Backward Algorithm in HMMs (#301).
* Fix MaxVarianceNewCluster (used when re-initializing clusters for k-means)
(#301).
* Fixed implementation of Viterbi algorithm in HMM::Predict() (#303).
* Significant speedups for dual-tree algorithms using the cover tree (#235,
#314) including a faster implementation of FastMKS.
* Fix for LRSDP optimizer so that it compiles and can be used (#312).
* CF (collaborative filtering) now expects users and items to be zero-indexed,
not one-indexed (#311).
* CF::GetRecommendations() API change: now requires the number of
recommendations as the first parameter. The number of users in the local
neighborhood should be specified with CF::NumUsersForSimilarity().
* Removed incorrect PeriodicHRectBound (#58).
* Refactor LRSDP into LRSDP class and standalone function to be optimized
(#305).
* Fix for centering in kernel PCA (#337).
* Added simulated annealing (SA) optimizer, contributed by Zhihao Lou.
* HMMs now support initial state probabilities; these can be set in the
constructor, trained, or set manually with HMM::Initial() (#302).
* Added Nyström method for kernel matrix approximation by Marcus Edel.
* Kernel PCA now supports using Nyström method for approximation.
* Ball trees now work with dual-tree algorithms, via the BallBound<> bound
structure (#307); fixed by Yash Vadalia.
* The NMF class is now AMF<>, and supports far more types of factorizations,
by Sumedh Ghaisas.
* A QUIC-SVD implementation has returned, written by Siddharth Agrawal and
based on older code from Mudit Gupta.
* Added perceptron and decision stump by Udit Saxena (these are weak learners
for an eventual AdaBoost class).
* Sparse autoencoder added by Siddharth Agrawal.
### mlpack 1.0.8
###### 2014-01-06
* Memory leak in NeighborSearch index-mapping code fixed (#298).
* GMMs can be trained using the existing model as a starting point by
specifying an additional boolean parameter to GMM::Estimate() (#296).
* Logistic regression implementation added in methods/logistic_regression (see
also #293).
* L-BFGS optimizer now returns its function via Function().
* Version information is now obtainable via mlpack::util::GetVersion() or the
__MLPACK_VERSION_MAJOR, __MLPACK_VERSION_MINOR, and __MLPACK_VERSION_PATCH
macros (#297).
* Fix typos in allkfn and allkrann output.
### mlpack 1.0.7
###### 2013-10-04
* Cover tree support for range search (range_search), rank-approximate nearest
neighbors (allkrann), minimum spanning tree calculation (emst), and FastMKS
(fastmks).
* Dual-tree FastMKS implementation added and tested.
* Added collaborative filtering package (cf) that can provide recommendations
when given users and items.
* Fix for correctness of Kernel PCA (kernel_pca) (#270).
* Speedups for PCA and Kernel PCA (#198).
* Fix for correctness of Neighborhood Components Analysis (NCA) (#279).
* Minor speedups for dual-tree algorithms.
* Fix for Naive Bayes Classifier (nbc) (#269).
* Added a ridge regression option to LinearRegression (linear_regression)
(#286).
* Gaussian Mixture Models (gmm::GMM<>) now support arbitrary covariance matrix
constraints (#283).
* MVU (mvu) removed because it is known to not work (#183).
* Minor updates and fixes for kernels (in mlpack::kernel).
### mlpack 1.0.6
###### 2013-06-13
* Minor bugfix so that FastMKS gets built.
### mlpack 1.0.5
###### 2013-05-01
* Speedups of cover tree traversers (#235).
* Addition of rank-approximate nearest neighbors (RANN), found in
src/mlpack/methods/rann/.
* Addition of fast exact max-kernel search (FastMKS), found in
src/mlpack/methods/fastmks/.
* Fix for EM covariance estimation; this should improve GMM training time.
* More parameters for GMM estimation.
* Force GMM and GaussianDistribution covariance matrices to be positive
definite, so that training converges much more often.
* Add parameter for the tolerance of the Baum-Welch algorithm for HMM
training.
* Fix for compilation with clang compiler.
* Fix for k-furthest-neighbor-search.
### mlpack 1.0.4
###### 2013-02-08
* Force minimum Armadillo version to 2.4.2.
* Better output of class types to streams; a class with a ToString() method
implemented can be sent to a stream with operator<<.
* Change return type of GMM::Estimate() to double (#257).
* Style fixes for k-means and RADICAL.
* Handle size_t support correctly with Armadillo 3.6.2 (#258).
* Add locality-sensitive hashing (LSH), found in src/mlpack/methods/lsh/.
* Better tests for SGD (stochastic gradient descent) and NCA (neighborhood
components analysis).
### mlpack 1.0.3
###### 2012-09-16
* Remove internal sparse matrix support because Armadillo 3.4.0 now includes
it. When using Armadillo versions older than 3.4.0, sparse matrix support
is not available.
* NCA (neighborhood components analysis) now support an arbitrary optimizer
(#245), including stochastic gradient descent (#249).
### mlpack 1.0.2
###### 2012-08-15
* Added density estimation trees, found in src/mlpack/methods/det/.
* Added non-negative matrix factorization, found in src/mlpack/methods/nmf/.
* Added experimental cover tree implementation, found in
src/mlpack/core/tree/cover_tree/ (#157).
* Better reporting of boost::program_options errors (#225).
* Fix for timers on Windows (#212, #211).
* Fix for allknn and allkfn output (#204).
* Sparse coding dictionary initialization is now a template parameter (#220).
### mlpack 1.0.1
###### 2012-03-03
* Added kernel principal components analysis (kernel PCA), found in
src/mlpack/methods/kernel_pca/ (#74).
* Fix for Lovasz-Theta AugLagrangian tests (#182).
* Fixes for allknn output (#185, #186).
* Added range search executable (#192).
* Adapted citations in documentation to BiBTeX; no citations in -h output
(#195).
* Stop use of 'const char*' and prefer 'std::string' (#176).
* Support seeds for random numbers (#177).
### mlpack 1.0.0
###### 2011-12-17
* Initial release. See any resolved tickets numbered less than #196 or
execute this query:
http://www.mlpack.org/trac/query?status=closed&milestone=mlpack+1.0.0