updated the docs

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%403191
This commit is contained in:
Davis King 2009-09-07 04:09:51 +00:00
parent 9fb35897b7
commit ea35161a94
3 changed files with 151 additions and 32 deletions

View File

@ -32,13 +32,19 @@
<name>Optimization</name> <name>Optimization</name>
<sub> <sub>
<item>derivative</item> <item>derivative</item>
<item>negate_function</item>
<item>make_line_search_function</item> <item>make_line_search_function</item>
<item>poly_min_extrap</item> <item>poly_min_extrap</item>
<item>line_search</item> <item>line_search</item>
<item>find_min_quasi_newton</item> <item>find_min</item>
<item>find_min_conjugate_gradient</item> <item>find_min_using_approximate_derivatives</item>
<item>find_min_quasi_newton2</item> <item>find_max</item>
<item>find_min_conjugate_gradient2</item> <item>find_max_using_approximate_derivatives</item>
<item>cg_search_strategy</item>
<item>bfgs_search_strategy</item>
<item>lbfgs_search_strategy</item>
<item>objective_delta_stop_strategy</item>
</sub> </sub>
</item> </item>
<item nolink="true"> <item nolink="true">
@ -129,12 +135,28 @@
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component> <component>
<name>make_line_search_function</name> <name>negate_function</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file>
<description>
This is a function that takes another function as input and returns
a function object that computes the negation of the input function.
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>make_line_search_function</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_line_search_abstract.h</spec_file>
<description> <description>
This is a function that takes another function f(x) as input and returns This is a function that takes another function f(x) as input and returns
a function object l(z) = f(start + z*direction). a function object l(z) = f(start + z*direction). It is useful for
turning multi-variable functions into single-variable functions for
use with the <a href="#line_search">line_search</a> routine.
</description> </description>
</component> </component>
@ -145,7 +167,7 @@
<component> <component>
<name>poly_min_extrap</name> <name>poly_min_extrap</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_line_search_abstract.h</spec_file>
<description> <description>
This function finds the 3rd degree polynomial that interpolates a This function finds the 3rd degree polynomial that interpolates a
set of points and returns you the minimum of that polynomial. set of points and returns you the minimum of that polynomial.
@ -158,7 +180,7 @@
<component> <component>
<name>line_search</name> <name>line_search</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_line_search_abstract.h</spec_file>
<description> <description>
Performs a line search on a given function and returns the input Performs a line search on a given function and returns the input
that makes the function significantly smaller. that makes the function significantly smaller.
@ -168,14 +190,24 @@
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component> <component>
<name>find_min_quasi_newton</name> <name>cg_search_strategy</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_search_strategies_abstract.h</spec_file>
<description> <description>
Performs an unconstrained minimization of the potentially nonlinear function f() using the This object represents a strategy for determining which direction
BFGS quasi newton method. a <a href="#line_search">line search</a> should be carried out along. This particular object
is an implementation of the Polak-Ribiere conjugate gradient method
for determining this direction.
<p>
This method uses an amount of memory that is linear in the number
of variables to be optimized. So it is capable of handling problems
with a very large number of variables. However, it is generally
not as good as the L-BFGS algorithm (see the
<a href="#lbfgs_search_strategy">lbfgs_search_strategy</a> class).
</p>
</description> </description>
<examples> <examples>
<example>optimization_ex.cpp.html</example> <example>optimization_ex.cpp.html</example>
@ -186,12 +218,21 @@
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component> <component>
<name>find_min_conjugate_gradient</name> <name>bfgs_search_strategy</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_search_strategies_abstract.h</spec_file>
<description> <description>
Performs an unconstrained minimization of the potentially nonlinear function f() using a This object represents a strategy for determining which direction
conjugate gradient method. a <a href="#line_search">line search</a> should be carried out along. This particular object
is an implementation of the BFGS quasi-newton method for determining
this direction.
<p>
This method uses an amount of memory that is quadratic in the number
of variables to be optimized. It is generally very effective but
if your problem has a very large number of variables then it isn't
appropriate. Instead You should try the <a href="#lbfgs_search_strategy">lbfgs_search_strategy</a>.
</p>
</description> </description>
<examples> <examples>
<example>optimization_ex.cpp.html</example> <example>optimization_ex.cpp.html</example>
@ -202,13 +243,20 @@
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component> <component>
<name>find_min_quasi_newton2</name> <name>lbfgs_search_strategy</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_search_strategies_abstract.h</spec_file>
<description> <description>
Performs an unconstrained minimization of the potentially nonlinear function f() using the This object represents a strategy for determining which direction
BFGS quasi newton method. This version doesn't take a gradient function of f() a <a href="#line_search">line search</a> should be carried out along. This particular object
but instead numerically approximates the gradient. is an implementation of the L-BFGS quasi-newton method for determining
this direction.
<p>
This method uses an amount of memory that is linear in the number
of variables to be optimized. This makes it an excellent method
to use when an optimization problem has a large number of variables.
</p>
</description> </description>
<examples> <examples>
<example>optimization_ex.cpp.html</example> <example>optimization_ex.cpp.html</example>
@ -219,13 +267,15 @@
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component> <component>
<name>find_min_conjugate_gradient2</name> <name>objective_delta_stop_strategy</name>
<file>dlib/optimization.h</file> <file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file> <spec_file link="true">dlib/optimization/optimization_stop_strategies_abstract.h</spec_file>
<description> <description>
Performs an unconstrained minimization of the potentially nonlinear function f() using a This object represents a strategy for deciding if an optimization
conjugate gradient method. This version doesn't take a gradient function of f() algorithm should terminate. This particular object looks at the
but instead numerically approximates the gradient. change in the objective function from one iteration to the next and
bases its decision on how large this change is. If the change
is below a user given threshold then the search stops.
</description> </description>
<examples> <examples>
<example>optimization_ex.cpp.html</example> <example>optimization_ex.cpp.html</example>
@ -233,6 +283,68 @@
</component> </component>
<!-- ************************************************************************* -->
<component>
<name>find_min</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file>
<description>
Performs an unconstrained minimization of a nonlinear function using
some search strategy (e.g. <a href="#bfgs_search_strategy">bfgs_search_strategy</a>).
</description>
<examples>
<example>optimization_ex.cpp.html</example>
</examples>
</component>
<!-- ************************************************************************* -->
<component>
<name>find_min_using_approximate_derivatives</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file>
<description>
Performs an unconstrained minimization of a nonlinear function using
some search strategy (e.g. <a href="#bfgs_search_strategy">bfgs_search_strategy</a>).
This version doesn't take a gradient function but instead numerically approximates
the gradient.
</description>
<examples>
<example>optimization_ex.cpp.html</example>
</examples>
</component>
<!-- ************************************************************************* -->
<component>
<name>find_max</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file>
<description>
Performs an unconstrained maximization of a nonlinear function using
some search strategy (e.g. <a href="#bfgs_search_strategy">bfgs_search_strategy</a>).
</description>
</component>
<!-- ************************************************************************* -->
<component>
<name>find_max_using_approximate_derivatives</name>
<file>dlib/optimization.h</file>
<spec_file link="true">dlib/optimization/optimization_abstract.h</spec_file>
<description>
Performs an unconstrained maximization of a nonlinear function using
some search strategy (e.g. <a href="#bfgs_search_strategy">bfgs_search_strategy</a>).
This version doesn't take a gradient function but instead numerically approximates
the gradient.
</description>
</component>
<!-- ************************************************************************* --> <!-- ************************************************************************* -->
<component checked="true"> <component checked="true">

