commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolaus Hansen (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MATH-867) CMAESOptimizer with bounds fits finely near lower bound and coarsely near upper bound.
Date Mon, 24 Sep 2012 16:54:07 GMT

    [ https://issues.apache.org/jira/browse/MATH-867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13461891#comment-13461891
] 

Nikolaus Hansen edited comment on MATH-867 at 9/25/12 3:53 AM:
---------------------------------------------------------------

It seems important to point out that a parameter transformation or scaling and variable boundaries
are two different things. That they are mixed in the code/interface I would indeed consider
as a bug. Generally, the boundary handling can be done without any variable transformation
and therefore does not need to effect precision. 

If we want positive variable values only, the code should IMHO support only applying a lower
bound in some way. 

Maybe it is still important to mention: a relevant initial parameter to CMA-ES is an initial
step-size (a standard deviation) possibly in each coordinate. You might think of this step-size
as similar to the width of the initial simplex in Nelder&Mead. Choosing this step-size
is equivalent to choosing a different "diff"-factor in the encoding as suggested above. 

                
      was (Author: jolievie):
    It seems important to point out that a parameter transformation or scaling and variable
boundaries are two different things. That they are mixed in the code/interface I would indeed
consider as a bug. Generally, the boundary handling can be done without any variable transformation
and therefore does not need to effect precision. 

If we want positive variable values only, the code should support only applying a lower bound
in some way. 

My suggestion would be indeed to have as interface boundaries and a unit-scale for each parameter
(by default one). Only the latter would control the "encoding", in the way suggested above
as "diff". 

Maybe it is still important to mention: a relevant initial parameter to CMA-ES is an initial
step-size (a standard deviation) related to the unit-scale, which seem to be hidden from the
user as it is now. You might think of this step-size as similar to the width of the initial
simplex in Nelder&Mead. 

                  
> CMAESOptimizer with bounds fits finely near lower bound and coarsely near upper bound.

> ---------------------------------------------------------------------------------------
>
>                 Key: MATH-867
>                 URL: https://issues.apache.org/jira/browse/MATH-867
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Frank Hess
>         Attachments: Math867Test.java
>
>
> When fitting with bounds, the CMAESOptimizer fits finely near the lower bound and coarsely
near the upper bound.  This is because it internally maps the fitted parameter range into
the interval [0,1].  The unit of least precision (ulp) between floating point numbers is much
smaller near zero than near one.  Thus, fits have much better resolution near the lower bound
(which is mapped to zero) than the upper bound (which is mapped to one).  I will attach a
example program to demonstrate.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message