
 Description:
A C++ toolkit containing machine learning algorithms and tools that facilitate creating complex software in C++ to solve real world problems.
The library provides efficient implementations of the following algorithms:
 support vector machines for classification and regression

reducedrank methods for largescale classification and regression.
This includes an SVM implementation and a method for performing kernel ridge regression with efficient LOO crossvalidation.  multiclass SVM
 structural SVM
 relevance vector machines for regression and classification
 reduced set approximation of SV decision surfaces
 online kernel RLS regression
 online kernelized centroid estimation/one class classifier
 online SVM classification
 kernel kmeans clustering
 radial basis function networks
 kernelized recursive feature ranking
 Bayesian network inference using junction trees or MCMC
 General purpose unconstrained nonlinear optimization algorithms using the conjugate gradient, BFGS, and LBFGS techniques
 LevenbergMarquardt for solving nonlinear least squares problems
 A general purpose cutting plane optimizer.
The library also comes with extensive documentation and example programs that walk the user through the use of these machine learning techniques.
Finally, dlib includes a fast matrix library that lets the user use a simple Matlab like syntax. It is also capable of using BLAS and LAPACK libraries such as ATLAS or the Intel MKL when available. Additionally, the use of BLAS and LAPACK is transparent to the user, that is, the dlib matrix object uses BLAS and LAPACK internally to optimize various operations while still allowing the user to use a simple MATLAB like syntax.
 Changes to previous version:
 Added a multiclass SVM
 Added a tool for solving the optimization problem associated with structural support vector machines
 Added an implementation of the Hungarian algorithm for solving the optimal assignment problem
 Improved the efficiency of the cutting plane optimizer used for SVM training
 Added a ridge regression implementation optimized for use with the linear kernel
 Minor bug fixes
 BibTeX Entry: Download
 Corresponding Paper BibTeX Entry: Download
 URL: Project Homepage
 JMLR MLOSS PaperURL: JMLRMLOSS Paper Homepage
 Supported Operating Systems: Linux, Macosx, Windows, Unix, Solaris
 Data Formats: Svmlight, Binary
 Tags: Svm, Classification, Clustering, Regression, Kernel Methods, Matrix Library, Kkmeans, Optimization, Algorithms, Exact Bayesian Methods, Approximate Inference, Bayesian Networks, Junction Tree
 Archive: download here
Other available revisons

Version Changelog Date 18.11 This release contains mostly minor bug fixes and usability improvements, with the notable exception of new routines for extracting localbinarypattern features from images and improved tools for learning distance metrics.
November 13, 2014, 23:42:18 18.10 In addition to a number of usability improvements, this release adds an implementation of the recent paper "One Millisecond Face Alignment with an Ensemble of Regression Trees" by Vahid Kazemi and Josephine Sullivan. This includes tools for performing high quality face landmarking as well as tools for training new landmarking models. See the face_landmark_detection_ex.cpp and train_shape_predictor_ex.cpp example programs for an introduction.
August 29, 2014, 02:56:23 18.9 Fixed a bug in the way file serialization was being handled on MS Windows platforms.
June 17, 2014, 01:05:32 18.8  Added the ability to set a previously trained function as a prior to the svm_multiclass_linear_trainer, svm_c_linear_trainer, and svm_rank_trainer objects.

Added a user settable loss to the structural_assignment_trainer and
structural_track_association_trainer objects.
 Added evaluate_detectors(), a function for efficiently running multiple fHOG based object detectors.
June 3, 2014, 01:54:28 18.7 The major new feature in this release is a Python API for training histogramoforientedgradient based object detectors and examples showing how to use this type of detector to perform realtime face detection. Additionally, this release also adds simpler interfaces for learning to solve assignment and multitarget tracking problems.
April 10, 2014, 01:47:08 18.6 This release adds a tool for training histogramoforientedgradient based object detectors and examples showing how to use this type of detector to perform realtime face detection. The release also adds multithreaded training options for the multiclass classifiers as well as numerous other usability improvements.
February 4, 2014, 01:00:50 18.5 This release adds bound constrained nonlinear optimizers using the BFGS and LBFGS methods. It also includes a new tool for learning a maxmargin Mahalanobis distance metric as well as routines for easily computing Felzenszwalb's 31 channel HOG image representation.
October 23, 2013, 00:58:35 18.4 This release has been focused on improving the speed and usability of dlib's structural support vector machine solver. This includes two new tutorial style example programs showing how to use the solver from either C++ or Python.
August 29, 2013, 01:06:53 18.3 This release brings a tool for solving large scale support vector regression problems to the library as well as a structural SVM tool for learning BIO or BILOU style sequence tagging models. It also adds python interfaces to a number of dlib's machine learning tools.
June 21, 2013, 23:53:04 18.2 This release has primarily focused on improving the flexibility and ease of use of the object detection tools.
June 1, 2013, 19:47:11 18.1 In addition to some bug fixes, this release also brings the following notable improvements to the library:
 The SURF feature extraction tool has higher matching accuracy than in previous dlib releases.
 The cutting plane optimizer is now faster
 A new tool for computing the singular value decomposition of very large matrices
 A new tool for performing canonical correlation analysis on large datasets
 A new tool for easily writing parallel for loops
