Skip to content
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

Initialization Routines #34

Open
cicdw opened this issue Mar 17, 2017 · 2 comments
Open

Initialization Routines #34

cicdw opened this issue Mar 17, 2017 · 2 comments

Comments

@cicdw
Copy link
Collaborator

cicdw commented Mar 17, 2017

An all-too-often ignored side of optimization is the initialization; there is a lot of research out there suggesting that for both convex (and even more so for non-convex) optimization problems, a large amount of work can be saved by initializing algorithms at clever starting values.

Currently we are initializing all algorithms with the 0 vector. Once the API (#11) is sorted out, we should have multiple options for how to initialize, including (but not limited to):

  • random Gaussian initializations
  • running some other, faster algorithm at a very low tolerance (ex: initialization Newton with the output of gradient descent set at a very low tolerance setting)
  • outputs of previous runs (will be built into a refit method, to be raised in a future issue)
  • more interesting but academically well-grounded ideas

cc: @mpancia

@mpancia
Copy link
Contributor

mpancia commented Mar 17, 2017

As we discussed earlier, I think this is a really cool idea, and I'm glad to be part of the discussion.

As a novice to this (and for the purposes of furthering a discussion), do you know any good surveys of what the academically well-grounded things look like and/or some higher-level discussions of the benefits of Smart Initialization™?

@cicdw
Copy link
Collaborator Author

cicdw commented Mar 20, 2017

No surveys that I know of unfortunately, but here's a list off the top of my head:

Ultimately, I think the biggest bang will come from smart initializations when refitting a model, but I'd like to include at least a little thought on initializations from scratch as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants