【學習筆記】機器學習(Machine Learning) | 第六周|過擬合問題

機器學習(Machine Learning)

簡要聲明

基于吳恩達教授(Andrew Ng)課程視頻
BiliBili課程資源


文章目錄

  • 機器學習(Machine Learning)
    • 簡要聲明
  • 摘要
  • 過擬合與欠擬合問題
    • 一、回歸問題中的過擬合
      • 1. 欠擬合(Underfit)
      • 2. 剛好擬合(Just right)
      • 3. 過擬合(Overfit)
    • 二、分類問題中的過擬合
      • 1. 欠擬合(Underfit)
      • 2. 剛好擬合(Just right)
      • 3. 過擬合(Overfit)
    • 三、過擬合的原因及解決方法
      • 過擬合原因
      • 解決方法
  • 解決過擬合問題
    • 一、收集更多訓練數據
    • 二、選擇特征
    • 三、正則化
    • 四、過擬合解決方法總結
  • 正則化的應用
    • 一、帶正則化的代價函數
    • 二、正則化線性回歸
    • 三、正則化邏輯回歸
    • 四、正則化參數的選擇
    • 五、正則化方法對比


摘要

本文介紹了機器學習中的過擬合和欠擬合問題,通過回歸和分類問題展示了不同擬合程度的表現。針對過擬合問題,提出了增加訓練數據、特征選擇、正則化等解決方法,并討論了正則化在線性回歸和邏輯回歸中的應用,包括帶正則化的代價函數和梯度下降更新規則。最后,對比了正則化方法的優缺點,強調合理應用正則化技術對提高模型泛化能力的重要性。


過擬合與欠擬合問題

在機器學習中,過擬合是一個常見的問題,它導致模型在訓練數據上表現很好,但在新的、未見過的數據上表現不佳。以下是對過擬合問題的詳細探討。

一、回歸問題中的過擬合

考慮一個簡單的回歸問題,嘗試用不同復雜度的模型來擬合數據。

1. 欠擬合(Underfit)

  • 模型表達式 y = w 1 x + b y = w_1x + b y=w1?x+b
  • 特征:僅使用輸入變量的一次項。
  • 表現:模型無法很好地擬合訓練數據,存在高偏差(high bias)。

2. 剛好擬合(Just right)

  • 模型表達式 y = w 1 x + w 2 x 2 + b y = w_1x + w_2x^2 + b y=w1?x+w2?x2+b
  • 特征:使用輸入變量的一次項和二次項。
  • 表現:模型很好地擬合了訓練數據,具有良好的泛化能力(generalization)。

3. 過擬合(Overfit)

  • 模型表達式 y = w 1 x + w 2 x 2 + w 3 x 3 + w 4 x 4 + b y = w_1x + w_2x^2 + w_3x^3 + w_4x^4 + b y=w1?x+w2?x2+w3?x3+w4?x4+b
  • 特征:使用了過多的高次項。
  • 表現:模型在訓練數據上擬合得非常好,但存在高方差(high variance),泛化能力差。

圖像對比

欠擬合
在這里插入圖片描述
剛好擬合
在這里插入圖片描述
過擬合
在這里插入圖片描述


二、分類問題中的過擬合

在分類問題中,過擬合問題同樣存在。

1. 欠擬合(Underfit)

  • 模型表達式 z = w 1 x 1 + w 2 x 2 + b z = w_1x_1 + w_2x_2 + b z=w1?x1?+w2?x2?+b f w , b ( x ) = g ( z ) f_{\mathbf{w},b}(\mathbf{x}) = g(z) fw,b?(x)=g(z),其中(g)是Sigmoid函數。
  • 特征:僅使用線性特征。
  • 表現:模型無法很好地劃分數據,存在高偏差(high bias)。