March 25, 2013, 23:48:23 18.0 This release includes a large number of new minor features and usability improvements. It also includes a new machine learning tool for learning to rank objects. This is the dlib::svm_rank_trainer, an implementation of the well known SVMRank algorithm. Additionally, the implementation runs in O(n*log(n)) time and is therefore suitable for use with large training datasets.
February 5, 2013, 00:39:50 17.49 This release brings a number of new features to the library. The highlights include a probabilistic CKY parser, tools for creating applications using the Bulk Synchronous Parallel computing model, and two new clustering algorithms: Chinese Whispers and Newman's modularity clustering.
December 19, 2012, 01:39:59 17.48 In addition to a number of minor usability and feature improvements, this release also gives dlib's object detection tools the ability to model objects with movable parts.
October 19, 2012, 00:18:17 17.47 This release has focused on adding a set of graph cut algorithms. In particular, tools for finding the minimum weight cut on a graph, finding the MAP assignment of a Potts style Markov random field, and strucural SVM tools for learning the parameters of such a Markov model have been added.
June 16, 2012, 01:46:21 17.46 This release has focused mostly on minor usability and feature improvements. Some highlights are better support for learning to do sequence labeleing from unbalanced data, new image processing routines, and new tools for performing Kalman filtering and recursive least squares filtering.
April 12, 2012, 01:21:01 17.45 This release contains a number of new features and bug fixes. Some highlights are:
 A structural support vector machine method for learning to solve assignment problems.
 New feature extractors for detecting objects in images.
February 3, 2012, 00:39:10 17.44 This release contains a number of new features and bug fixes. Some highlights are:
 A structural support vector machine method for learning to do sequence labeling.
 A graphbased image segmentation tool.
November 22, 2011, 03:46:18 17.43 This release contains a number of new features and bug fixes. Some highlights are:
 A structural support vector machine method for learning to detect objects in images.
 Two new tools for finding the most likely assignment in a graphical model. One for chainstructured graphs and the other for approximate inference in general graphs.
October 23, 2011, 13:26:20 17.41  Added optimizations to the threaded and distributed structural svm solvers for the case where there are many data samples and the separation oracle is quick to evaluate.
 Added Austin Appleby's excellent MurmurHash3.
 Various usability and documentation improvements.
June 12, 2011, 15:21:48 17.39 The structural support vector machine solver can now be distributed across many networked computers and multicore processors.
May 22, 2011, 18:51:29 17.38  Various usability improvements
 Improved the feature vector caching in the structural SVM solver
May 7, 2011, 17:47:26 17.37  Added a multiclass SVM
 Added a tool for solving the optimization problem associated with structural support vector machines
 Added an implementation of the Hungarian algorithm for solving the optimal assignment problem
 Improved the efficiency of the cutting plane optimizer used for SVM training
 Added a ridge regression implementation optimized for use with the linear kernel
 Minor bug fixes
March 25, 2011, 02:05:14 17.34 This release includes new interfaces to the quadratic program solvers as well as implementations of CSVM, epsiloninsensitive support vector regression, and oneclass SVM algorithms. Additionally, general purpose tools for creating onevsone and onevsall multiclass classifiers have been added.
January 4, 2011, 01:14:19 17.33 The major new feature in this release is a general purpose trust region routine for performing nonlinear optimization as well as a LevenbergMarquardt implementation for solving nonlinear least squares problems. This release also includes a variety of feature improvements and optimizations to the linear algebra support library.
December 5, 2010, 20:33:10 17.31 This release adds LAPACK support. In particular, now all matrix decomposition routines make use of LAPACK whenever DLIB_USE_LAPACK is #defined.
September 16, 2010, 05:34:32 17.30 Minor bug fixes
September 16, 2010, 05:34:10 17.31 This release adds LAPACK support. In particular, now all matrix decomposition routines make use of LAPACK whenever DLIB_USE_LAPACK is #defined.
September 16, 2010, 05:33:25 17.30 This release adds LAPACK support. In particular, now all matrix decomposition routines make use of LAPACK whenever DLIB_USE_LAPACK is #defined.
July 29, 2010, 03:08:47 17.29 This release adds a tool for performing kernel ridge regression on large datasets. It also implements an efficient method for computing leaveoneout crossvalidation error rates. Finally, a new example program detailing the steps necessary to create custom matrix expressions is included.
July 25, 2010, 20:50:21 17.27 This release adds a nonlinear SVM training algorithm capable of learning from very large datasets. It also adds a tool for performing large scale manifold regularization.
May 17, 2010, 03:56:36 17.26 This release adds a general purpose implementation of the OCA optimizer, OCAS SVM trainer, and support for loading and saving LIBSVM formatted data files.
March 7, 2010, 21:37:42 17.25 This release was primarily devoted to bug fixing and usability improvements.
February 6, 2010, 00:54:08 17.24 This release improves the documentation, adds a few example programs, and fixed some bugs. Additionally, the following new components have been added:
 A semisupervised PCA
 A tool for computing empirical kernel maps
 The BOBYQA algorithm for box constrained derivativefree optimization
January 5, 2010, 01:17:24 17.22 This release adds a kernel cache and support for training on highly unbalanced data to the PEGASOS SVM training module. Additionally, the library now includes an implementation of the LBFGS algorithm for unconstrained optimization.
September 11, 2009, 04:09:11 17.20 This release has been focused mostly on maintenance and usability improvements.
July 14, 2009, 03:04:23 17.18 This release adds kernels capable of operating on sparse vectors. It also includes various optimizations targeted at speeding up algorithms that operate with linear kernels.
April 6, 2009, 00:57:16 17.17 This release has two main updates:
 The Pegasos SVM training implementation now has a parameter to allow the user to directly control the number of output support vectors.
 The documentation has been cleaned up and example programs updated
March 17, 2009, 03:49:11 17.16 In addition to a lot of small usability improvements, this release adds a sparse kernelized version of the Pegasos SVM training algorithm.
March 9, 2009, 02:21:49 17.15 Initial Announcement on mloss.org.
June 13, 2008, 13:55:10
Comments
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.