View File

@ -109,7 +109,9 @@
<a href="dlib/matrix/matrix_utilities_abstract.h.html#trans">transpose</a>, <a href="dlib/matrix/matrix_utilities_abstract.h.html#trans">transpose</a>,
<a href="dlib/matrix/matrix_math_functions_abstract.h.html#sin">trig functions</a>, etc...</li> <a href="dlib/matrix/matrix_math_functions_abstract.h.html#sin">trig functions</a>, etc...</li>
<li>Unconstrained non-linear optimization algorithms such as <li>Unconstrained non-linear optimization algorithms such as
<a href="algorithms.html#find_min_conjugate_gradient">conjugate gradient</a> and <a href="algorithms.html#find_min_quasi_newton">quasi newton</a> techniques</li> <a href="algorithms.html#cg_search_strategy">conjugate gradient</a>,
<a href="algorithms.html#bfgs_search_strategy">BFGS</a>, and
<a href="algorithms.html#lbfgs_search_strategy">L-BFGS</a> techniques</li>
<li>A <a href="algorithms.html#bigint">big integer</a> object</li> <li>A <a href="algorithms.html#bigint">big integer</a> object</li>
<li>A <a href="algorithms.html#rand">random number</a> object</li> <li>A <a href="algorithms.html#rand">random number</a> object</li>
</ul> </ul>

View File

@ -33,10 +33,15 @@
<term file="algorithms.html" name="make_line_search_function"/> <term file="algorithms.html" name="make_line_search_function"/>
<term file="algorithms.html" name="poly_min_extrap"/> <term file="algorithms.html" name="poly_min_extrap"/>
<term file="algorithms.html" name="line_search"/> <term file="algorithms.html" name="line_search"/>
<term file="algorithms.html" name="find_min_quasi_newton"/> <term file="algorithms.html" name="find_min"/>
<term file="algorithms.html" name="find_min_conjugate_gradient"/> <term file="algorithms.html" name="find_min_using_approximate_derivatives"/>
<term file="algorithms.html" name="find_min_quasi_newton2"/> <term file="algorithms.html" name="find_max"/>
<term file="algorithms.html" name="find_min_conjugate_gradient2"/> <term file="algorithms.html" name="find_max_using_approximate_derivatives"/>
<term file="algorithms.html" name="objective_delta_stop_strategy"/>
<term file="algorithms.html" name="negate_function"/>
<term file="algorithms.html" name="cg_search_strategy"/>
<term file="algorithms.html" name="bfgs_search_strategy"/>
<term file="algorithms.html" name="lbfgs_search_strategy"/>
<term file="bayes.html" name="set_node_value"/> <term file="bayes.html" name="set_node_value"/>
<term file="bayes.html" name="node_value"/> <term file="bayes.html" name="node_value"/>