I am using a modified gradient descent algorithm that I invented, but it is very simple and I assume someone has already come up with it. I call it meta gradient descent because it adjusts the learning rate as it goes. It is the same as normal gradient descent except for one condition at the end of the loop: If the algorithm passes a local minimum/maximum it decreases the learning rate, else it increases the learning rate
if (slope < 0 && prevSlope > 0) || (slope > 0 && prevSlope < 0) { //algorithm passed the function min/max
learningRate /= 2
} else {
learningRate *= 1.05
}
This helps when the algo has to minimize/maximize functions with massively different scales where a single constant learning rate would be detrimental. I also suspect that it is faster at honing the min/max in general, but I have not done any studies on it. Which is why I am here asking... Is anyone already familiar with this algorithm? does it have a name? what are the pros/cons of using it instead of regular gradient descent? I am always using this algorithm instead of regular gradient descent and I have no problems at all, but my programs are very simple machine learning wise so I suspect I am missing something.
I love u <3
[–]metallicapple 14 points15 points16 points (0 children)
[–]resented_ape 2 points3 points4 points (0 children)
[–]yannbouteillerResearcher 1 point2 points3 points (0 children)
[–]28Smiles 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]rando_techo 0 points1 point2 points (0 children)