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) применяется в методах второго порядка.
| < Предыдущая | Следующая > |
|---|