用神经网络模拟化学反应
将两个原子的原子核序数理解成输入,将原子核外电子当作神经网络的神经节,用sigmoid函数当作**函数,把两个原子发生反应并逐渐融合变成一个分子的过程看做两个神经网络不断迭代并逐渐收敛并稳定的过程。
两个原子分别是对方的输出,向相反的两个方向同时迭代,设计了一个6层的双向的神经网络来模拟这个过程。
比如上图用简单碳碳双键做为例子,左边输入是6(经过变换是0.9975273768433653)输出是NO两点
右边输入是6(经过变换是0.9975273768433653 )输出是H和I两点,两个方向同时向对方迭代并最终收敛。
编程用作的收敛条件是
While(Math.abs(H-N)>0.0001|| Math.abs(I-O))>0.0001)
自然界有普朗克常数,当这个网络收敛到小于普朗克乘数是自然停止。所以用网络收敛模拟化学反应这个假设用在自然界也是有合理性的
经过计算这个网络很容易收敛
这组权重系数经过24022次迭代得到,收敛时
N=0.49976160586910146 O=0.5002415512255421
H=0.49979281757597493 I=0.5003082325155882
0.419462 | -0.20687 | -0.28945 | 0.914752 | 0.354154 |
0.415271 | -0.45234 | 0.22673 | 0.312324 | 0.642257 |
0.585034 | -0.55526 | 0.49 | 0.568833 | -0.04975 |
0.913623 | 0.476174 | 0.87 | 0.979507 | 0.179551 |
0.485898 | 0.178643 | 0.17 | 0.806308 | 0.159356 |
0.583931 | -0.48529 | 0.93 | 0.820284 | 0.620707 |
-0.4037 | 0.293368 | 0.800429 | ||
-0.16683 | -0.22924 | 0.609065 | ||
-0.63472 | 0.6 | 0.834353 | ||
0.07603 | 0.3 | 0.466476 | ||
0.062852 | 0.74 | 0.710306 | ||
0.080581 | 0.87 | 0.829028 | ||
0.050005 | 0.947725 | 0.21942 | ||
-0.09413 | -0.56734 | 0.819264 | ||
-0.39995 | 0.13 | 1.033295 | ||
-0.28479 | 0.91 | 0.30402 | ||
-0.03582 | 0.04 | 0.536883 | ||
-0.04329 | 0.2 | 0.885726 | ||
-0.24599 | 0.320415 | 1.006864 | ||
-0.54064 | -0.48133 | 0.464453 | ||
-0.59282 | 0.93 | 0.995259 | ||
0.08214 | 0.36 | 0.501986 | ||
-0.4171 | 0.3 | 1.036936 | ||
-0.54612 | 0.24 | 0.924627 | ||
-0.47029 | 0.316287 | 0.683282 | ||
0.216419 | -0.82084 | 0.631922 | ||
-0.26557 | 0.83 | 0.692133 | ||
-0.2269 | 0.05 | 0.308611 | ||
-0.53617 | 0.73 | 0.973749 | ||
-0.0401 | 0.94 | 1.033159 | ||
0.271497 | 0.379823 | 0.559297 | ||
0.03607 | -0.22379 | 1.067466 | ||
-0.41974 | 0.27 | 0.752303 | ||
-0.407 | 0.34 | 1.045088 | ||
-0.12797 | 0.17 | 0.347014 | ||
-0.59664 | 0.69 | 0.44921 |