Для использования с методами градиентного спуска для оптимизации структурных геометрий

#python #optimization #gradient-descent

Вопрос:

Проблема, над которой я в настоящее время работаю, требует, чтобы я оптимизировал некоторые параметры размеров для конструкции, чтобы предотвратить изгиб, не будучи при этом чрезмерно спроектированным. Я смог решить эту проблему с помощью итерационных (полубрутальных принудительных) методов, однако мне интересно, есть ли способ реализовать метод градиентного спуска для оптимизации параметров. Более подробная справочная информация приведена ниже:

Допустим, мы пытаемся оптимизировать три параметра длины/толщины (t1,t2,t3) . Мы инициализируем эти параметры с помощью некоторого случайного предположения (t1,t2,t3)g. Посредством некоторого преобразования каждого из этих параметров (весов и смещений) цель состоит в том, чтобы получить (t1,t2,t3)идеал таким образом, чтобы были выполнены три основных критерия (R1,R2,R3)идеала. Критерии вычисляются с использованием (t1,t2,t3)i в качестве входных данных для некоторых структурных уравнений, где i представляет входные данные после первой итерации. После этого можно было бы реализовать некоторую функцию потерь для вычисления ошибки (R1, R2, R3)i — (R1,R2,R3)идеально

Моя путаница заключается в том, что традиционно (t1,t2,t3)идеал был бы известен, и стоимость была бы функцией ошибки между (t1,t2,t3)идеалом и (t1,t2,t3)i, и последовали бы последующие итерации. Однако в случае, когда (t1,t2,t3)идеал неизвестен,а цели (R1,R2, R3)идеал (известен) являются косвенной функцией входных данных, как будет реализован градиентный спуск? Как минимизация затрат будет связана с изменением шага в (t1,t2,t3)i ?

P. S: Извините за форматирование, я не могу вставлять изображения latex, пока моя репутация не станет выше.

Ответ №1:

У меня возникли некоторые трудности с пониманием того, как рассчитываются ограничения, которые вы описываете. Я бы предположил, что количество, которое вы пытаетесь свести к минимуму, — это общий объем используемого материала или стоимость строительства, а не «ошибка», которую вы описываете?

Я не знаю подробностей вашей конкретной проблемы, но, вероятно, можно с уверенностью утверждать, что функция затрат не выпуклая. Любой алгоритм оптимизации на основе градиента несет в себе риск застрять в локальном минимуме. Если функция затрат не требует больших вычислительных затрат для оценки, я бы рекомендовал вам использовать алгоритм, подобный дифференциальной эволюции, который начинается с совокупности начальных предположений, разбросанных по всему пространству параметров. SciPy имеет хорошую реализацию, которая учитывает ограничения (и включает в себя заключительный этап «полировки» на основе градиента).

Комментарии:

1. Да, в этом есть смысл! Я предполагаю, что мой подход к изложению этой проблемы был неправильным. Как вы сказали, цель состоит в том, чтобы уменьшить массу конструкции при соблюдении необходимых ограничений. Метаэвристические методы, такие как GA или ACO, имеют больше смысла для такого типа проблем.