透過統計和圖表技巧檢查完資料後 您應該設法轉換資料,讓模型能 有效目標 正規化是指 提供類似的功能以下列兩個示例為例 功能:
- 地圖項目
X
的範圍介於 154 至 24,917,482 之間。 - 地圖項目
Y
的範圍介於 5 到 22 之間。
這兩項功能的範圍截然不同。正規化作業可能會
X
和 Y
來取得類似的範圍 (可能為 0 到 1)。
正規化具有以下優點:
- 讓模型在訓練期間更快收訊。 當不同特徵具有不同的範圍時,梯度下降法 「bounce」以及慢慢收斂儘管如此,還有更進階的最佳化工具 畢業 和 Adam 的 並逐漸調整有效學習率
- 協助模型推測出更準確的預測結果。 如果不同特徵有不同範圍時 可能會產生較不實用的預測結果
- 有助於在特徵值非常高時避免「NaN 陷阱」。
NaN 為
「不是數字」。如果模型中的值超過
浮點精確度限制,系統會將值改為
NaN
數字。當模型中有一個數字變成 NaN, 模型最終也會成為 NaN - 協助模型瞭解每個特徵的適當權重。 如果沒有特徵縮放功能,模型會專心注意 但資訊廣泛但缺乏足夠關注 或縮小範圍
建議你將數值特徵正規化
範圍 (例如年齡和收入)
我們也建議您正規化涵蓋多個範圍的單一數值特徵
例如 city population.
請考慮下列兩項功能:
- 「
A
」地圖項目的最低值為 -0.5,最高為 +0.5。 - 地圖項目
B
的最低值為 -5.0,最高值為 +5.0。
地圖項目 A
和地圖項目 B
的跨距相對較小。但功能 B
的
時距的寬度比特徵 A
的跨範圍大 10 倍。因此:
- 在開始訓練時,模型會假設特徵
A
為十次 較「重要」比功能B
- 訓練需要較長的時間。
- 最終產生的模型可能不夠理想。
非正規化造成的整體損害會相對較小;不過 我們仍建議特徵 A 和特徵 B 正規化為相同的量表 例如 -1.0 至 +1.0
現在,請思考兩項差異較大的特徵:
- 功能 `C 的最低值為 -1,最高為 +1。
- 「
D
」地圖項目的最低值為 +5000,最高為 +1,000,000,000。
如果您沒有將特徵 C
和特徵 D
正規化,模型很可能會
可能不夠理想而且必須花費更多時間
甚至沒辦法完全收斂!
本節說明三種常用的正規化方法:
- 線性縮放
- Z 分數縮放
- 記錄檔資源調度
本節額外涵蓋 裁剪。雖然不是真的 正規化技術,剪裁會去除不重要的數值特徵 以便產生更好的模型
線性調整
線性資源調度 (較常見 縮短為僅縮放) 表示將浮點值從 自己的自然範圍 (通常為 0 到 1 或 -1 到 +1。
符合下列所有條件時,建議您使用線性資源調度:
- 資料的上下限不會隨時間改變。
- 功能包含極少或沒有離群值,且這些離群值沒有 極端!
- 特徵會平均地分佈在其範圍內。 也就是說,直方圖會針對大多數年齡層顯示大約平均的長條。
假設人類 age
是特徵。線性縮放是良好的正規化
「age
」的技術,原因是:
- 概略值下限和上限均為 0 至 100。
age
包含相對較少的離群值。大約只有 0.3% 人口超過 100 人- 雖然特定年齡層比其他年齡略高 資料集應包含所有年齡的足夠範例。
隨堂測驗
假設模型有一個名為net_worth
的特徵,其中包含網路
適合每個人線性縮放是否會成為良好的正規化
「net_worth
」的技巧?原因為何?
Z 分數縮放
Z 分數是指特定值與平均值之間的標準差數。 例如,2 個標準差的值大於平均值 的 Z 分數為 +2.0。標準差 1.5 的值小於 平均值的 Z 分數為 -1.5
代表具有 Z 分數縮放的特徵代表儲存該特徵的 特徵向量中的 Z 分數。舉例來說,下圖顯示 直方圖:
- 左側為常態分佈,
- 在右側,相同分佈已透過 Z 分數縮放進行正規化。
![圖 4. 兩個直方圖:兩者都顯示正常分佈
均以相同的分佈為依據第一個包含原始的直方圖
平均值為 200,標準差為 30第二個
內含第一個 Z 分數版本的直方圖
分佈為 0,且標準差為 1。](https://developers.google.cn/static/machine-learning/crash-course/images/z-scaling_classic.png?authuser=9&hl=zh-tw)
Z 分數縮放功能也適合用於 一個看起來很明顯的常態分佈。
![圖 5. 兩個相同形狀的直方圖,每個直方圖都顯示一個陡峭
上升到高原,接著相對急速下降
漸進式衰減其中一個直方圖可說明
原始資料的分佈情形另一個直方圖則說明
。
兩個直方圖的 X 軸值差異很大。
原始資料直方圖涵蓋網域 0 到 29,000,
Z 分數經過調整的直方圖範圍 -1 到 +4.8](https://developers.google.cn/static/machine-learning/crash-course/images/z-scaling-non-classic-normal-distribution.png?authuser=9&hl=zh-tw)
當資料與常態分佈或 有點像常態分佈
請注意,部分發布作業在
但其中仍包含極端離群值舉例來說,幾乎所有
net_worth
特徵中的資料點可整併成 3 個標準差
但這項功能有幾百個標準差
你太過分心在這些情況下,您可以結合
另一種正規化 (通常為剪輯) 來處理這種情況。
練習:隨堂測驗
假設模型使用名為height
的特徵訓練,該特徵包含成人
女性人數超過 1000 萬Z 分數縮放是否為良好正規化?
「height
」的技巧?原因為何?
記錄檔資源調度
對數縮放會計算原始值的對數。理論上 對數可以是任何底數;在實際執行時 自然對數 (ln)。
如果資料符合權力法分佈,記錄檔縮放比例會有所幫助。 隨興的權法分配如下:
- 低的
X
值為Y
。 - 隨著
X
的值增加,Y
的值會快速減少。 因此,高值X
的值非常低 (Y
)。
電影分級就是權力法散佈的良好範例。在下列項目中 ,請注意:
- 有些電影的使用者評分非常高,(低
X
的值為高)Y
的值)。 - 大多數電影的使用者評分很少。(高值
X
的值偏低)Y
的值)。
記錄檔資源調度會改變分佈情形,有助於訓練 以便做出更準確的預測
第二個例子是,書籍銷售符合權力法發行規定,原因如下:
- 大部分出版書籍只賣出少量的複本,可能只有一到兩百本。
- 有些書籍內含數千本書籍,數量適中。
- 只有少數暢銷商品會賣出超過一百萬份的複本。
假設您正在訓練線性模型來找出關聯性 例如以書籍銷售為例對原始值進行線性模型訓練 有些書籍的封面賣出百萬本書籍,因此必須尋找一些書籍封面 比只銷售 100 本書籍的封面設計出 10,000 件最強大的書籍。 然而,對所有銷售數據增加記錄,讓工作更可行。 例如,100 的記錄為:
~4.6 = ln(100)
而 1,000,000 的記錄為:
~13.8 = ln(1,000,000)
因此,1,000,000 的紀錄只比 100 的紀錄高大約三倍。 你或許「能」想像一下暢銷書封面大約 3 次 功能反而比只銷售小小的書籍封面更好 (有些許好處)。
裁剪
裁剪是一種技巧 盡可能降低極端離群值的影響簡單來說,剪裁通常大寫 (減少) 離群值與特定最大值。剪輯是一種 這個想法可能很有效
舉例來說,假設資料集包含名為 roomsPerPerson
的特徵,
當中包含房間數量 (會議室總數除以
來篩選各個房子的乘客人數。下圖顯示
99% 的特徵值符合常態分佈 (大約是
1.8,標準差為 0.7)。不過,這項功能
有幾個離群值,有些是極端的:
![圖 7. 顯示幾乎所有數值的房間人偶
介於 0 到 4 之間,但有很大的長尾
一到每人最多可入住 17 間會議室](https://developers.google.cn/static/machine-learning/crash-course/images/PreClipping.png?authuser=9&hl=zh-tw)
你如何盡可能降低這些極端離群值的影響?
直方圖並非均勻分佈、常態分配或權力法
發行。如果您只使用 cap 或 clip 這個最大值
「roomsPerPerson
」做為任意值,例如 4.0?
![所有值均介於 0 至 1 之間的人房 (PerPerson)
4.0.謎題看起來像是鐘型,但 4.0 處有異常山丘](https://developers.google.cn/static/machine-learning/crash-course/images/Clipping.png?authuser=9&hl=zh-tw)
將特徵值裁剪為 4.0,並不代表模型會忽略所有 大於 4.0 的值而是代表所有大於 100 的值 大於 4.0說明 4.0 號的孔雀山。儘管 現在,按比例調整的特徵集會比原始資料更實用。
等等!您可以把每個離群值確實減少成任意上限 門檻?訓練模型時答案是
您也可以在套用其他正規化後裁剪值。 例如,假設您使用 Z 分數縮放功能,但有好幾個異常值 絕對值大於 3在這種情況下,你可以:
- 將 Z 分數大於 3 剪輯成剛好 3。
- 將 Z 分數小於 -3 的剪輯片段,使其完全符合 -3。
剪輯可避免模型在不重要的資料上過度索引。不過 其實有些離群值非常重要 因此,裁切值時要小心
正規化技術摘要
正規化技術 | 公式 | 使用時機 |
---|---|---|
線性調整 | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | 特徵統一分佈於 固定範圍 |
Z 分數縮放 | $$ x' = \frac{x - μ}{σ}$$ | 特徵分佈不含極端離群值時。 |
記錄檔資源調度 | $$ x' = log(x)$$ | 功能符合電力法規時。 |
裁剪 | 如果 $x >max$,設為「$x」= 最高$ 如果 $x <min$,設為「$x」= 分鐘$ |
地圖項目含有極端離群值時。 |
練習:考考你的知識
假設您開發的模型可以預測資料中心的
衡量的工作效率。
資料集中的所有 temperature
值幾乎都會下滑
介於 15 到 30 (攝氏) 之間,但有以下例外:
- 每年一到兩次,在極熱的日子裡
31 和 45 會記錄在
temperature
中。 - 在
temperature
中,每 1,000 個點會設為 1,000 而不是實際溫度
以下何者是合理的正規化技術
是temperature
嗎?
1,000 的值有誤,應將其刪除,而非 未完整播放。
31 到 45 之間的值都是合法的資料點。 假設 這個溫度範圍未包含足夠的樣本, 以便訓練模型進行良好預測不過在推論期間 請注意,經過裁剪的模型 將溫度設為 45 度