四捨五入、近似與數量級

從零開始,在一切之前你需要的基礎數學

有些數是精確的。一間有 12 把椅子的教室恰好是 12 把,不是 11.6,也不是 12.4。但你在簡單計數之外遇到的大多數數字都不是這樣。秒表可能顯示 9.83274 秒。計算器算 1 除以 7 可能顯示 0.142857142857。這樣的數字攜帶的位數遠遠超過你實際需要的,而四捨五入就是把它精簡成一個更簡單的值,同時誠實地說明你保留了多少細節。

四捨五入不是瞎猜,也不是撒謊。你要根據情況選擇一個合適的細節層級,然後根據緊跟其後的那一位數字來調整你要保留的最後一位。你經常會看到結果寫成帶有符號 ≈ 的形式,讀作「約等於」,比如 7.846 ≈ 7.85。養成這個習慣,你就能對任何東西做四捨五入:價格、測量值,或者模型的輸出分數。

這裡有一個值得記住的畫面。雨量筒其實就是一個側面印有刻度線的集水圓筒。雨水很少恰好落到某一條刻度線上,所以如果水面停在兩條線之間,你就讀出最近的那一條並記下來。多寫幾位數字並不會讓你的讀數更誠實,只會假裝這個量筒能顯示出它其實顯示不出的細節。你可以在下面親自試試:沿著線拖動這個點,在四捨五入到個位、十分位和百分位之間切換,看看哪個刻度勝出。

在機器學習中的應用計算機存儲幾乎所有實數值時都只能用有限的精度。一個在屏幕上看起來乾乾淨淨的數值,底層可能早已是一個接近的二進制近似值。這一點比聽起來更重要:非常小的梯度在低精度下可能會完全消失,而非常大的值則可能會溢出。 同樣的原則也適用於你如何報告結果。把模型準確率寫成 0.873642,並不能證明你真的對小數點後六位都有把握。數量級也很重要。一個以千為量級的特徵,如果不在訓練前把各特徵縮放到可比的範圍,就可能悄悄壓過一個以十分之一為量級的特徵。
▶ 四捨五入、近似與數量級
← 十的冪什麼是變量 →