结构参数化敏感性分析,往往是我们在尝试对结构计算模型调整之前需要进行的一个重要准备——毕竟如果先知道可以调整的几个参数中,哪个参数对目标结果的影响比较大,就会将其作为主要调整的对象,起到提高效率的作用。
但是,常规的敏感性分析方法,都是设定一个参数按照10%左右的幅度变化,其他各参数保持固定不变的前提。这样做是为了能够查看出单一变量对结构相应的影响,但却不符合基本事实——因为实际上所有的影响因素都是同时在变动的。当常规用有限元软件来操作的计算方法,又不能让各变量一起动,那结果就失去了意义。所以就只能舍弃一点精度,保证结果的可用性。
其实,完全可以让各个变量同时动起来的——那就需要借助人工神经网络技术来帮忙了。这个“人工神经网络”技术,并不是医学名词,而是一种数据处理方法,它本身其实没有任何物理意义。简单来说,工作流程就是我们先给它一组样本值和目标值,在一定的条件下(这些条件是可控的,比如神经元与隐含层数量,计算精度等等),让程序自动建立二者之间的关系,当关系建立起来之后,也就是所谓的“神经网络训练完毕”,再输入新的样本值,就会输出我们需要的目标值了。
只需要几十组有限元分析的样本数据,就可以由神经网络技术来建立结构参数和结构响应之间的关系,由此,便可由神经网络的程序来替代有限元来进行大规模重复计算——我曾经用一套代码,在4个小时内进行了150万次计算,这要是用ansys来计算,单独一次就需要将近1个小时,等都算完,估计我这人都不在了。
神经网络除了可以提高有限元计算效率之外,还有个很强大的功能值得挖掘,就是可以输出网络中每个层的神经元之间的权值和阀值,这对我们研究“多参数敏感性分析”至关重要,这些权值是在网络训练过程中,由程序在样本和目标之间建立起来的数据转换关系,这从侧面可以得出输入变量对结果的影响权值——这就是我们需要的多参数敏感性分析的解答了。
至于权值之间的算法,有好多种,我个人比较倾向于Garson算法:
关于这个算法的详情,大家按照这个关键词查询文件就可以了,这里不多说。
个人以为,利用神经网络来做的多参数敏感性分析,至少有两个优点:一个是可以实现多参数联动,另一个是可以量化出每个参数的影响因子到底是多少。很多时候,当许多因素“看起来差不多”的时候,通过这种方法,得到因素A的敏感性是21%,因素B的敏感性是20%,这样再排序,就方便多了。
我找到了一种相对可行的减低这种随机性的方法,大体上是一种基于参数平均累积距离的判定,希望有机会能跟您近一步沟通,多谢
您说的很正确,但是BP神经网络的训练的过程收到两个因素的制约,1是训练最大次数的制约,2是迭代过程对于计算误差的判定,因此训练的过程可以描述为基于给定训练次数内的更优解的搜寻过程,注意不是最优解,训练过程的本身是存在记忆的,我想这也就是您说的唯一,但是,在赋予链接权重和选择输入因子的过程是完全随机性的,同时,训练次数内的记忆性并不存在于不同的运行过程中,简单的说,同样的数据,同样的方法,您在您的电脑上训练了1万次,我在我的电脑上训练了1万次,结果也会不同,当然,足够多的训练次数可以在一定程度上降低这种由于随机性带来的参数波动,但是,这种波动可能依然存在
您好,最近正巧我也在弄您在博文中提到的基于BP神经网络链接权重的多参数敏感性分析,结果已经实现了,但是问题是结果不稳定,简单的说就是每次的结果都不一样,造成的原因,可能要归因于神经网络的算法本身,因为BP神经网络选择权重和阙值的过程是随机的,那么计算结果自然就不会稳定,那么问题来了,如果计算的结果不稳定,这个方法计算敏感性的意义何在?这里我找了一个相对可行的方法,希望能进一步与博主交流,我的QQ:17805334
@周滨 每次的计算都是一种试算,当然结果是不一样的,但是一旦找到合适的结果,就可以将权值和阀值输出固定下来,这样神经网络就唯一了。
你好。我想请教一下你曾经计算的150万次,是使用什么软件进行的?我了解一些神经网格算法,看过原理,但是具体实施的话没有一点门道
谢谢。如果我理解的没错的话,是不是说神经网格就是找到参数和结果之间的相互关系?
希望您能给我介绍几个经典的入门的文章,谢谢
@zhixu0000 你说的对。入门的话,建议看matlab神经网络应用方面的吧
如果参数少可以做实验设计么?或者用正交计算试试呢?
@景冬 正交计算当然是可以的了啊,这方面振伟比较熟悉
@长河 我们也学这个正交计算了,这学期净学这个了。但是变量多久不好弄了,而且如果互相有影响的话就更难了
@景冬 正交是在样本数据实在不够的情况下才要弄的,所以只要是条件允许,一个完备的样本数据库,是必要的
我研究的也不深入, 就是用作工具,解决几个实际问题而已了
读书的时候还经常用到这个神经网络算法,这属于数值分析里面的一种,用MATLAB好像处理起来比较方便,当然,我也没继续深入研究下去,看见你现在又这么研究,感觉很好。