APP下载

【Julia亮点套件2】台湾开发|秒解复杂偏微分方程式:NeuralOperators.jl

消息来源:baojiabao.com 作者: 发布时间:2024-05-19

报价宝综合消息【Julia亮点套件2】台湾开发|秒解复杂偏微分方程式:NeuralOperators.jl

清大光电所硕士生甯敬宇以Julia实作傅立叶神经算子和马可夫神经算子,成为NeuralOperators.jl套件,开箱即用的特点比Python版的Demo模型还实用。该套件已收录于Julia官方套件资源中。

 秒解复杂偏微分方程式  NeuralOperators.jl

 开发者  清大光电所硕士生甯敬宇

摄影_洪政伟

 热门特色  内建傅立叶和马可夫神经算子套件,比原作者Python版功能更完整

 未来发展重点  打造完整框架,可设计专属核函数、建置专属类神经网络

不论是天气预报、气温预测还是飞机动力模拟,甚至是单一疾病的传播模式,都得靠偏微分方程计算。但,偏微分方程的传统解法,得花上数十个小时才能算完。

不过,学术圈用AI技术找到了快速解题的新方法。加州理工学院在去年秋季和今年夏季相继发表了两篇重磅论文,成功用傅立叶神经算子(Fourier Neural Operators)和马可夫神经算子(Markov Neural Operators)这两种AI模型,可以快速计算出偏微分方程难题和流体力学方程式的解,就连最令学术人头疼的混沌运算,也只要几秒就能算出结果。

这与传统数十小时相比,是数万倍的加速。

台湾开发者半年内用Julia实作出2种模型

不过,“这两篇论文作者,只用Python撰写出实验性质的Demo模型。”就读清大光电所的研究生甯敬宇解释,使用者要用这些模型解特定问题,就得重新实作一次,入门门槛高。

于是,在Julia台湾社群发起人杜岳华的鼓励下,甯敬宇花了几个月,以Julia开发出开箱即用的NeuralOperators.jl套件,内含以Julia撰写的傅立叶神经算子和马可夫神经算子,让使用者可直接在Julia深度学习框架Flux上执行。也因此,这个能快速处理复杂运算的套件,在今年9月中,正式被纳入Julia官方网站。

一如Julia这个年轻的程式语言,NeuralOperators.jl的开发者甯敬宇也很年轻。才20出头的他,开发的套件不仅比原作者的Python版本还实用,而且还更完整。这对主打科学计算的Julia套件生态系来说,也因此更完善。

手工补齐Julia基础套件不足,解决虚数比较问题

话锋一转,甯敬宇坦言,开发过程并非一帆风顺。因为,Julia这套问世不到10年的年轻语言,不如30多岁的Python拥有完整的套件开发工具或基础架构。因此,甯敬宇得自己手工解决这些不足。

比如,傅立叶神经算子中有一项“快速傅立叶转换”算法,会将输入的讯号转换为频率空间上的讯号,并以带有虚数的复数来呈现。“但Julia无法妥善处理这个问题,”甯敬宇举例,因为带有虚数,类神经网络无法比较复数大小,因此,甯敬宇得手动将虚数部分“封印”在类神经网络层中,不让它影响计算过程。

这个挑战很大。因为,甯敬宇一面要更改模型结构、解决虚数问题,一面又要保持模型准确度。

加速模型600倍训练时间,未来还要完善

经过一段折腾、克服挑战后,他也在自己就读的研究所实验室,用NerualOperators.jl来解决模型训练问题。

举例来说,他的实验室专攻量子光学,需要在概率空间上,压缩一道激光光,并量测这道光的变化。但,这种变化非常微小,误差甚至低于量子力学保证能观察到的最小范围,为求更精确的数据,他们打造了一套卷积网络模型,可达到极高的保真度(0.99)。

但是,“缺点是训练时间得花上好几天,”甯敬宇解释,因为卷积网络的特征抽取机制受限,特别花时间,后来他改用自己开发的NeuralOperators.jl后,就解决了特征抽取的效能瓶颈,“10几分钟就有结果,比原有模型快上600倍,保真度还能达到0.9999!”

不只能用于学术研究,NeuralOperators.jl还能用在生活化的影像处理场景上,比如,它可将经压缩、分辨率较差的照片,还原为高分辨率的影像,又或是,它能根据影片的第一帧影像,来预测下一帧。

甯敬宇也透露,未来,他还要优化套件,要提供一套完整的框架,来让使用者用来设计专属的核函数、建置专属的类神经网络。

2021-11-02 07:45:00

相关文章