量化投资学习笔记191——用深度学习发现牛顿引力定律

最近在重新学物理,想到一个有意思的玩法:用深度学习来“发现”物理定律。具体而言就是根据我们已知的物理定律产生一堆数据,然后让深度学习模型来“学习”这些数据,最后用新的数据来预测。就用牛顿引力定律吧。
牛顿引力定律,$F = G\frac {m_1m_2} {r^2}$。即两个物体之间的引力大小与它们质量的乘积成正比,与它们之间的距离的平方成反比。
输入的变量为三个:两个物体质量和它们之间的距离。
先用随机数产生一些输入数据,并根据牛顿引力定律计算相应的引力值。

为了实验的前后一致性,把生成的数据保存到csv文件,以后直接从文件读取。
下面建立深度学习网络模型。
先进行数据转换

建立DataLoader

定义模型,参数乱写的。

训练过程

结果

结果很差,优化一下网络结构,迭代次数吧。
尝试了很多方法,比如增减网络层数,增减神经元数量,增加数据规模,学习率递减,改变权重初始化方式,改变激活函数类型等等,都没啥用。模型误差还是刚开始迅速下降,训练几十次以后就基本不动了。试了一下逼近一元函数和多元函数,一元函数的逼近效果很好,二元就不行了。这是逼近$z = x^2+y^2$的结果,训练了1000次。

找了个GPU服务器跑了几万次,还是一样的。先摆着吧,当做一个问题。接着学物理吧。

我发文章的三个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。

我的个人博客地址:https://zwdnet.github.io

我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts

我的微信个人订阅号:赵瑜敏的口腔医学学习园地

欢迎打赏!感谢支持!