Минимизация функции - это все равно что пытаться найти самую низкую точку на поверхности. Представьте, что вы идете по холмистой поверхности и пытаетесь добраться до самой низкой точки. Вы найдете направление, которое идет вниз, и идете, пока оно больше не идет вниз. Тогда вы бы выбрали новое направление, которое идет вниз, и идете в этом направлении, пока оно больше не будет идти вниз, и так далее. В конце концов (надеюсь) вы достигнете точки, когда ни одно направление не пойдет вниз. Тогда вы будете на (местном) минимуме.
Алгоритм LM и многие другие алгоритмы минимизации используют эту схему.
Предположим, что минимизируемая функция - это F, и мы находимся в точке x (n) в нашей итерации. Мы хотим найти следующую итерацию x (n + 1) такую, что F (x (n + 1))
Сначала вычислите линейное приближение к F в точке x (n). Легко определить направление спуска линейной функции, поэтому мы используем линейную аппроксимирующую функцию для определения направления спуска.
Далее нам нужно знать, как далеко мы можем пойти в этом выбранном направлении. Если наша аппроксимирующая линейная функция является хорошим приближением для F для большой области вокруг x (n), то мы можем сделать довольно большой шаг. Если это хорошее приближение только очень близко к x (n), то мы можем сделать только очень маленький шаг.
Это то, что делает LM - вычисляет линейное приближение к F при x (n), давая тем самым направление спуска, а затем вычисляет, какой шаг нужно сделать, основываясь на том, насколько хорошо линейная функция приближается к F при x (n). ). LM выясняет, насколько хороша аппроксимирующая функция, в основном делая шаг в определенном таким образом направлении и сравнивая, насколько линейное приближение к F уменьшилось с тем, насколько уменьшилась фактическая функция F. Если они близки, аппроксимирующая функция хороша, и мы можем сделать шаг побольше. Если они не близки, то функция приближения не годится, и мы должны отступить и сделать меньший шаг.