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技法(シグモイド、tanhsおよびrelusに基づく)のほとんどはほぼ線形であり、したがって数値不安定性は主に確率推定のexp演算から来る。だから、

  • は、それが高度多項式についてですか? はい、これは主な問題であり、DLで発生しません。
  • SGDには特別なものがありますか?あんまり。
  • それは起動機能に関するものですか?はい、彼らはそのような巨大な精度の低下をさせません(指数は例外ですが、数値的な問題につながります)
  • は浮動小数点を避けるGPUですか?いいえ、そうではありません、GPUはそれとは関係ありません。