-
Notifications
You must be signed in to change notification settings - Fork 689
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
expose improvementTol inside FirstOrderMinimizer #373
Conversation
thanks. Yeah, I need to figure out the convergence checks. |
expose improvementTol inside FirstOrderMinimizer
@dlwh, are you going to publish this so I can upgrade Spark 1.3 dependency before it's released? thanks. |
sure. what's the timeline? On Mon, Mar 2, 2015 at 6:17 PM, DB Tsai notifications@github.com wrote:
|
Is OWLQN affected by this issue? Spark 1.3 is RC2, so if we want to change, we need to be fast. Thanks. |
ok, Debasish has been working on his new optimization algorithm. I imagine On Mon, Mar 2, 2015 at 6:49 PM, DB Tsai notifications@github.com wrote:
|
owlqn's convergence conditions are also fixed by this. On Mon, Mar 2, 2015 at 7:17 PM, David Hall david.lw.hall@gmail.com wrote:
|
Sounds great. Then let's publish the breeze with this fix, and I'll open another PR to Spark. |
0.11 is released. Will take a bit to propagate to maven central. |
…ce bug LBFGS and OWLQN in Breeze 0.10 has convergence check bug. This is fixed in 0.11, see the description in Breeze project for detail: scalanlp/breeze#373 (comment) Author: Xiangrui Meng <meng@databricks.com> Author: DB Tsai <dbtsai@alpinenow.com> Author: DB Tsai <dbtsai@dbtsai.com> Closes #4879 from dbtsai/breeze and squashes the following commits: d848f65 [DB Tsai] Merge pull request #1 from mengxr/AlpineNow-breeze c2ca6ac [Xiangrui Meng] upgrade to breeze-0.11.1 35c2f26 [Xiangrui Meng] fix LRSuite 397a208 [DB Tsai] upgrade breeze (cherry picked from commit 76e20a0) Signed-off-by: Xiangrui Meng <meng@databricks.com>
…ce bug LBFGS and OWLQN in Breeze 0.10 has convergence check bug. This is fixed in 0.11, see the description in Breeze project for detail: scalanlp/breeze#373 (comment) Author: Xiangrui Meng <meng@databricks.com> Author: DB Tsai <dbtsai@alpinenow.com> Author: DB Tsai <dbtsai@dbtsai.com> Closes #4879 from dbtsai/breeze and squashes the following commits: d848f65 [DB Tsai] Merge pull request #1 from mengxr/AlpineNow-breeze c2ca6ac [Xiangrui Meng] upgrade to breeze-0.11.1 35c2f26 [Xiangrui Meng] fix LRSuite 397a208 [DB Tsai] upgrade breeze
When I run the LBFGS implementation of Spark on a moderate size proprietary data set (~ 5M samples), I see the resultant vector diverges from some standard solver (e.g., liblinear, sci-learn) on around half of the coefficients. The computation usually stops around 20 iterations although I set the iteration number to be 100 with a very strict tolerance variable (1e-15). The formulation is strongly convex so the solution should be unique. Configing the
improvementTol
variable insideFirstOrderMinimizer.scala
can solve this issue.Two ways of doing this:
improvementTol
variable to LBFGS, as is done in the PRimprovementTol
inFirstOrderMinimizer.scala
I chose the first one here.