受到这个问题的启发:
Why do different methods for solving Xc=y in python give different solution when they should not?
这似乎有数值问题,因为浮点,倒置矩阵和限制值的[-1,1],我现在好奇的是,为什么深度学习不遭受浮点或数值精度错误,如果它的大部分培训是在平均值为0和std 1的数据(我想我假设大部分数据已经预处理在这个范围内,而且我觉得这是大致正确的考虑到批量标准化的高使用率)。是因为深度学习不能通过将多项式提高到一个很高的程度来训练,还是为什么深度学习通常是很好的?SGD是否有什么特殊之处,或者(流行的)激活函数、relu、elu等在数值上不是不稳定的(与高次多项式相比)?或者GPU训练避免了浮点表示在一起?或者为什么深度学习训练在数字上是稳定的?
发布于 2017-10-21 23:21:30
DL本身并没有什么神奇之处--它也一直受到数值误差的影响。然而,由于非线性的规模和数目,DL中的数值不稳定性通常会导致无穷大或nans,而不是错误的答案。因此,它们通常很容易被发现。特别是,0,1间隔没有什么困难,实际上,它是一个很好的浮动存储点,如 of representable floats actually live in [0,1]!你所指的问题在于获取这样一个数字的巨大指数,这个指数接近机器精度是危险的。任何标准的DL技术都不需要任何激活的30级能量。事实上,大多数最成功的DL技术(基于sigmoids、tanhs和relus)几乎是线性的,因此数值不稳定性主要来自概率估计中的exp运算。
所以:
https://stackoverflow.com/questions/46868237
复制相似问题