大数据文摘出品
来历:tensorflowblog
编译:睡不着的iris、刘俊寰
上一年6月,俄罗斯天文学家兼码农小哥开发了一款名叫Space Engine的世界模仿游戏,现在,该游戏现已收到2639份测评,绝大部分都是好评。
不过,Space Engine还只是在游戏层面临世界的一种出现,试想以下,假设用数值模仿的根底东西,从观测的海量世界数据做多元化的剖析……
停!看到这儿也大约能猜到,这样的模仿核算必定价值不菲,并且一般需求在大规划的超级估核算机上离线运转。
可是,若是进步模仿核算速度,将其与机器学习组件整合到一致结构内,会有什么不同呢?
这便是新的N体世界模仿代码FlowPM在做的。
没错,文摘菌今日给咱们展现的便是,怎么运用TensorFlow模仿自己的小世界,并说明为什么它对世界学有着激动人心的远景展望,搓搓小手跟进了~
图1:(蓝色)经过2dFGRS丈量的世界结构,(赤色)运用N体模仿生成的千禧年世界结构。
N体世界模仿
简略来说,N体模仿的办法是为了解说世界演化中的非线性演化问题,科学家们提出的一套研讨世界学的数值模仿办法。
在世界学范畴,N体模仿复原了世界是怎么从诞生之初的大爆炸演化至今的。
假设咱们依照物质初始散布,将很多的粒子放置在一个盒子中,因为引力的牵引,粒子会不断移动。而终究的粒子状况,便是对众多世界结构的再现。例如,从这个散布中,你能够正常的看到星系和星系群是怎么散布的。
这些结构的构成和演化取决于一些与世界相关的根底问题,比如世界中有多少物质?世界胀大有多快?导致世界胀大的黑物质和暗能量有哪些特性?
现代的世界学研讨用强壮的望远镜覆盖了广阔的观测区域,制作出了这些结构,时刻还能够追溯到几十亿年前。经过将N体模仿的猜测与观测数据进行比较,能够在必定程度上协助咱们回答前述根底问题,然后进步对世界的诞生和演化的了解。
FlowPM:一个TensorFlow的世界N体求解程序
跟着几十年研讨的更迭,N体模仿已是世界学界的首要研讨东西。
得益于机器学习和核算推理范畴的最新进展,一个彻底根据TensorFlow完成的N体世界模仿程序FlowPM应运而生了。
在这里,咱们运用Google Colab notebook对其进行试验,一同,以下首要供给TF1的编写代码。
首要需求设置好边长、网格巨细和履行代码片段等模仿参数,随后的履行模仿代码片段就分外的简略了,完好的代码如下所示,如此就能生成下图所示的大型结构。
# Generate Gaussian initial conditions for the matter distribution
initial_conditions = flowpm.linear_field(N, L, ipklin, batch_size=batch)
# Sample particles, i.e. generate the initial displacement and velocity
state = flowpm.lpt_init(initial_conditions, a0=a0)
# Evolve particles from initial state down to present time with N-Body simulations
final_state = flowpm.nbody(state, stages, N)
# Visualize final density field i.e interpolate the particles to a grid
Final_field = flowpm.cic_paint(tf.zeros_like(initial_conditions), final_state[0])
#Execute the graph!
with tf.Session() as sess:
ic, istate, fstate, sim = sess.run([initial_conditions, state, final_state, final_field])
图2 :(左)N体模仿启动时,世界中物质的初始散布;(右)在模仿的终究快照,物质的终究散布。能够清楚地看到大型结构,具有晕圈,长丝和空泛陷落。
或许不少人会疑问,TensorFlow真有这么香?文摘菌把话撂这,还这真有这么香,TensorFlow的优势首要体现在以下两个方面。
首要是剖析和推理,TensorFlow模仿为世界学家供给了史无前例的共同功用,也便是咱们所说的可微性(differentiability)。这个功用为科学家供给一种新的剖析东西,例如开发根据模仿的有用推理技能。
不只如此,这个功用还支撑量化各类输入参数的调整对终究调查的影响。在伯克利世界中心,研讨者们对时光倒流和重构初始状况十分感兴趣,这也有助于更好地了解现在的世界结构,但这是有条件的,必须先处理一个百万维度的高度非线性优化问题,即模仿进程得可微,而这,FlowPM就能做到,重构后的图如下所示。
从终究的黑物质的大型世界结构(右边)怎么重建世界初始状况(左面)
另一个便是混合物理/深度学习模仿,在N体模仿运用深度学习组件时,你会需求开发一个混合前向模型。可是,运用当时的核算资源,不可能高度精确地一同模仿一切的组件,只能根据科研方针,在不同元素之间进行取舍,例如世界可调查的深度、星系可见的规划和构成星系的多维物理进程等。
但是现在,咱们咱们能够用深度学习代替模型,将这些元素自然地整合进N体模仿中。在BCCP,科学家们开发了一个这样的混合模仿,如下图所示。假设咱们要模仿世界中的气体动量密度,现在,这类调查选用混合模仿完成价值十分大,但运用一个端到端的FlowPM模型,本钱至少能够更好的下降1000倍。
一个混合模仿的示例,用两层的非线性改换(网络)弥补PM模仿的暗物质输出(左),以模仿世界(中心)的气体动量密度。将运用贵重1000倍的混合模仿所模仿与本相进行比较(右)
选用Mesh TensorFlow散布式结构仿真
虽然原理看上去很简略,但实践的应战仍是很大的,究竟世界真的很巨大!
为了精确匹配当时和未来的观测,咱们要一同模仿数以亿计的粒子的改变。
要完成这个,N体世界模仿首要有以下两个难点:
接连演化数十亿个粒子,核算本钱十分高。要预算一切粒子之间的重力,需求核算一切的粒子对,当核算规划扩展至N2,无法得出成果。但走运的是,能够在FlowPM中运用一种叫做particle-mesh(PM)的办法,即把一个Ng标准的网格离散空间,运用高度优化的3D快速傅里叶改换核算整个空间的力,这将核算本钱从N2g降到了Nglog(Ng)。
虽然算法进行了优化,但模仿数以万计的粒子也十分占用内存。成果是一个有用尺度为1024x1024x1024的最小的模仿网格,都无法再单个GPU上显现。因而,咱们应该一个模型并行结构来支撑大规划模仿,这也正是Mesh TensorFlow的用武之地。
Mesh TensorFlow结构能够轻松地运用散布式张量来表明模仿,并继续追寻散布式梯度和设备之间的存储通讯,经过Mesh TensorFlow编写N体求解程序,能够将巨大的仿真量跨多个超级核算机进行散布。
在这种模仿中,每一步操作和网格组件在一个时刻步长能够演化出不同的空间区域。在云端TPU布置相同的模仿代码,能够模仿128个128x128x128网格的独立世界,或许布置在国家核算机(NERSC)的64个GPU上模仿一个1024x1024x1024的世界。
除了支撑大规划仿真,模型并行结构答应经过将核算使命分配给多个处理器来加快中心尺度的模仿,如下图所示,FlowPM的均匀模仿速度比当时的可微python模仿器FastPM快了40倍不止。
运用FastPM(在Cori Haswell内核上运转根据CPU的python代码)和FlowPM(在Cori GPU上运转根据GPU的Mesh TensorFlow代码)模仿2563网格PM,比较1个步长内时刻缩放与处理器数量
展望
曩昔的三十多年,数值模仿是大型世界的研讨柱石。现在,有了FlowPM,研讨行将迈出新的一步,将模仿器集成在包括深度学习组件的一致结构内,一同坚持对潜在现象的精确物理了解。
在世界学中,这种结合不只促生了新颖的剖析东西,在研讨系统中参加深度模型霸占扎手的前史难题。这些活泼的研讨范畴,加快催生下一代世界研讨,在未来的十年之际能够调查世界中不计其数的个别。
多亏了Mesh TensorFlow模型并行结构,使得物理建模和机器学习的交融得以完成,期望成分剖析和FlowPM核算东西的开展,让世界学以外的范畴也得以获益。
相关报导:
https://blog.tensorflow.org/2020/03/simulating-universe-in-tensorflow.html
实习/全职修改记者招聘ing
参加咱们,亲自体会一家专业科技媒体采写的每个细节,在最有远景的职业,和一群遍及全球最优异的人一同生长。坐标北京·清华东门,在大数据文摘主页对话页回复“招聘”了解概况。简历请直接发送至zz@bigdatadigest.cn
志愿者介绍
后台回复“志愿者”参加咱们
点「在看」的人都变好看了哦!