2. 剛好擬合(Just right)

  • 模型表達式 z = w 1 x 1 + w 2 x 2 + w 3 x 1 2 + w 4 x 2 2 + w 5 x 1 x 2 + b z = w_1x_1 + w_2x_2 + w_3x_1^2 + w_4x_2^2 + w_5x_1x_2 + b z=w1?x1?+w2?x2?+w3?x12?+w4?x22?+w5?x1?x2?+b f w , b ( x ) = g ( z ) f_{\mathbf{w},b}(\mathbf{x}) = g(z) fw,b?(x)=g(z)
  • 特征:使用二次項特征。
  • 表現:模型能夠很好地劃分不同類別的數據。

3. 過擬合(Overfit)

  • 模型表達式 z = w 1 x 1 + w 2 x 2 + w 3 x 1 2 + w 4 x 2 2 + w 5 x 1 3 x 2 + w 6 x 1 3 x 2 2 + ? + b z = w_1x_1 + w_2x_2 + w_3x_1^2 + w_4x_2^2 + w_5x_1^3x_2 + w_6x_1^3x_2^2 + \cdots + b z=w1?x1?+w2?x2?+w3?x12?+w4?x22?+w5?x13?x2?+w6?x13?x22?+?+b f w , b ( x ) = g ( z ) f_{\mathbf{w},b}(\mathbf{x}) = g(z) fw,b?(x)=g(z)
  • 特征:使用了過多的高次交叉項。
  • 表現:模型在訓練數據上表現完美,但在新數據上表現不佳,存在高方差(high variance)。

圖像對比
欠擬合
在這里插入圖片描述
剛好擬合
在這里插入圖片描述
過擬合
在這里插入圖片描述


三、過擬合的原因及解決方法

過擬合原因

  • 模型復雜度過高
  • 訓練數據量不足
  • 特征過多或噪聲特征

解決方法

方法說明
增加訓練數據更多樣化的數據有助于模型學習到更通用的模式。
減少特征數量通過特征選擇或降維技術減少輸入特征的數量。
正則化通過在損失函數中添加正則化項(如L1或L2正則化)來限制模型復雜度。
交叉驗證使用交叉驗證技術評估模型在不同數據集上的表現,避免過擬合。
早停在訓練過程中,當驗證集性能不再提升時提前停止訓練。

解決過擬合問題

一、收集更多訓練數據

增加訓練數據量是解決過擬合的一種有效方法。更多的數據可以幫助模型學習到更通用的模式,減少過擬合的風險。

  • 原理:更多的訓練樣本可以提供更全面的信息,使模型更好地泛化。
  • 示例:如果模型在有限的房屋價格數據上過擬合,增加更多不同大小、價格的房屋數據可以使模型更準確地預測新數據。

在這里插入圖片描述


二、選擇特征

選擇合適的特征可以減少模型的復雜度,從而降低過擬合的可能性。

  • 特征選擇:從眾多特征中選擇最相關的特征,去除無關或冗余的特征。
  • 優點:減少模型復雜度,提高訓練速度。
  • 缺點:可能丟失一些有用的信息。
特征選擇方法說明
Filter Methods通過相關性分析等方法預選特征
Wrapper Methods通過模型性能評估選擇特征組合
Embedded Methods在模型訓練過程中自動選擇特征

在這里插入圖片描述


三、正則化

正則化是一種通過在損失函數中添加懲罰項來限制模型復雜度的方法。

  • L1正則化:添加參數的絕對值之和。公式為: λ ∑ j = 1 n ∣ w j ∣ \lambda \sum_{j=1}^{n} |w_j| λj=1n?wj?
  • L2正則化:添加參數的平方和。公式為: λ ∑ j = 1 n w j 2 \lambda \sum_{j=1}^{n} w_j^2 λj=1n?wj2?
  • 作用:使參數值更小,減少模型對單個特征的依賴。
正則化方法優點缺點
L1正則化可進行特征選擇,稀疏性好收斂速度較慢
L2正則化收斂速度快,穩定性好無法進行特征選擇

四、過擬合解決方法總結

