Nocedal's text, 'Numerical Optimization' is the standard for that field.
As he notes, I've always been surprised that more techniques in ML do not leverage the Hessian to get quadratic convergence rates.
Nevertheless, the most interesting tidbit of this text, speaking as a Computational Scientist, was,
'Much more could be said about this rapidly evolving field. Perhaps most importantly, we have neither discussed nor analyzed at length the opportunities offered by parallel and distributed computing'
The scalability of these algorithms, in particular across distributed memory systems (e.g. MPI) at extreme scale will be an extremely important question. I'm very interested in attempting to scale these networks to tens or hundreds of thousands of processing cores. With heroic scale systems now often eclipsing millions of cores, there is quite a bit of room to scale up, if the algorithms are indeed robust.
lbfgs is quite common for eg regression w/o l1 penalties.
MPI is not great at even high hundreds of cores; it's too much work to build redundancy / retry / restart / clean failure in. You really need a framework that helps with this.
Sure, you can build highly reliable supercomputers. But the majority of us are running on google style networks of mostly-reliable boxes. I worked for a company that built distributed ML software, and even at eg hundreds of boxes you will regularly see failures. Customers will be very unhappy unless your code tolerates that.
>Not necessarily, often derivatives are analytically known in ML.
The focus here is largely on deep neural networks. In this domain, the Hessian cannot be computed and SGD (with minor variants) continues to be the golden standard.
I've used MPI on Titan for thousands of cores. It's essentially what MPI was invented for. I also know people who perform QMC simulations using all of the cores on the machine at once using software built upon MPI.
The intuition for it is that when optimizing a machine learning objective all the way to machine precision, you at some point cross an (unknown) threshold where you are over-optimizing the parameters to the particular model class you're using, but that's probably too much faith in your model specification. So stochastic optimization and early stopping (before gradient is zero) provides a form of regularization.
7 comments
[ 2.6 ms ] story [ 25.9 ms ] threadAs he notes, I've always been surprised that more techniques in ML do not leverage the Hessian to get quadratic convergence rates.
Nevertheless, the most interesting tidbit of this text, speaking as a Computational Scientist, was,
'Much more could be said about this rapidly evolving field. Perhaps most importantly, we have neither discussed nor analyzed at length the opportunities offered by parallel and distributed computing'
The scalability of these algorithms, in particular across distributed memory systems (e.g. MPI) at extreme scale will be an extremely important question. I'm very interested in attempting to scale these networks to tens or hundreds of thousands of processing cores. With heroic scale systems now often eclipsing millions of cores, there is quite a bit of room to scale up, if the algorithms are indeed robust.
lbfgs is quite common for eg regression w/o l1 penalties.
MPI is not great at even high hundreds of cores; it's too much work to build redundancy / retry / restart / clean failure in. You really need a framework that helps with this.
Not necessarily, often derivatives are analytically known in ML.
> MPI is not great at even high hundreds of cores
? You realize that Sequia, which I have run on, has codes that scale to all two million processors.
The focus here is largely on deep neural networks. In this domain, the Hessian cannot be computed and SGD (with minor variants) continues to be the golden standard.
I've used MPI on Titan for thousands of cores. It's essentially what MPI was invented for. I also know people who perform QMC simulations using all of the cores on the machine at once using software built upon MPI.
The intuition for it is that when optimizing a machine learning objective all the way to machine precision, you at some point cross an (unknown) threshold where you are over-optimizing the parameters to the particular model class you're using, but that's probably too much faith in your model specification. So stochastic optimization and early stopping (before gradient is zero) provides a form of regularization.