コンピュータアーキテクチャ数値計算

桁落ち

けたおち · Loss of Significance
2 views

桁落ちとは、値が非常に近い2つの浮動小数点数の引き算を行った際に、有効桁数が大幅に減少する計算誤差の現象です。AIや数値計算において、非常に小さな変化量を計算する際やニューラルネットワークの勾配計算などで発生すると、精度低下や学習の不安定化を引き起こすため、計算式の工夫などで対処する必要があります。

桁落ちとは

桁落ちとは、数値計算において値が非常に近い数値同士の引き算を行った際、計算結果の有効桁数が大幅に失われる現象を一言で表した用語です。

詳しく解説

コンピュータで小数を扱う浮動小数点数では、数値を仮数部と指数部で表現します。値がほぼ等しい2つの数値同士で減算を行うと、上位の共通する桁同士が相殺されて消滅し、残った下位のわずかな差のみが結果として残ります。このとき、不足した桁を埋めるために下位桁へ0が補われますが、元々存在していた精密な情報が失われているため、有効桁数が激減します。AI開発やディープラーニングのモデル学習では、損失関数の計算や微分パラメータの更新などで無数の減算が行われます。桁落ちが頻繁に発生すると、計算結果の信頼性が損なわれ、正確な最適化が行えなくなる重要課題となります。

具体例・使われ方

例えば、1.2345678 と 1.2345670 という2つの浮動小数点数の差を計算する場合、結果は 0.0000008 となります。仮数部の有効数字が元々8桁あったのに対し、計算後の有効数字は1桁に激減してしまいます。機械学習ライブラリの内部処理や、微分を近似する数値微分の計算過程でこの現象が起こりやすく、計算式の変形により防ぐ手法が用いられます。

似た用語との違い

桁落ちと混同されやすい概念に情報落ちがあります。情報落ちは、極端に大きさが異なる2つの浮動小数点数を加算または減算した際、小さい方の数値のデータが計算結果に反映されず無視される現象です。一方、桁落ちは値がほぼ等しい数値同士の減算で起こる現象であり、発生する条件が異なります。また、四捨五入などで発生する丸め誤差とも発生機序が区別されます。

注意点

桁落ちはハードウェアの故障ではなく、浮動小数点数の仕様に由来する計算上の限界です。単に計算の精度を上げようとしても根本的な解決にならないケースがあります。特に、AIの学習過程で発生する勾配消失問題の引き金になることもあるため、アルゴリズム設計や数式の再構成によって差分計算そのものを回避する注意が必要です。

更新日時: 2026年9月5日 12:11