Алгоритм наискорейшего спуска

Градиент функции в любой точке показывает направление наибольшего локального увеличения img01. Поэтому при поиске минимума img02, следует двигаться в направлении противоположном направлению градиента img03 в данной точке, то есть в направлении наискорейшего спуска.

Итерационная формула процесса наискорейшего спуска имеет вид

img04,

или

img05.

Очевидно, что в зависимости от выбора параметра img06 траектории спуска будут существенно различаться. При большом значении img07 траектория спуска будет представлять собой колебательный процесс, а при слишком больших img08 процесс может расходиться. При выборе малых img09 траектория спуска будет плавной, но и процесс будет сходиться очень медленно. Обычно img10 выбирают из условия

img11,

решая одномерную задачу минимизации с использованием некоторого одномерного метода. В этом случае получаем алгоритм наискорейшего спуска.



img12

Рис.


Если img13 определяется в результате одномерной минимизации, то градиент в точке очередного приближения будет ортогонален направлению предыдущего спуска img14.

Вообще говоря, процедура наискорейшего спуска может закончиться в стационарной точке любого типа, в которой img15. Поэтому следует проверять, не завершился ли алгоритм в седловой точке.

Эффективность алгоритма зависит от вида минимизируемой функции. Алгоритм наискорейшего спуска сойдется за одну итерацию при любом начальном приближении для функции img16, но схо­димость будет очень медленной, например, в случае функции вида img17. В тех ситуациях, когда линии уровня минимизируемой функции представляет собой прямолинейный или, хуже того, криволинейный "овраг" эффективность алгоритма оказывается очень низкой. Очевидно, что хорошие результаты может давать пред­варительное масштаби­рование функций.

Процесс наискорейшего спуска обычно быстро сходится вдали от точки экстремума и медленно в районе экстремума. Поэтому метод наискорейшего спуска нередко используют в комбинации с другими алгоритмами.


Hosted by uCoz