方法適用場景優點缺點
收集更多數據訓練數據量不足時提高模型泛化能力數據收集成本高
特征選擇特征數量多且存在冗余特征時減少模型復雜度,提高訓練速度可能丟失有用信息
正則化模型參數量大,容易過擬合時有效控制模型復雜度,提高泛化能力需要調整正則化參數
交叉驗證數據集有限,需要充分利用數據進行模型評估時減少數據浪費,提高模型評估準確性計算成本高
早停模型訓練時間長,容易過擬合時防止模型在訓練集上過優化,保存較好的泛化能力需要確定合適的停止點

正則化的應用

一、帶正則化的代價函數

在帶正則化的代價函數中,我們在原始代價函數的基礎上添加了一個正則化項。對于線性回歸模型,其帶正則化的代價函數形式如下:

J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) 2 + λ 2 m ∑ j = 1 n w j 2 J(\mathbf{w}, b) = \frac{1}{2m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right)^2 + \frac{\lambda}{2m} \sum_{j=1}^{n} w_j^2 J(w,b)=2m1?i=1m?(fw,b?(x(i))?y(i))2+2mλ?j=1n?wj2?

其中:

  • m m m是訓練樣本的數量
  • n n n 是特征的數量
  • λ \lambda λ 是正則化參數,用于控制正則化的強度

正則化項 λ 2 m ∑ j = 1 n w j 2 \frac{\lambda}{2m} \sum_{j=1}^{n} w_j^2 2mλ?j=1n?wj2? 會懲罰過大的參數值,使模型更傾向于學習較小的參數,從而降低模型的復雜度。


二、正則化線性回歸

在正則化線性回歸中,我們通過梯度下降算法來最小化帶正則化的代價函數。其梯度下降的更新規則如下:

w j = w j ? α [ 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) x j ( i ) + λ m w j ] w_j = w_j - \alpha \left[ \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right) x_j^{(i)} + \frac{\lambda}{m} w_j \right] wj?=wj??α[m1?i=1m?(fw,b?(x(i))?y(i))xj(i)?+mλ?wj?]

b = b ? α 1 m ∑ i = 1 m ( f w , b ( x ( i ) ) ? y ( i ) ) b = b - \alpha \frac{1}{m} \sum_{i=1}^{m} \left( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) - y^{(i)} \right) b=b?αm1?i=1m?(fw,b?(x(i))?y(i))

其中:

  • α \alpha α是學習率
  • w j w_j wj? 是特征 ( j ) 的參數
  • b b b是偏置項

在梯度下降過程中,正則化項會使得參數 w j w_j wj?在每次更新時都乘以一個因子 ( 1 ? α λ m ) (1 - \alpha \frac{\lambda}{m}) (1?αmλ?),從而實現參數的“收縮”。

正則化線性回歸與普通線性回歸對比正則化線性回歸普通線性回歸
更新規則包含正則化項不包含正則化項
參數變化參數逐漸收縮參數無收縮
泛化能力更強較弱

三、正則化邏輯回歸

正則化邏輯回歸與正則化線性回歸類似,其代價函數也包含一個正則化項。對于邏輯回歸模型,其帶正則化的代價函數形式如下:

