浮点数的间隙

浮点数的间隙

有大佬聊深度学习时,忽然问了一个问题,若是一个float从0开始,以一个很小的步长好比0.000001不停作累加,最后会发生什么?
固然是一脸懵逼,对问题自己以及背后的问题一无所知。照着他的提示,间断作个实验,结果贴在这里:网络

第一列是最后停留的数,第二列是累加次数,第三列是步长学习

stop: 3.05176e-05 total: 24945431 step: 1e-12
stop: 0.000244141 total: 24945431 step: 8e-12
stop: 0.00195312 total: 24945431 step: 6.4e-11
stop: 0.015625 total: 24945431 step: 5.12e-10
stop: 0.125 total: 24945431 step: 4.096e-09
stop: 1 total: 24945431 step: 3.2768e-08
stop: 8 total: 24945431 step: 2.62144e-07
stop: 64 total: 24945431 step: 2.09715e-06
stop: 512 total: 24945431 step: 1.67772e-05
stop: 4096 total: 24945431 step: 0.000134218
stop: 32768 total: 24945431 step: 0.00107374
stop: 262144 total: 24945431 step: 0.00858993
stop: 2.09715e+06 total: 24945431 step: 0.0687195
stop: 1.67772e+07 total: 24945431 step: 0.549756深度学习

浮点数之间的间隙远超过个人想象,好比512.0f下一个浮点数的间隔大于0.00001,这意味这什么,
若是神经网络训练过程当中,反向传播中梯度太低,根本不会对参数有任何影响,梯度消失神经网络

相关文章
相关标签/搜索