2

对这个问题的启发:为什么深度学习不会遇到浮点或数值精度错误,如果其大部分训练都是在平均值0和标准差1的数据上?

Why do different methods for solving Xc=y in python give different solution when they should not?

,似乎有数值的问题,由于浮动点,反转矩阵和限制值[-1,1],我很好奇,现在为什么不深的学习不是来自浮遭受或如果大多数训练数据的平均值为0和标准差1(假设我假定大部分数据已经被预处理到该范围内,再加上我认为这应该基本正确批量标准化的高使用率)。是因为深度学习不是通过高度提高多项式来进行训练,或者为什么深度学习通常很好?是否有一些特殊的SGD或者(流行)激活函数relu,elu等不是数值不稳定的(与高次多项式相比)?或者,也许GPU培训一起避免浮点表示?或者为什么深度学习训练在数值上稳定?

回答

1

对于DL来说,没有什么是真正的神奇 - 它总是有数字错误。然而,由于非线性的规模和数量,DL中的数值不稳定性通常会导致无穷大或无规律,而不是错误的答案。因此他们通常很容易被发现。特别是[0,1]区间没有任何困难,事实上,它对于浮动物来说是一个很好的存储空间,因为quarter of representable floats actually live in [0,1]!你所指的问题在于采用这样一个数字的巨大指数,这个数字危险地接近机器精度。任何标准的DL技术都不需要任何激活的30次方。实际上,大多数最成功的DL技术(基于S形,tanhs和relus)几乎是线性的,所以数值不稳定性主要来自概率估计中的exp操作。

所以:

  • 是关于高次多项式? ,这是主要问题,在DL中不会遇到。
  • SGD有什么特别之处?不是真的。
  • 是关于激活功能吗?是的,他们不会让这么大的精度下降(指数是个例外,但它确实会导致数值问题)
  • 是GPU避免浮动吗?不,它不是,GPU与它无关。
相关问题