J ( w , b ) = ? 1 m ∑ i = 1 m [ y ( i ) log ? ( f w , b ( x ( i ) ) ) + ( 1 ? y ( i ) ) log ? ( 1 ? f w , b ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n w j 2 J(\mathbf{w}, b) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(f_{\mathbf{w},b}(\mathbf{x}^{(i)})) + (1 - y^{(i)}) \log(1 - f_{\mathbf{w},b}(\mathbf{x}^{(i)})) \right] + \frac{\lambda}{2m} \sum_{j=1}^{n} w_j^2 J(w,b)=?m1?i=1m?[y(i)log(fw,b?(x(i)))+(1?y(i))log(1?fw,b?(x(i)))]+2mλ?j=1n?wj2?

其中:

  • ( f w , b ( x ( i ) ) ) ( f_{\mathbf{w},b}(\mathbf{x}^{(i)}) ) (fw,b?(x(i))) 是邏輯回歸模型的預測輸出,使用Sigmoid函數計算得到

正則化邏輯回歸的梯度下降更新規則與正則化線性回歸類似,也是在原始梯度的基礎上添加了正則化項。


四、正則化參數的選擇

正則化參數 λ \lambda λ 的選擇對模型的性能有重要影響:

  • λ \lambda λ 過小:正則化效果不明顯,模型可能仍然過擬合
  • λ \lambda λ 過大:過度正則化,模型可能欠擬合

可以通過交叉驗證的方法來選擇合適的 λ \lambda λ 值。


五、正則化方法對比

正則化方法適用場景優點缺點
L1正則化特征稀疏可進行特征選擇收斂速度較慢
L2正則化參數平滑收斂速度快無法進行特征選擇

通過合理應用正則化技術,可以有效防止模型過擬合,提高模型的泛化能力和實際應用效果。


正則化后圖像
線性回歸
在這里插入圖片描述
分類
在這里插入圖片描述


end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78040.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

當算力遇上堵車:AI如何讓城市血管不再“血栓”?

目錄 一、算力治堵的“外科手術” 二、算力治堵的“內科檢查” 三、算力治堵的“中醫調理” 治堵如治水,算力是新時代的“大禹” “堵車”是每個大城市的通病,但鮮少有人意識到:交通擁堵的根源并非車輛過多,而在于車速過慢,不是因為堵車才慢,而是因為慢才堵車。中國工…

VM虛擬機安裝CentOS7.9

目錄 1.下載CentOS7.9 2.VM虛擬機選擇自定義,然后一直傻瓜式下一步 3.選擇編輯虛擬機設置,然后選擇剛剛下載的ISO 4.輸入 ip addr 獲取ip地址 5.用Xshell連接 1.下載CentOS7.9 鏈接:https://pan.baidu.com/s/1kW2gGWnbcjNtq4kz46LKVw?p…

文本解析到大模型應用

文本解析到到大模型應用 一、背景 最近接到一個比較惡心的工作,之前有個同事將很多個小的文檔整合到了一個大文檔中,同時暴露出一個新的問題,大的文檔雖然查找問題比較方便但是維護起來較為麻煩,所以需要將大的文檔按照標題拆分…

AWS虛擬專用網絡全解析:從基礎到高級實踐

導語 AWS虛擬專用網絡是連接企業本地數據中心與AWS云環境的關鍵橋梁。本文將深入探討AWS VPN的核心概念、配置方法、最佳實踐以及常見問題解決方案,助您構建安全、可靠的混合云網絡架構。 一、AWS VPN概述 1. 定義 AWS VPN是一種網絡服務,允許用戶通過加密隧道將本地網絡…

【含文檔+PPT+源碼】基于微信小程序的校園快遞平臺

項目介紹 本課程演示的是一款基于微信小程序的校園快遞平臺,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系統 3.該項目附帶…

基于 Rancher 部署 Kubernetes 集群的工程實踐指南

一、現狀分析 在當今的云計算和容器化領域,Kubernetes(K8S)已經成為了容器編排和管理的事實標準。根據 Gartner 的數據,超過 70% 的企業在生產環境中使用 K8S 來管理容器化應用。然而,K8S 的安裝和管理對于許多企業來…

Windows服務器提權實戰:常見方法、場景與防御指南

在滲透測試中,??權限提升(提權)??是從低權限賬戶(如IIS、Apache運行賬戶)獲取系統管理員(如SYSTEM)權限的關鍵步驟。本文將從實戰角度解析Windows服務器提權的常見技術,并結合真…

C# | 基于C#實現的BDS NMEA-0183數據解析上位機

以下是一個基于C#實現的BDS NMEA-0183數據解析上位機的示例代碼,包含基礎功能和界面: using System; using System.Collections.Generic; using System.IO.Ports; using System.Windows.Forms; using System.Drawing; using System.Globalization;namespace BDS_NMEA_Viewer…

圖像增強技術:從基礎原理到企業級開發實戰

簡介 圖像增強技術是提升圖像質量、改善視覺效果和提高后續處理效果的核心方法。本文將全面解析圖像增強的五大核心技術:灰度級修正、圖像平滑、圖像銳化、圖像偽彩色處理和圖像幾何校正,并提供基于OpenCV和Elasticmagic的完整企業級開發實戰代碼。通過系統化的知識整理和可…

解決中文亂碼:字符編碼全攻略 - ASCII、Unicode、UTF-8、GB2312詳解

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,精通Java編…

體系學習1:C語言與指針1——預定義、進制打印、傳參為數組

1、不對一段代碼進行編譯 #if 0 statement #endif2、輸出地址 int d[3]{1,2,3}; printf("%p",(void*)d);//p期待的是void*類型的數據3、不同進制的打印 int data 1200; char hed[9];//為\0預留位置!!! sprintf(hed,"%08X&…

Java 基礎--數組(Array):存儲數據的“排排坐”

作者:IvanCodes 發布時間:2025年5月1日🤓 專欄:Java教程 大家好!👋 咱們在編程時,經常需要處理一批相同類型的數據,比如班級里所有同學的成績 💯、一周每天的最高氣溫 …

CSS常用屬性_(進階)

目錄 1.尺寸單位與顏色 (1)尺寸 (2)顏色 常用2種 (3)顏色屬性值(透明度) 例如: 2.字體屬性font 例如: **順序 3.文本屬性 ?編輯例如: …

【RabbitMQ】保證消息不丟失

要確保 RabbitMQ 在消費者(Python 服務)重啟或掛掉時消息不丟失,需結合 消息持久化、確認機制(ACK) 和 死信隊列(DLX) 實現高可靠性: 1. 消息持久化(Durability&#xff…

Python基本語法(控制語句)

#控制語句 Python語言的控制語句和其他編程語言類似&#xff0c;常用的有if…else、while、for語句。 案例2一7控制語句 第1組代碼&#xff0c;說明if-else語句&#xff1a; #1 print(\n1,if) x,y,z10,20,5 if x>y:print(x>y) else:print(x<y)輸出結果: 1,if x<…

并發設計模式實戰系列(10):Balking(猶豫模式)

&#x1f31f; 大家好&#xff0c;我是摘星&#xff01; &#x1f31f; 今天為大家帶來的是并發設計模式實戰系列&#xff0c;第10章Balking&#xff08;猶豫模式&#xff09;&#xff0c;廢話不多說直接開始~ 目錄 一、核心原理深度拆解 1. 狀態守護機制 2. 與狀態模式的…

【強化學習系列】貝爾曼方程

首先回顧狀態價值函數和動作價值函數的定義&#xff1a; 狀態價值函數 v π ( s ) v_\pi(s) vπ?(s)是從狀態 s s s出發&#xff0c;直至一幕結束后獲得的回報的期望值 動作價值函數 q π ( s , a ) q_\pi(s,a) qπ?(s,a)是從狀態 s s s出發&#xff0c;采取動作 a a a后&…

donet使用指定版本sdk

ps:來自微軟官方方案,實測可行,就是在項目任意目錄下在新建 global.json,并配置sdk版本 SDK 使用最新安裝的版本 SDK 命令包括 dotnet new 和 dotnet run。 .NET CLI 必須為每個 dotnet 命令選擇一個 SDK 版本。 即使在以下情況下&#xff0c;它也會默認使用計算機上安裝的最新…

x-cmd install | Orbiton:極簡至上的終端文本編輯器與輕量級 IDE

目錄 核心特點安裝適用場景優勢 厭倦了臃腫復雜的 IDE&#xff1f;渴望一個輕巧、快速、專注的編碼環境&#xff1f;Orbiton&#xff0c;一款極簡主義的終端文本編輯器與輕量級 IDE&#xff0c;將帶給你前所未有的編碼體驗。 核心特點 極簡主義&#xff0c;專注編碼&#xff1…

大腦、機器人與貝葉斯信念及AI推理

在機器不再局限于重復性任務的世界里&#xff0c;機器人技術已經大膽地邁入了感知、學習和決策的領域。這篇文章探討了智能機器人系統是如何構建的——從理解它們嘈雜的傳感器和不確定的環境&#xff0c;到使它們能夠做出明智的選擇并隨著時間的推移調整自己的行為。 AI推理 …