f(x) = f(x_n) + Df(x_n)(x - x_n) + O(||x - x_n||^2)
Drop the quadratic term, equate to 0, and you get an approximate solution for x for the next iteration x_{n+1}: x_{n+1} = x_n - Df(x_n)^{-1} * f(x_n)
Like this it's the Newton method. The problem is that the Jacobian Df(x_n) is a matrix of size k x k, and inverting it may require O(k^3) work.So, pretty much all schemes are based on approximations of the Jacobian.
Gradient descent for example replaces Df(x_n)^{-1} with a scalar a, so it's O(1) work to "compute" it:
x_{n+1} = x_n - a * f(x_n)
A method like L-BFGS tries to build a relatively cheap approximation to the inverse of the Jacobian during iteration, resulting in O(k) work to compute: x_{n+1} = x_n - P * f(x_n)
Other methods may exploit sparsity of the Jacobian, or solve the linear system Df(x_n)z = f(x_n) only approximately for z using e.g. iterative methods.Note: in optimization problems, the function f is typically a gradient of a cost function, and the jacobian is then the hessian of that cost function.
A colleague and myself experimented with some alternatives and passed notes once in a while... For certain modelling problems you can save literal gpu days by going against the grain and get better results.
Oh well...
Sometimes I wonder if people in machine learning ever look at literature.
Basic iteration schemes like the secant method (ok, 1-dimensional) have been known well over 3000 years.
Newton's method is over 300 years old.
Quasi-Newton methods (the secant method being an example) became popular in the early 1960s.
I'm somewhat seasoned on optimization methods personally, but yea it seems once people go ML they tend to um stop studying the fundamental literature that ML came from. "Online masters program learn AI in 12 weeks from nothing!". Oh okay so calculus won't be included in that... Or statistics... Or... Yep it's going to be scikit learn notebooks ...
> Baseless empirical result that probably was p hacked
This to me seems like the biggest regression in science. It's all heresy which is very hard to re-produce or learn general lessons from. It feels like disparate social science methodologies are being used to study math.
Nobody is going to look back and benefit from these papers. I often bring up to ML folks limitations proven in the book Perceptrons and wonder how their models differ. I have never gotten a response.
What field did you move to?
I float between a few technical fields. Some in natural science, computer science, data science hybrid roles, data bases/engineering, etc. Not a jack of all trades, nor a master of none. What I do have mastered isn't something people hire for, so basically I am an averagely smart person who will take any job and figure it out to pay the bills.
At home though I play with all of the areas of creation I can get my hands on. I guess I am just in the field of discovering new things and making things.
They don't.
A few other things they seem completely unaware of:
- other ways to represent functions besides neural networks (harmonic analysis, polynomials, etc)
- other models exist besides neural networks. ie. if you can model the problem with a simple equation you can just optimize that.
- polynomial regression.
Someone who has read "numerical recipies" is probably more capable in solving ML problems than an "ML software engineer".
Gradient descent is great because it is first order, thus cheap to compute since you don’t need a Hessian, points to a descent direction, works with anything that is differentiable or piece-wise differentiable without caveats, and given the millions of parameters in today’s there is always a descent direction.
If you do population methods, you suffer in terms of memory because you need to keep all those candidates, evaluate them individually, and then update them. This bounds the memory you can use.
More memory means more parameters, means you enter the interpolation scheme means your model behaves well in real world.
If you try to go with second order optimisation methods then you need to go for Hessian free methods as computing the Hessian is computationally intractable for large NNs.
You can attempt to build a local model of the loss landscape but that is expensive and has many caveats.
Nocedal et al is a recommended read for numerical optimisation theory.
The surprising thing about large neural networks is that the difference in quality between the local minima goes down and makes it less and less relevant which one you end up in. The global minimum may also lead to overfitting so you probably don't even want to go there.
Is there something to gain by trying to eliminate or exploit such symmetries?
Re the example; yes that is correct; a permutation is simply a row-wise shuffled identity matrix, it doesn’t affect the gradients or performance.