难以实施用于优化结构几何的梯度下降方法
Touble with implement gradient descent methods for optimizing structural geometries
我目前正在处理的一个问题要求我优化结构的一些尺寸参数,以防止屈曲,同时仍然不会过度设计。我已经能够使用迭代(半暴力强制)方法解决它,但是,我想知道是否有一种方法可以实现梯度下降法来优化参数。更多背景介绍如下:
假设我们正在尝试优化三个 length/thickness 参数,(t1,t2,t3)。
我们用一些随机猜测 (t1,t2,t3)g 来初始化这些参数。通过对这些参数(权重和偏差)中的每一个进行一些转换,目的是获得 (t1,t2,t3)ideal 这样三个满足主要标准 (R1,R2,R3)理想。这些标准是通过使用 (t1,t2,t3)i 作为某些结构方程的输入来计算的,其中 i 表示第一次迭代后的输入。在此之后,可以实施某种损失函数来计算误差,(R1,R2,R3)i - (R1,R2,R3)理想
我的困惑在于,传统上,(t1,t2,t3)ideal 是已知的,成本是(t1,t2,t3)ideal 和 (t1,t2,t3)[=18 之间误差的函数=]i,随后会进行后续迭代。但是,在 (t1,t2,t3)ideal 未知且目标 (R1,R2,R3 )ideal(已知)是输入的间接函数,梯度下降如何实现?最小化成本与 (t1,t2,t3)i 中的阶跃变化有何关系?
P.S: 抱歉格式问题,在我的声誉更高之前我无法嵌入乳胶图像。
我很难理解您描述的约束是如何计算的。我想您要减少的数量是使用的总 material 或施工成本,而不是您描述的“错误”?
我不知道你的具体问题的细节,但可以肯定的是成本函数不是凸的。任何基于梯度的优化算法都有陷入局部最小值的风险。如果成本函数不是计算密集型评估,那么我建议您使用差分进化之类的算法,该算法从散布在整个参数 space 中的初始猜测群体开始。 SciPy 有一个很好的 implementation 允许约束(并包括最终的基于梯度的“抛光”步骤)。
我目前正在处理的一个问题要求我优化结构的一些尺寸参数,以防止屈曲,同时仍然不会过度设计。我已经能够使用迭代(半暴力强制)方法解决它,但是,我想知道是否有一种方法可以实现梯度下降法来优化参数。更多背景介绍如下:
假设我们正在尝试优化三个 length/thickness 参数,(t1,t2,t3)。 我们用一些随机猜测 (t1,t2,t3)g 来初始化这些参数。通过对这些参数(权重和偏差)中的每一个进行一些转换,目的是获得 (t1,t2,t3)ideal 这样三个满足主要标准 (R1,R2,R3)理想。这些标准是通过使用 (t1,t2,t3)i 作为某些结构方程的输入来计算的,其中 i 表示第一次迭代后的输入。在此之后,可以实施某种损失函数来计算误差,(R1,R2,R3)i - (R1,R2,R3)理想
我的困惑在于,传统上,(t1,t2,t3)ideal 是已知的,成本是(t1,t2,t3)ideal 和 (t1,t2,t3)[=18 之间误差的函数=]i,随后会进行后续迭代。但是,在 (t1,t2,t3)ideal 未知且目标 (R1,R2,R3 )ideal(已知)是输入的间接函数,梯度下降如何实现?最小化成本与 (t1,t2,t3)i 中的阶跃变化有何关系?
P.S: 抱歉格式问题,在我的声誉更高之前我无法嵌入乳胶图像。
我很难理解您描述的约束是如何计算的。我想您要减少的数量是使用的总 material 或施工成本,而不是您描述的“错误”?
我不知道你的具体问题的细节,但可以肯定的是成本函数不是凸的。任何基于梯度的优化算法都有陷入局部最小值的风险。如果成本函数不是计算密集型评估,那么我建议您使用差分进化之类的算法,该算法从散布在整个参数 space 中的初始猜测群体开始。 SciPy 有一个很好的 implementation 允许约束(并包括最终的基于梯度的“抛光”步骤)。