Implicit SGD
NumPy implementation and empirical study of implicit stochastic gradient descent (Toulis et al.) alongside standard explicit SGD baselines. Implicit SGD evaluates the gradient at the next iterate rather than the current one, which dramatically improves stability on ill-conditioned problems where explicit SGD diverges or oscillates with even modest step sizes. The repo runs a controlled comparison on synthetic regression problems with adjustable condition numbers and noise levels. Companion to BU DS 522 coursework on optimization (Adam / AMSGrad / RMSProp comparison and article evaluations of Reddi 2018 and Toulis 2016).
Highlights
- NumPy implementation of implicit SGD alongside explicit SGD baselines
- Synthetic regression rig with adjustable condition number and noise
- Empirical demonstration of stability gains on ill-conditioned problems
- Tied to a written evaluation of Toulis 2016 and Reddi 2018 (AMSGrad)
Tech
The canonical source for this project is on GitHub.
View on GitHubREADME · github.com/ArkashJ/implict-SGD-implementation
Code to write up the implicit SGD algorithm for loss functions.
- Modifications made to the sgd.R file to add code for Adam, AMSGrad, and RMSProp.
- Added code to plot mse for theta values for each of the algorithms in functions.R (run function)
- Added code to calculate time and memory usage for each of the algorithms in sgd.R