Commit 8c03fbd6 authored by Davis King's avatar Davis King

Added things to docs and also moved the structural svm stuff into the ML page.

parent 53e9e7d9
......@@ -133,7 +133,7 @@
<li>General purpose <a href="ml.html#one_vs_one_trainer">multiclass classification</a> tools</li>
<li>A <a href="ml.html#svm_multiclass_linear_trainer">Multiclass SVM</a></li>
<li>A tool for solving the optimization problem associated with
<a href="optimization.html#structural_svm_problem">structural support vector machines</a>. </li>
<a href="ml.html#structural_svm_problem">structural support vector machines</a>. </li>
<li>An online <a href="ml.html#krls">kernel RLS regression</a> algorithm</li>
<li>An online <a href="ml.html#svm_pegasos">SVM classification</a> algorithm</li>
<li>An online kernelized <a href="ml.html#kcentroid">centroid estimator</a>/novelty detector</li> and
......
......@@ -89,6 +89,13 @@ Davis E. King. <a href="http://www.jmlr.org/papers/volume10/king09a/king09a.pdf"
<item>rvm_regression_trainer</item>
<item>rbf_network_trainer</item>
</section>
<section>
<name>Structured Prediction</name>
<item>structural_svm_problem</item>
<item>structural_svm_problem_threaded</item>
<item>svm_struct_controller_node</item>
<item>svm_struct_processing_node</item>
</section>
<section>
<name>Unsupervised</name>
<item>kcentroid</item>
......@@ -2023,6 +2030,93 @@ Davis E. King. <a href="http://www.jmlr.org/papers/volume10/king09a/king09a.pdf"
</component>
<!-- ************************************************************************* -->
<component>
<name>structural_svm_problem</name>
<file>dlib/svm.h</file>
<spec_file link="true">dlib/svm/structural_svm_problem_abstract.h</spec_file>
<description>
This object, when used with the <a href="optimization.html#oca">oca</a> optimizer, is a tool
for solving the optimization problem associated
with a structural support vector machine. A structural SVM is a supervised
machine learning method for learning to predict complex outputs. This is
contrasted with a binary classifier which makes only simple yes/no predictions.
A structural SVM, on the other hand, can learn to predict outputs as complex
as entire parse trees. To do this, it learns a function F(x,y) which measures
how well a particular data sample x matches a label y. When used for prediction,
the best label for a new x is given by the y which maximizes F(x,y).
<p>
If you want to see example code that uses this object then take a look at
the implementation of the
<a href="dlib/svm/svm_multiclass_linear_trainer.h.html">svm_multiclass_linear_trainer</a>
object.
</p>
<br/>
For an introduction to structured support vector machines you should consult
the following paper:
<blockquote>
Predicting Structured Objects with Support Vector Machines by
By Thorsten Joachims, Thomas Hofmann, Yisong Yue, and Chun-nam Yu
</blockquote>
For a more detailed discussion of the particular algorithm implemented by this
object see the following paper:
<blockquote>
T. Joachims, T. Finley, Chun-Nam Yu, Cutting-Plane Training of Structural SVMs,
Machine Learning, 77(1):27-59, 2009.
</blockquote>
Note that this object is essentially a tool for solving the 1-Slack structural
SVM with margin-rescaling. Specifically, see Algorithm 3 in the above referenced
paper.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>structural_svm_problem_threaded</name>
<file>dlib/svm_threaded.h</file>
<spec_file link="true">dlib/svm/structural_svm_problem_threaded_abstract.h</spec_file>
<description>
This is just a version of the <a href="#structural_svm_problem">structural_svm_problem</a>
which is capable of using multiple cores/threads at a time. You should use it if
you have a multi-core CPU and the separation oracle takes a long time to compute.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>svm_struct_controller_node</name>
<file>dlib/svm_threaded.h</file>
<spec_file link="true">dlib/svm/structural_svm_distributed_abstract.h</spec_file>
<description>
This object is a tool for distributing the work involved in solving a
<a href="#structural_svm_problem">structural_svm_problem</a> across many computers.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>svm_struct_processing_node</name>
<file>dlib/svm_threaded.h</file>
<spec_file link="true">dlib/svm/structural_svm_distributed_abstract.h</spec_file>
<description>
This object is a tool for distributing the work involved in solving a
<a href="#structural_svm_problem">structural_svm_problem</a> across many computers.
</description>
</component>
<!-- ************************************************************************* -->
</components>
......
......@@ -44,8 +44,6 @@
<item>solve_qp2_using_smo</item>
<item>solve_qp3_using_smo</item>
<item>oca</item>
<item>structural_svm_problem</item>
<item>structural_svm_problem_threaded</item>
<item>solve_least_squares</item>
<item>solve_least_squares_lm</item>
<item>solve_trust_region_subproblem</item>
......@@ -683,67 +681,6 @@ subject to the following constraint:
<!-- ************************************************************************* -->
<component>
<name>structural_svm_problem</name>
<file>dlib/svm.h</file>
<spec_file link="true">dlib/svm/structural_svm_problem_abstract.h</spec_file>
<description>
This object, when used with the <a href="#oca">oca</a> optimizer, is a tool
for solving the optimization problem associated
with a structural support vector machine. A structural SVM is a supervised
machine learning method for learning to predict complex outputs. This is
contrasted with a binary classifier which makes only simple yes/no predictions.
A structural SVM, on the other hand, can learn to predict outputs as complex
as entire parse trees. To do this, it learns a function F(x,y) which measures
how well a particular data sample x matches a label y. When used for prediction,
the best label for a new x is given by the y which maximizes F(x,y).
<p>
If you want to see example code that uses this object then take a look at
the implementation of the
<a href="dlib/svm/svm_multiclass_linear_trainer.h.html">svm_multiclass_linear_trainer</a>
object.
</p>
<br/>
For an introduction to structured support vector machines you should consult
the following paper:
<blockquote>
Predicting Structured Objects with Support Vector Machines by
By Thorsten Joachims, Thomas Hofmann, Yisong Yue, and Chun-nam Yu
</blockquote>
For a more detailed discussion of the particular algorithm implemented by this
object see the following paper:
<blockquote>
T. Joachims, T. Finley, Chun-Nam Yu, Cutting-Plane Training of Structural SVMs,
Machine Learning, 77(1):27-59, 2009.
</blockquote>
Note that this object is essentially a tool for solving the 1-Slack structural
SVM with margin-rescaling. Specifically, see Algorithm 3 in the above referenced
paper.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>structural_svm_problem_threaded</name>
<file>dlib/svm_threaded.h</file>
<spec_file link="true">dlib/svm/structural_svm_problem_threaded_abstract.h</spec_file>
<description>
This is just a version of the <a href="#structural_svm_problem">structural_svm_problem</a>
which is capable of using multiple cores/threads at a time. You should use it if
you have a multi-core CPU and the separation oracle takes a long time to compute.
</description>
</component>
<!-- ************************************************************************* -->
</components>
......
......@@ -32,8 +32,10 @@
<term file="dlib/optimization/optimization_line_search_abstract.h.html" name="optimize_single_variable_failure"/>
<term file="dlib/optimization/optimization_bobyqa_abstract.h.html" name="bobyqa_failure"/>
<term file="dlib/optimization/optimization_oca_abstract.h.html" name="oca_problem"/>
<term file="optimization.html" name="structural_svm_problem"/>
<term file="optimization.html" name="structural_svm_problem_threaded"/>
<term file="ml.html" name="structural_svm_problem"/>
<term file="ml.html" name="structural_svm_problem_threaded"/>
<term file="ml.html" name="svm_struct_controller_node"/>
<term file="ml.html" name="svm_struct_processing_node"/>
<term file="dlib/optimization/optimization_solve_qp2_using_smo_abstract.h.html" name="invalid_nu_error"/>
<term file="dlib/optimization/optimization_solve_qp2_using_smo_abstract.h.html" name="maximum_nu"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment