[jira] Created: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] Created: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
------------------------------------------------------------------------------------------

                 Key: MATH-362
                 URL: https://issues.apache.org/jira/browse/MATH-362
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Roman Werpachowski


LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org

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

Luc Maisonobe commented on MATH-362:
------------------------------------

Ooops. You are right.
The Levenberg-Marquardt optimizer uses specific convergence parameters which can be set by   setInitialStepBoundFactor, setCostRelativeTolerance, setParRelativeTolerance and setOrthoTolerance.
The most important convergence tuning are either setCostRelativeTolerance for a convergence on the cost itself or setParRelativeTolerance for a convergence on the parameters.

I'm not sure how to solve this. Do the existing tuning parameters fit your needs or not ? Some convergence criteria can be expressed with both methods, but not all. Should we keep both setting as alternate methods or should we remove one and rely on the remaining one ?


> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Roman Werpachowski
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Roman Werpachowski commented on MATH-362:
-----------------------------------------

I would keep using orthoTolerance as it is used now:

292                if (maxCosine <= orthoTolerance) {
293                    // convergence has been reached
294                    return new VectorialPointValuePair(point, objective);
295                }

and then use costRelativeTolerance & parRelativeTolerance if and only if the convergence checker is null, otherwise use the convergence checker and ignore {costRelativeTolerance, parRelativeTolerance}.

What I am missing now is the ability to bail out if the absolute distance from the target falls below some value ("close enough").

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Roman Werpachowski
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Issue Comment Edited: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Roman Werpachowski edited comment on MATH-362 at 4/6/10 5:20 PM:
-----------------------------------------------------------------

I would keep using orthoTolerance as it is used now:

292                if (maxCosine <= orthoTolerance) {

293                    // convergence has been reached

294                    return new VectorialPointValuePair(point, objective);

295                }

and then use costRelativeTolerance & parRelativeTolerance if and only if the convergence checker is null, otherwise use the convergence checker and ignore {costRelativeTolerance, parRelativeTolerance}.

What I am missing now is the ability to bail out if the absolute distance from the target falls below some value ("close enough").

      was (Author: roman.werpachowski):
    I would keep using orthoTolerance as it is used now:

292                if (maxCosine <= orthoTolerance) {
293                    // convergence has been reached
294                    return new VectorialPointValuePair(point, objective);
295                }

and then use costRelativeTolerance & parRelativeTolerance if and only if the convergence checker is null, otherwise use the convergence checker and ignore {costRelativeTolerance, parRelativeTolerance}.

What I am missing now is the ability to bail out if the absolute distance from the target falls below some value ("close enough").
 

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Roman Werpachowski
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Issue Comment Edited: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Roman Werpachowski edited comment on MATH-362 at 4/6/10 5:22 PM:
-----------------------------------------------------------------

I would keep using orthoTolerance as it is used now:

{quote}
292                if (maxCosine <= orthoTolerance) \{
293                    // convergence has been reached
294                    return new VectorialPointValuePair(point, objective);
295                \}
{quote}

and then use costRelativeTolerance & parRelativeTolerance if and only if the convergence checker is null, otherwise use the convergence checker and ignore {costRelativeTolerance, parRelativeTolerance}.

What I am missing now is the ability to bail out if the absolute distance from the target falls below some value ("close enough").

      was (Author: roman.werpachowski):
    I would keep using orthoTolerance as it is used now:

292                if (maxCosine <= orthoTolerance) {

293                    // convergence has been reached

294                    return new VectorialPointValuePair(point, objective);

295                }

and then use costRelativeTolerance & parRelativeTolerance if and only if the convergence checker is null, otherwise use the convergence checker and ignore {costRelativeTolerance, parRelativeTolerance}.

What I am missing now is the ability to bail out if the absolute distance from the target falls below some value ("close enough").
 

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Roman Werpachowski
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/MATH-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phil Steitz updated MATH-362:
-----------------------------

    Affects Version/s: 2.1

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/MATH-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phil Steitz updated MATH-362:
-----------------------------

    Fix Version/s: 2.2

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Matt Price commented on MATH-362:
---------------------------------

I've spent that last few days trying to find a good curve fitting library for Java and got excited when I learned of Commons Math.  Unfortunately, its curve fitting is very unreliable.  I'm hoping that this bug is what is causing the problems that I'm seeing.  I'm comparing data from NIST and results from DataFitX and it is apparent that Commons Math is not yet up to the task.  My fingers are crossed that its quality in the curve fitting area will be improved in the near future.  Keep up the good work Apache.

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Roman Werpachowski commented on MATH-362:
-----------------------------------------

Double check how you use it, Matt. I have succesfully used this curve fitting in production.

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Luc Maisonobe commented on MATH-362:
------------------------------------

Matt, could you please describe the problem you encounter more precisely (i.e. with numerical examples) and preferably in a new JIRA issue ? We will check if the two problems are related and link the issues afterwards if it appears they are.

Thanks

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Matt Price commented on MATH-362:
---------------------------------

It's good to see such quick responses.  I'll open a new JIRA issue and spend some time putting together code, data and a detailed description of the problem I'm seeing.  Thanks Apache for all your hard work.

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Issue Comment Edited: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Matt Price edited comment on MATH-362 at 5/27/10 2:20 PM:
----------------------------------------------------------

I've spent that last few days trying to find a good curve fitting library for Java and got excited when I learned of Commons Math.  Unfortunately, its curve fitting is very unreliable.  I'm hoping that this bug is what is causing the problems that I'm seeing.  I'm comparing data from NIST and results from DataFitX and it is apparent that Commons Math is not yet up to the task.  My fingers are crossed that its quality in the curve fitting area will be improved in the near future.  Keep up the good work Apache.

I've opened an issue about the problems I'm seeing, https://issues.apache.org/jira/browse/MATH-372

      was (Author: mprice):
    I've spent that last few days trying to find a good curve fitting library for Java and got excited when I learned of Commons Math.  Unfortunately, its curve fitting is very unreliable.  I'm hoping that this bug is what is causing the problems that I'm seeing.  I'm comparing data from NIST and results from DataFitX and it is apparent that Commons Math is not yet up to the task.  My fingers are crossed that its quality in the curve fitting area will be improved in the near future.  Keep up the good work Apache.
 

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Issue Comment Edited: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Matt Price edited comment on MATH-362 at 5/27/10 2:20 PM:
----------------------------------------------------------

It's good to see such quick responses.  I'll open a new JIRA issue and spend some time putting together code, data and a detailed description of the problem I'm seeing.  Thanks Apache for all your hard work.

I've opened an issue regarding the problem, https://issues.apache.org/jira/browse/MATH-372

      was (Author: mprice):
    It's good to see such quick responses.  I'll open a new JIRA issue and spend some time putting together code, data and a detailed description of the problem I'm seeing.  Thanks Apache for all your hard work.
 

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Resolved: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

     [ https://issues.apache.org/jira/browse/MATH-362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luc Maisonobe resolved MATH-362.
--------------------------------

    Resolution: Fixed

Fixed in subversion repository as of r949433.
Thanks for reporting the issue

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (MATH-362) LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it

JIRA jira@apache.org
In reply to this post by JIRA jira@apache.org

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

Roman Werpachowski commented on MATH-362:
-----------------------------------------

Thank you.

> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it
> ------------------------------------------------------------------------------------------
>
>                 Key: MATH-362
>                 URL: https://issues.apache.org/jira/browse/MATH-362
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.0, 2.1
>            Reporter: Roman Werpachowski
>             Fix For: 2.2
>
>
> LevenbergMarquardtOptimizer ignores the VectorialConvergenceChecker parameter passed to it. This makes it hard to specify custom stopping criteria for the optimizer.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[Wish] Make string WRONG_ORDER_ENDPOINTS_MESSAGE public

ole ersoy
In reply to this post by JIRA jira@apache.org
Hi,

I'm overriding cumulativeProbability and inverseCumulativeProbability on AbstractIntegerDistribution, and was wondering whether the OUT_OF_RANGE_POINT and WRONG_ORDER_ENDPOINTS_MESSAGE strings could be made public, such that the sub classes can have consistent exception messages?  Let me know if I should file a ticket.

TIA,
- Ole
Reply | Threaded
Open this post in threaded view
|

[math] Re: [Wish] Make string WRONG_ORDER_ENDPOINTS_MESSAGE public

Luc Maisonobe
Le 07/06/2010 17:43, Ole Ersoy a écrit :
> Hi,

Hi,

First, could you add the commons component name (here math) in bracket
in the subject line when posting to this list ? The list is shared among
all commons components and this helps filtering.

>
> I'm overriding cumulativeProbability and inverseCumulativeProbability on
> AbstractIntegerDistribution, and was wondering whether the
> OUT_OF_RANGE_POINT and WRONG_ORDER_ENDPOINTS_MESSAGE strings could be
> made public, such that the sub classes can have consistent exception
> messages?  Let me know if I should file a ticket.

Yes, you should file a ticket in our JIRA system. I think protected
would be a better visibility specification than public in that case.

Regards
Luc

>
> TIA,
> - Ole