Почему число, если итераций в `fmincg ()` случайное, хотя максимальное количество итераций фиксировано - PullRequest
0 голосов
/ 06 апреля 2020

Я наткнулся на функцию fmincg(), которая оптимизирует обновление градиента, запускает итерации и возвращает оптимизированные параметры. Несмотря на то, что число итераций, которые оно проходит, кажется случайным. Для параметра 'MaxIter' установлено значение 200. Тем не менее, число итераций является случайным при каждом вызове.

Почему это число, если число итераций в fmincg() случайное, даже если максимальное количество итераций фиксировано ?

costFunction = @(t) linearRegCostFunction(X, y, t, lambda);
options = optimset('MaxIter', 200, 'GradObj', 'on');
theta = fmincg(costFunction, initial_theta, options);

enter image description here

1 Ответ

1 голос
/ 06 апреля 2020

Это максимальное количество итераций, а не фиксированное. Если расчет сходится до достижения максимального количества итераций, он останавливается. Если он не сходится, он будет продолжаться до тех пор, пока не достигнет 'MaxIter'.

. По сути, это большая программа while l oop, которая в псевдокоде выглядит как

while iter<MaxIter & convergence_reached == false
    % Do calculations
    iter = iter + 1
    if converged
        convergence_reached == true

PS: это означает, что вы вводите разные значения в свою схему при каждой попытке, или что где-то в этом коде есть генератор случайных чисел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...