此分類用於記錄吳恩達深度學習課程的學習筆記。
課程相關信息鏈接如下:
- 原課程視頻鏈接:[雙語字幕]吳恩達深度學習deeplearning.ai
- github課程資料,含課件與筆記:吳恩達深度學習教學資料
- 課程配套練習(中英)與答案:吳恩達深度學習課後習題與答案
本篇為第三課的第一週內容,1.1到1.4的內容。
本週為第三課的第一週內容,本週的內容關於在實際項目進行中的一些基本策略,並不涉及技術性的知識。
經過整個第一課和第二課後, 我們已經瞭解了足夠支持我們構建一個完整的基礎神經網絡項目的知識和技術,本週便是在這些基礎上的一個指導策略,可以幫助實現更好確定項目方向,優化和評估模型性能。
只要對前面兩課涉及的技術原理足夠了解,可以説,本週的內容不存在理解上的難度。
本篇的內容關於正交化調優和評估指標。
1. 正交化調優
1.1 我們已有的調參方向
我們已經瞭解到了很多技術,來支持我們在模型訓練中進行不同的嘗試,就像課程裏説的這樣:
在上週的超參數調整部分裏,我們已瞭解到了方格調參,取對數軸等幫助超參數調優的方式,這周的內容又從一個更大的角度給出了這方面的策略。
1.2 什麼是正交化?
你可能在高數裏看到過這個概念,我們在DL的背景下再來闡述一下這個概念:
我們不提正交化在數學裏的專業概念,只理解它在我們現在的機器學習策略中的作用即可。
其實簡單來説,就是把負責各個功能的內容分開,讓它們不要互相影響,從而影響調優。
你可能會把它理解成控制變量,但還是我之前説的,這個範圍要比我們之前提到的超參數調優要大一些。
我們來具體看看。
1.3 正交化調優的應用方式
這就是正交化的使用,不同於之前我們通過超參數調整針對某個超參數,正交化的基本思想是把調優方式分組來調優整個項目的單個環節,並儘可能地實現互不影響。
很明顯,這對我們明確擬合步驟和調優方向是極有幫助的,而且邏輯通順。
接下來我們再拓展一個專業名詞:耦合
1.4 耦合和解耦合
在進入下一部分前,先來拓展兩個非常常見、但在深度學習裏卻往往被忽略的詞:耦合(Coupling) 和 解耦合(Decoupling)。
它們其實和我們剛剛講的“正交化”是並行概念,但描述的角度不同。
我們分點來了解一下:
(1)什麼是耦合?
“耦合”指的是:兩個本來應該獨立的部分,卻互相影響、互相牽制,讓你沒辦法單獨調其中一個。
在DL中,實際上就是我們剛剛提到的非正交化,比如:
- 你想提高模型容量,卻發現訓練變慢、過擬合更明顯
- 你想調學習率,卻發現 batch size、正則化都跟着亂
- 你想改善測試準確率,卻發現訓練準確率也跟着變了
- 你想讓損失下降,卻發現它受到梯度消失干擾
這些問題的共同點是:
一個地方的問題被多個因素共同影響,你很難定位問題來源。
就像 一團線纏成一坨毛球 —— 你想拉出一根,卻發現其他線也跟着動。
(2)什麼是解耦?
很顯然,解耦就是讓每一塊功能隻影響它應該影響的部分,不要交叉干擾。
同樣,在 DL 中,就是我們剛剛的正交化,表現為:
- 想調學習率,就隻影響優化速度,不影響模型表達能力
- 想解決偏差,就去調網絡結構,而不是學習率
- 想解決方差,就去調正則化,而不是訓練輪數
- 想提升訓練集性能,就別去亂動提升測試性能的那一套
換句話説: 訓練的幾個關鍵目標(擬合、泛化、優化穩定性、速度等)要儘量互相獨立。
耦合和解耦合的説法實際上更常見於軟件開發中的模塊化中,用來區分功能,明確責任。我們這裏拓展一下,你如果在其他地方見到,它們和這裏提到的正交,非正交是一個意思,只是在不同領域的常用説法不同。
2.評估指標
我在前面的實踐部分都會使用準確率來評估模型的擬合效果,而準確率就是評估指標的一種。
在這部分,我們就隨課程內容展開一下在實際項目中,這方面的策略。
2.1 單一數字評估指標
我們在買東西時常説:要看性價比。
這是因為:
- 有的商品效果好,但太貴。
- 有的商品價格便宜,但效果不好。
現在,如果只看價格和效果這兩個評估指標,你會發現很難評價上面兩種商品間的好壞,因為它們各有優劣。
所以,我們用性價比這個單一數字評估指標結合這兩種指標來評價商品,就避免了上面的糾結。
在DL領域也是一樣的道理,我們來看一下分類模型裏面常用的幾個評估指標,如果你要寫這方面的論文,就幾乎逃不開它們。
(1)準確率 Accuracy
準確率是我們最熟悉的指標,它衡量的是:模型預測正確的樣本佔全部樣本的比例。
公式為:
其中:
- TP(True Positive):真正例,預測“是”且實際上“是”
- TN(True Negative):真負例,預測“否”且實際上“否”
- FP(False Positive):假正例,預測“是”但實際上“否”
- FN(False Negative):假負例,預測“否”但實際上“是”
第一次看這幾個字母組合可能會有些分不過來,但在各個分類指標中,他們都會和你常見。
現在來看個例子:
假設你有一個 10 個樣本的貓狗分類模型:
如果模型預測對了 8 張,那麼:
聽上去不錯,但這個指標有一個致命缺點: 當正負樣本極不均衡時,準確率可能毫無意義。
這句話是什麼意思?
繼續我們之前的數據集設定:
- 99 張 貓
- 1 張 狗
這是一個 極度不平衡 的數據集。
現在假設模型非常“懶”,它學會了一個“最優生存策略”:無論輸入什麼,都預測:貓。
準確率:
看上去非常漂亮,但模型完全沒用!
因為它根本沒有學會識別“狗”是什麼樣子,它只是迎合了數據分佈,而不是真正地在分類。
因此,就出現了其他指標,我們繼續。
(2)精確率 Precision
精確率關注的是: 模型預測為“正”的樣本里,有多少是真正的正樣本?
換句話説,它衡量的是: “你説這些是貓,結果你説對了嗎?”
公式為:
再重複一下,其中:
- TP(True Positive):預測為正且實際為正
- FP(False Positive):預測為正但實際為負(誤報)
精確率解決的問題是:“我不想模型亂報。”
例如腫瘤篩查,如果模型只要看到一點點異常就高喊“癌症!癌症!”,
雖然可能很“敏感”,但全部都是誤報,用户會被嚇死。
這時就需要精確率來約束模型的“靠譜程度”。
你有實際 10 張貓圖,模型預測“是貓”的有 8 張,其中:
- 5 張是真的貓(TP = 5)
- 3 張其實是狗但被誤判成貓(FP = 3)
那麼:
含義就是:模型説“這裏有貓”時,只有 62.5% 的概率是對的。
(3)召回率 Recall
召回率關注的是:在所有實際為“正”的樣本中,模型能找對多少?
特別適合“找到所有風險”、“不能漏報”的任務:
比如風控報警、欺詐檢測等。
公式為:
繼續重複,其中:
- TP:模型找對的正樣本
- FN:漏掉的正樣本
假設真實有 10 個“貓”,模型找到了其中 7 個:
- TP = 7
- FN = 3
這意味着:模型成功找出了 70% 的貓,還有 30% 被漏掉了。
如果任務是:
“不能漏掉任何一隻貓(例如找可疑人員)”,
那麼 0.7 的召回率就是完全不可接受的。
(4)F1分數 F1-score
知道了召回率和精確率的概念後,你應該就會發現:
- 只提高召回率,往往會降低精確率
- 只提高精確率,又可能會降低召回率
就像這樣:
因此,我們需要一個指標:
能綜合衡量精確率(Precision)與召回率(Recall)
F1 正是:
現在假設:
- 模型找到的都是貓(預測為貓的 10 個裏,有 8 個是真的)
→ Precision = 0.8 - 實際上有 12 只貓,模型找到了 8 只
→ Recall = 0.67
那麼F1就是:
可以看到:F1代表了兩者的平衡程度。
當任務要求是既不能漏太多,也不能亂報太多時,F1 就非常關鍵了。
我們總結一下:
| 指標 | 關注點 | 典型問題 | 適用場景 |
|---|---|---|---|
| Accuracy | 總體正確率 | 模型整體表現怎樣? | 類別均衡的分類任務 |
| Precision | 報準了沒有 | 我説“是”的裏有多少是真的? | 誤報代價高(垃圾郵件、安檢) |
| Recall | 找全了沒有 | 所有真正的“是”我找到了多少? | 漏報代價高(醫療、風控) |
| F1-score | 平衡兩者 | 報準與找全的折中 | 對誤報和漏報都敏感 |
根據我們的任務需求,我們需要選擇合適的評估指標來衡量性能。
很顯然,在大多情況下,用F1-score作為單一評估指標,會比只用Precision或者Recall作為指標更為全面。
就像在這個課程裏的例子裏一樣:
在前兩者各有優劣的情況下,你可以通過F1分數比較出兩個分類器的綜合性能高低。
2.2 滿足和優化指標
我們現在以及有了很多指標,但實際,在不同任務中,對不同指標的重視程不同。
因為我們又在此基礎上,把指標分成滿足指標和優化指標,他們因任務不同而不同。
在這個課程實例裏來介紹一下:
現在假如這個分類器是針對某種醫學圖像的識別,那麼我們就會這麼設置:
- 優化指標:準確率,很顯然,這是最重要的。
- 滿足指標:運行時間,我們接受為了正確地識別病情多等一秒。
在這種情景下,使用分類器 C 是最合適的,我們設置運行時間在2000ms以下即可滿足,從而把更多資源投入準確率,實現優化。
那現在再換一種情況,這個分類器是某種危險信號的識別,那我們就會這麼設置:
- 優化指標:運行時間,我們必須以極快的速度偵察危險。
- 滿足指標:準確率,虛驚一場總比沒命強。
那麼顯示,使用分類器 B 更合適的。我們設置準確率在90%以上即可,從而把更多資源投入運行時間。
現在,給出二者的概念:
滿足指標指的是:這些指標只要達到某條線即可,不強求做到最好。
優化指標指的是:這是我們真正要拉滿、要儘可能提升的指標。
因為一個模型不可能同時把所有指標都變成最優。
必須先明確“最低要求是什麼”,然後把資源集中在真正關鍵的指標上。
這便是指標部分的策略。
3.總結
| 概念 | 原理 | 比喻 |
|---|---|---|
| 正交化調優 | 將訓練目標拆分成互不干擾的小塊,各調各的。 | 就像把廚房、客廳、卧室分開裝修,不會你刷牆時把廚房的地板一起搞髒。 |
| 耦合 / 解耦合 | 耦合:互相牽連。解耦:各做各的事。 | 耦合像一團亂麻的耳機線;解耦像一根根排好序的鍵盤線。 |
| 單一數字評價指標 | 用一個數字融合多個維度來評估。 | 就像“性價比”:不用糾結貴不貴、好不好,一看這個就知道買不買。 |
| 精確率(Precision) | 預測出的正類裏有多少是真的。 | 它關注“你説有貓,那你説對了嗎?” |
| 召回率(Recall) | 所有真實正類裏,你找出了多少。 | 它關注“所有的貓,你有沒有一個不漏地找出來?” |
| F1-score | Precision 與 Recall 的調和平均。 | 既不能亂喊“有貓!”,也不能漏掉貓,是一種“説得準 + 找得全”的折中。 |
| 滿足指標 & 優化指標 | 滿足指標達線即可;優化指標才是你真正要卷的。 | 滿足指標像考駕照過線就行;優化指標像真實上路,還得開得又穩又快。 |