09. Вычисление градиента
В методе наискорейшего спуска и в других методах оптимизации первого порядка для вычисления направления поиска используется градиент целевой функции . Во многих прикладных задачах оптимизации получение аналитического выражения для градиента затруднительно. Если значения целевой функции определяются с помощью некоторого алгоритма или в результате имитационного моделирования, то аналитическое выражение градиента вообще невозможно представить. Кроме того, аналитическое дифференцирование сложных функций трудоемко и не исключает возникновение ошибок. Целесообразно иметь возможность численного определения градиента целевой функции.
Простейшей формулой вычисления проекций градиента является конечная разность вперёд:
,
, (1.21)
Где – некоторое малое приращение,
– орт
-той оси координат. Такая аппроксимация градиента непосредственно основана на определении частной производной функции многих переменных и при достаточно малых значениях
может давать весьма точные оценки. Погрешность формулы (1.21) составляет
, поэтому чем меньше
, тем точнее вычислялись бы проекции антиградиента, если бы вычисления проводились с абсолютной точностью. В пределе при стремлении
к нулю аппроксимация становится точной, однако это не может служить рекомендацией по выбору
при машинных вычислениях.
Так как машинные вычисления обладают погрешностями представления вещественных чисел и округлений при вычислениях, то величина ограничивается снизу точностью машинных вычислений. Обычно эта точность определяется с помощью Машинного Эпсилон
.
Машинное эпсилон – это наименьшее положительное число, для которого при машинном сложении чисел выполняется неравенство
.
Например, в компьютерной математической системе MATLAB задаётся с помощью встроенной константы
.
Выбор в формуле (1.21) должен осуществляется в зависимости от точности представления чисел в вычислительной системе, координат точки
и вида функции
. Величина
должна выбираться достаточно большой, чтобы при погрешностях машинных вычислений в формуле (1.21) было
. Для решения большинства задач оптимизации достаточно положить в формуле (1.21) параметр
. По формуле разности вперед (1.21) составлен алгоритм вычисления градиента.
Алгоритм вычисления градиента.
Входные параметры: и
– точка, в которой вычисляется градиент, и значение в ней функции;
– процедура вычисления целевой функции;
– параметр приращения аргумента.
Выходной параметр – значение градиента.
1. Положить ,
,
,
.
2. Положить .
3. Вычислить ,
.
4. Положить .
5. Если , то положить
и перейти к шагу 2.
6. Остановиться.
По формуле разности вперёд (1.21) при известном значении функции в точке
для вычисления градиента требуется
дополнительных вычислений функции.
С помощью центральных разностей значения проекций градиента вычисляются по формуле:
,
. (1.22)
Погрешность этой формулы составляет . Однако эта формула требует
дополнительных вычислений значений целевой функции. Поэтому в численных методах оптимизации первого порядка применяется формула конечной разности вперёд (1.21), требующая меньшего числа вычислений функции. Для примеров 1.7 и 1.8 с методом наискорейшего спуска использовалась формула (1.21). Формула же центральных разностей (1.22) применяется в методах второго порядка.
< Предыдущая | Следующая > |
---|