这篇论文把机翼流体仿真和深度学习结合,预测在不同机翼模型或气流不同的初始速度场下机翼周围气流的压强以及速度场
这篇论文是一个很好的实验记录,我根据自己的任务主要学习第四部分中如何构造数据集、如何进行预处理以及如何训练等以及需要做哪些实验,而且我对机翼流体仿真这个问题本身也不是很了解,所以对论文分析的并不全面
以下是对论文的第四部分的梳理,并结合代码理解细节

1. 构造数据集

(1)网络的输入输出

输入:机翼模型,初始速度场
输出:气流在机翼周围的压强以及速度场分布

(2)输入

机翼模型:从UIUC数据集中可以获取到1505个不同的机翼模型
以下是三种个不同的机翼模型的数据(应该是机翼边界上采样的坐标,范围、个数可能都不相同)

问题:后面是如何把这些初始的机翼模型(机翼边界的坐标)转化到128*128网格上的?

初始速度场:应该是跟雷诺数和攻角有关
本篇论文中限定了雷诺数和攻角的范围,这样应该是防止问题规模太大,网络无法预测(考虑到我的任务,比如预测平移的模型,是否也可限制在一定平移范围内的模型是可预测的,而不是那么强的泛化能力

问题:如何在这个范围内选取雷诺数和攻角,以及如何通过这两个变量得到初始速度场?
论文里说是在给定的范围内随机采样以得到速度场(注意:初始速度场在机翼模型外部是个常量),再和机翼模型结合生成输入数据

(3)输出

得到输入后,再使用现有的开源软件OpenFOAM对这些输入进行流体仿真得到机翼周围的压强和速度场即网络输出待比较的真实值
仿真中求解的方程是Reynolds-averaged Navier-Stokes(RANS) equations(本篇论文的方法是通用的,可以构造新的数据集用本篇论文的方法求解其它方程)

(4)生成数据集的代码解析

data/dataGen.py对初始机翼模型进行处理后得到输入后并通过OpenFOAM软件仿真得到输出
一个样本数据放在一个npz文件中:6个128*128的图像


从上图可以发现:前三组在各个点的值看起来像是固定的,实际上,输入中,初始速度场在模型外部各个点的值是相同的,模型内部都为0;第三组,模型内部用1表示,模型外部为0;打开过一个模型,模型内部有186个点
源代码,具体步骤

(1)151行:随机选取一个机翼模型文件
(2)155行:可能是雷诺数,在给定范围内随机选取一个值
(3)156行:可能是攻角,也是在给定范围内随机选取一个值
(4)157行,158行:根据雷诺数和攻角计算得到一个初始速度场
(5)164行:genMesh,应该是根据机翼模型文件生成网格
具体没有细看,不知道如何根据原始机翼模型中离散的边界坐标点得到下图的第一个图的

(6)169行,用OpenFOAM根据初始速度场对机翼网格模型进行仿真,得到机翼周围气流的压强和速度场
(7)172行,把前面得到的机翼模型、初始速度场和仿真得到的压强和速度场存作图片,做成数据集


第一个文件pfile应该是仿真后的压强,第二个文件ufile应该是仿真后的速度场,在这两个文件中每个数据应该都是(x,y,value)的格式,机翼模型外的空间上的一个点对应一个压强或速度场
x方向限制在[-0.5,1.5](?),y方向限制在[-1,1]之间,在这样的空间中均匀采样,按顺序读取仿真文件,当跟文件中的点比较接近时,表示是机翼模型外部,就可以设置成对应的具体值,比如对于模型图像须设为1,对于初始速度场须设置为根据雷诺数和攻角求出的值;当采样点不在仿真文件中时,表示在机翼模型内部,对于初始速度场、仿真得到的压强和速度场均设为0,模型图象设为1

可以学习的点
(1)限制一些参数的范围,在构造数据集的时候需要限制某些参数的范围,在使用时也是限制在这样的范围内求解,如果不限制范围,就是一个无穷的空间,对于网络来说太难求解了。对我的任务,在构造几何模型时,需要旋转和平移,旋转无所谓,平移的范围需要有一定的限制
(2)随机采样再结合,对我的模型构造来说,构造出初始的模型后,可以随机选择模型和旋转角度或平移值来对模型进行变换,之前构造出来的数据集太过规律,也会影响模型的学习。

2. 预处理

(1)用自由流速度(初始速度场)的大小对所有涉及的量进行标准化

(2)压强减去平均值

(3)根据最大值的绝对值标准化到[-1,1]中

(4)源码

第一个if对应(2)
第二个if对应(1)
最后对应(3)

(5)学习

标准化的数据应该能使网络的训练更加容易(后面有实验4.2来展示标准化的优点)
我也应该要根据自己数据的特点对输入输出做一些处理(也可以把想到的标准化方法都做实验比较看看)

3.网络架构-UNet


UNet是一种特殊的编码解码结构,特点是有一个skip connection:把编码部分的数据给了解码模块,可以看成残差结构
更多的了解UNet

4.监督训练

(1)训练设置
(2)数据不同标准化的影响


(A)是没有标准化的原始数据,看图4可以发现pressure和Vx预测的都不是很好
(B)对应上面的2(1),相对(A),对Vx的预测有所改进,但是压强的预测还是很差
(C)对应上面的2(2),跟(B)相比,对压强的预测明显更接近target
对数据进行标准化不仅能使网络更加容易训练,而且预测效果也会变好
应该主要是减少了一些不必要的信息,而且把数据限制在一定范围了,使得解更加简单,网络也就更容易学习并成功预测了

5.Basic Parameters


其中,最关键的一个参数就是优化器的学习率

上图中的左图是不同学习率下训练的网络的误差,学习率较大时可能降不到最低点,网络预测的误差比较大;学习率较小时,网络训练的比较慢。从左图可以看出,当学习率设为0.00004和0.0004时网络误差最低,这篇论文在后面会以0.0004的学习率进行训练。
上图中的右图是对有没有在训练的过程中降低学习率进行的实验,绿色线是一直以0.0004的学习率进行训练,蓝色线开始以0.0004进行训练,后面会降到原来的0.1倍即0.00004接着进行训练。可以蓝色线的预测误差总是低于绿色线的,所有,这篇论文后面的训练中也会采取学习率递减的方式。

6.accuracy

(1)网络的自由度即权重的数量对网络预测效果的影响,以及训练数据的个数对网络预测效果的影响


这张图横坐标是训练数据的个数,纵坐标是验证误差,不同颜色的线代表不同的网络规模
a. 随着训练数据的增加,不同规模网络的误差都在降低
b. 比较122k和30.9m的网络,在训练数据较少时,122k的网络误差比30.9m的误差要低,但训练数据增多后,30.9m的网络的误差更低
c. 122k的网络在训练数据在1000左右时就开始饱和了,而30.9m的网络的误差还在逐渐降低
主要原因应该是待训练权重个数多,需要的训练数据也就越多,而大规模网络在训练数据足够的情况下可以比小规模网络的预测效果更好


看一看不同规模的网络在不同数量训练数据集的情况下对新的机翼模型构造的test集的泛化能力
注意在test集上计算误差时使用的不是L1误差,而是对标准化量的平均相对误差

a. 随着训练数据集的增加,不同规模网络在test集上的误差都在降低,但各网络之前的差异不是很大。比如在训练数据是12800时,122k的网络在test集上的误差是0.033,而30.9m得误差是0.026
b. 注意由于压力函数和速度场函数的不同,网络在各通道的相对误差也不是很平均,在x和y通道上的误差在0.02左右,而压力通道上的误差高达0.14,这个跟L1损失函数有关,可以通过修改损失函数来调整
c. 发现1.9m、7.7m、30.9m这三个大规模的网络在test集上的误差曲线差不多,虽然这三个网络在训练集增加时在验证集上误差有所区别,但是额外的训练数据集也不会生成未见模型的新信息,也就是说即使训练数据增加,也学不到新的东西了

(2)进一步探讨泛化能力

扩充数据集:(没看懂是如何剪切这个机翼形状的)


得到剪切后的新的数据集后,分别用三种数据集:最开始的数据集regular,剪切后的数据集sheared,一半regular一半sheared组成的混合数据集mixed来训练网络,如下,图10是对7.7m网络训练的结果,图11是对30.9m的网络训练的结果

从图10可以发现,sheared数据集和mixed数据集上的验证误差比较大,sheared在test集上的误差比较大,虽然扩充了训练数据集,但对网络的训练效果没有改善,反而更差,因为加入新的模型后,网络需要学习的解的空间也很大,也就增加了网络的学习难度。
思考:我的任务对神经网络来说是不是也太复杂了,是不是可以稍微简化一下任务!!

7.performance


训练后的网络在预测使用时比较快速

8.discuss

(1)本篇论文的方法能达到一个比较好的精度,相对误差小于3%,但还需要进一步减小这个误差,这可能就需要增加训练集和网络规模。但从上面实验结果图6也可发现,简单的增加训练数据集或网络规模也不能达到任意的精度,那么就需要试试不同的方法和新的网络架构。

(2)虽然计算出来的平均相对误差比较小,但是对测试集结果可视化后发现在机翼尾部还是存在较大的误差的。是不是说明实际的泛化能力也并不是那么好?文中提到这部分可以用一个更大的测试数据集来研究泛化能力。

(3)图6中大规模网络最后的误差都差不多,但是可视化后发现效果是随着网络规模的扩大变好的,说明loss函数选取的不是很好,单纯用L1误差是存在一定的局限性

我之前做的实验也是,loss确实很低,但可视化结果却不令人满意,可能是数据集的问题,也可能是Loss的问题

《Deep Learning Methods for Reynolds-Averaged Navier-Stokes Simulations of Airfoil Flows》相关推荐

  1. AI:《DEEP LEARNING’S DIMINISHING RETURNS—深度学习的收益递减》翻译与解读

    AI:<DEEP LEARNING'S DIMINISHING RETURNS-深度学习的收益递减>翻译与解读 导读:深度学习的收益递减.麻省理工学院的 Neil Thompson 和他的 ...

  2. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(一)

    文章目录 综述:基于深度学习的文本分类 <Deep Learning Based Text Classification: A Comprehensive Review>论文总结(一) 总 ...

  3. 《Deep Learning》你需要知道的答案

    <Deep Learning>你需要知道的答案 本文来自微信公众号: AI研习社 的一篇文章--"深度学习面试你必须知道这些答案",我也打印了这本书的英文原版,正好可以 ...

  4. python思想读后感_《Deep Learning with Python》读后感精选

    <Deep Learning with Python>是一本由Francois Chollet著作,Manning Publications出版的Paperback图书,本书定价:USD ...

  5. PyTorch官方教程《Deep Learning with PyTorch》开源分享,LeCun力荐,通俗易懂

    1 前言 谈到深度学习框架,就不得不谈TensorFlow 和 PyTorch .目前来看,TensorFlow 和 PyTorch 框架是业界使用最为广泛的两个深度学习框架, TensorFlow在 ...

  6. Yoshua Bengio——《Deep Learning》学习笔记1

    版权声明:此为Yoshua Bengio的新书<Deep Learning>学习笔记,本文为博主在研究工作中经验分享,包括学习笔记.摘录.研究成果,以便以后工作参考之用,欢迎交流和批评:其 ...

  7. 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1

    <Deep Learning Techniques for Music Generation – A Survey>深度学习用于音乐生成--书籍阅读笔记(一)Chapter 1 关于这本书 ...

  8. 《Deep Learning》中文翻译总结

    前记:2015年,深度学习三大牛Yann LeCun.Yoshua Bengio和Geoffrey Hinton在最新的<Nature>杂志首次合作的发表综述文章<Deep Lear ...

  9. cv方向论文跟读笔记《Deep Learning》(2)

    <Deep Learning>From <Nature> author:Yann lecun, Yoshua bengio, Geoffery Hinton 第二课时: CNN ...

最新文章

  1. flink配置+停止flink中的job
  2. 占空比50%的奇数分频
  3. 使用指针在函数中交换数值
  4. 史上最全的延迟任务实现方式汇总!附代码(强烈推荐)
  5. Memcached的安装与使用
  6. UVa10881 Piotr's Ants【模拟】
  7. MySQL update For_mysql SELECT FOR UPDATE语句使用示例
  8. it行业中sa与ba的区别_在钢铁行业中除尘器有什么区别?
  9. 16F877A和24C02通信汇编语言,PIC16f877A读写24c02程序
  10. 全网首发:Freeswitch会议房间增加标识
  11. 远程桌面连接Windows后显示蓝屏
  12. 苹果itunes软件怎么下载安装
  13. mysql分页limit (currentPage-1)*pageSize,pageSize
  14. 关于travis scott的网名_小仙女可爱单纯的网名
  15. Python好学吗?要学多久?
  16. 如何快速掌握一门新技术
  17. javascript-ECMAScript
  18. ps切图的零散小知识
  19. ios 按钮文字下划线_iOS - UIButton设置文字标题下划线以及下划线颜色
  20. MySQL 数据类型BINARY和VARBINARY

热门文章

  1. 呼叫 :邓伦粉丝!手机桌面壁纸来喽
  2. 设计PSD分层素材模板|几何元素平面广告,在设计风格中占有一席之地
  3. 电商商家可以用到的小工具和素材资源网站
  4. 广东科技学院计算机原理组成,201120122操作系统原理期中试卷edited广东科技学院付博士(4页)-原创力文档...
  5. ultraedit 运行的是试用模式_单元测试 —— 前后端分离开发模式下后端质量的保证...
  6. PCIe规范的扩展:SR-IOV(Single Root I/O virtual)网卡直通技术
  7. volatile与多线程
  8. Linux网络协议栈:Linux 中每个 TCP 连接最少占用多少内存?
  9. VUE3路由Router导航、模式
  10. Vue3(监视器watch)