有限精度とは何か説明できますか?機械学習で有限精度が問題になるのはなぜですか?
有限精度とは何か説明できますか?機械学習で有限精度が問題になるのはなぜですか?
回答:
有限精度は、四捨五入または切り捨てられた数値の10進数表現です。これが必要または適切な場合が多くあります。たとえば、1/3と超越数とπはすべて無限の10進数表現を持っています。プログラミング言語Cでは、double値は8ビットで、精度は約16桁です。こちらをご覧ください。
http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/
(有限の)コンピュータでこれらの数値の1つを具体的に表すには、何らかの妥協が必要です。1/3から9桁の数字は.333333333と書くことができ、これは1/3未満です。
これらの妥協は算術演算と複合します。不安定なアルゴリズムでは、算術エラーが発生しやすくなります。これが、SVDがPCA(共分散行列の不安定性)の計算によく使用される理由です。
http://www.sandia.gov/~smartin/presentations/SMartin_Stability.pdf
https://en.wikipedia.org/wiki/Numerical_stability
単純ベイズ分類器では、乗算が対数の合計に変換されることがよくあります。これにより、丸め誤差が発生しにくくなります。
https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Multinomial_naive_Bayes