深度學習-正則化

摘要

本文系統闡述了深度學習中的正則化技術體系,圍繞防止過擬合這一核心目標展開。首先通過偏差-方差框架解析過擬合/欠擬合本質,并使用對比表明確區分特征;其次深入分析了L1/L2正則化的數學原理(2mλ?∥w∥2與mλ?∥w∥1?),揭示其通過權重收縮(W(1?mαλ?))的機制;接著詳解了Dropout技術實現方案(隨機置零+縮放補償)及其在計算機視覺中的應用價值;最后補充了早停法和數據增強策略。全文貫通理論公式與可視化示例,形成完備的正則化知識體系。

在這里插入圖片描述

文章目錄

  • 摘要
  • 為什么需要正則化
  • 過擬合與欠擬合對比表
  • 正則化---為了防止過擬合
  • 總結

為什么需要正則化

這里引入一些概念

  1. 偏差:預測與實際值差的大,訓練集,測試集都不準。
  2. 方差:受數據的擾動大,訓練集數據差別大(方差大),導致相同模型,不同訓練集,預測的結果不同。(訓練集準,測試集不準)
  3. 過擬合:訓練參數過多,而訓練樣本過少導致學習了無用特征,或過度看重某個特征,使預測集準確率低。
  4. 欠擬合:訓練集,測試集準確率都低。(偏差大)

過擬合與欠擬合對比表

特性過擬合 (Overfitting)欠擬合 (Underfitting)
定義模型在訓練集上表現很好,但在測試集上表現差模型在訓練集和測試集上表現都差
訓練誤差
測試誤差
模型復雜度通常過于復雜(模型參數過多)通常過于簡單(模型參數過少)
學習能力學習能力過強,甚至記住了噪聲學習能力不足,無法捕捉數據中的基本模式
數據量通常發生在數據量較少時可能發生在數據量不足或模型太簡單時
偏差-方差分解高方差高偏差
解決方案1. 增加數據量
2. 正則化(L1/L2)
3. 減少模型復雜度
4. Dropout
5. 早停(Early Stopping)
1. 增加模型復雜度
2. 增加特征數量
3. 減少正則化
4. 延長訓練時間
5. 使用更復雜的模型
典型表現圖訓練誤差曲線遠低于測試誤差曲線訓練誤差和測試誤差都較高且接近
決策邊界非常復雜,可能包含許多不必要的細節過于簡單,無法捕捉數據中的結構

正則化—為了防止過擬合

邏輯回歸的L1與L2正則化

邏輯回歸的參數W數量根據特征的數量而定(一個神經元*特征數),那么正則化如下

L2正則化 w2w^2w2

邏輯回歸的損失函數中增加L2正則化

J(w,b)=1m∑i=1mL(y^(i),y(i))+λ2m∥w∥2J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m}\|w\|^{2}J(w,b)=m1?i=1m?L(y^?(i),y(i))+2mλ?w2

其中的L2范數可以理解:λ2m∥w∥22=λ2m∑j=1nxjwj2=λ2mwTw\frac{\lambda}{2 m}\|w\|_{2}^{2}=\frac{\lambda}{2 m} \sum_{j=1}^{n} \frac{x_{j}}{w_{j}^{2}} =\frac{\lambda}{2 m} w^{T} w2mλ?w22?=2mλ?j=1n?wj2?xj??=2mλ?wTw

解釋:所有w參數的平方和的結果

  • 1m∑i=1mL(y^(i),y(i))\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)m1?i=1m?L(y^?(i),y(i))是當前批次,所有樣本損失率的平均值
  • L2范數=λ2m∥w∥2\frac{\lambda}{2 m}\|w\|^{2}2mλ?w2=λ2mwTw\frac{\lambda}{2 m} w^{T} w2mλ?wTwwww是權重矩陣(由神經元與特征數目決定)
  • λ\lambdaλ是超參數

L1正則化 www

邏輯回歸的損失函數中增加L1正則化

J(w,b)=1m∑i=1mL(y^(i),y(i))+λ2m∥w∥1J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m}\|w\|_{1}J(w,b)=m1?i=1m?L(y^?(i),y(i))+2mλ?w1?

其中L2范數可以理解為:λ2m∥w∥1=λ2m∑j=1nxj∣wj∣\frac{\lambda}{2 m}\|w\|_{1}=\frac{\lambda}{2 m} \sum_{j=1}^{n} \frac{x_{j}}{\left|w_{j}\right|}2mλ?w1?=2mλ?j=1n?wj?xj??

梯度下降

?接下來我們通過方向傳播來理解這個其中的L2,對于損失函數我們要反向傳播求參數梯度:

(1) dW=?L?w+λmWdW=\frac{\partial L}{\partial w}+\frac{\lambda}{m} WdW=?w?L?+mλ?W

前面的默認損失函數的梯度計算結果默認為backprop,那么更新的參數就為

(2) W:=W?αdWW:=W-\alpha dWW:=W?αdW 那么我們將第一個公式帶入第二個得到

W:=W?α(?L?w+λmW)W:=W-\alpha(\frac{\partial L}{\partial w}+\frac{\lambda}{m} W) W:=W?α(?w?L?+mλ?W)

=W?αλmW?α??L?w=W-\frac{\alpha \lambda}{m} W-\alpha * \frac{\partial L}{\partial w} =W?mαλ?W?α??w?L?

所以每次更新的時候都會讓W(1?αλm)W(1-\frac{\alpha \lambda}{m})W(1?mαλ?),使權重www隨迭代次數逐漸減小,所以我們通常稱L2范數為權重衰減。

  • 正則化如何防止過擬合的
    在這里插入圖片描述
    紅線:合適的擬合。
    綠線:過擬合
    藍線:欠擬合

如上圖所示,我們發現,當模型發生過擬合時,模型相對于其他模型,曲線函數更加的彎曲,這說明在局部彎曲的部分,切線斜率特別大,(即模型導數的絕對值特別大,這是由于www從一個較大的值變化到另一個大的值,是www的系數過大導致的),對于整個模型來說,我們可以理解為所有的參數的絕對值之和特別大。因此,如果我們有辦法使得這些參數的值,比較稠密均勻地集中在零附近,就能有效地抑制過擬合。于是,便引入了范數。從而使www的系數減小,從而減小擬合的波動,防止過擬合的發生

參考:正則化如何防止過擬合的

注:其中,入為正則化因子,是超參數。由于L1正則化最后得到 w向量中將存在大量的 0,使模型變得稀疏化,因此 L2 正則化更加常用。

dropout正則化

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

  • dropout為什么起效

加入了dropout后,輸入的特征都存在被隨機清除的可能,所以該神經元不會再特別依賴于任何一個輸入特征,也就是不會給任何一個輸入特征設置太大的權重。通過傳播過程,dropout將產生和L2正則化相同的收縮權重的效果。(不會給某個特征設置太大的權重)

·對于不同的層,設置的keep_prob大小也不一致,神經元較少的層,會設keep_prob為1.0,而神經元多的層則會設置比較小的keep_prob通常被使用在計算機視覺領域,圖像擁有更多的特征,場景容易過擬合,效果被實驗人員證明是很不錯的。

早停止法

在這里插入圖片描述

數據增強

增加數據的多樣性,使其能夠盡可能覆蓋所有情況。
在這里插入圖片描述

在這里插入圖片描述
如果所有A類都是頭朝左,B類都是頭朝右,就會可能會把車頭朝向視為類別的重要依據。
在這里插入圖片描述

  • 數據增強的效果

在這里插入圖片描述

總結

過擬合風險
正則化策略
L1/L2權重懲罰
Dropout隨機失活
數據增強擴展
早停法干預
抑制大權重
破壞特征依賴
增加多樣性
控制訓練時機
提升泛化能力

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

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

相關文章

STM32之風扇模塊(開關控制+PWM調速)

目錄 一、系統概述 二、5V直流風扇模塊簡介 2.1 基本概述 2.2 關鍵特性 2.3 接口定義 2.4 典型驅動電路 2.4.1 繼電器驅動方案(開關控制) 2.4.2 三極管驅動方案(調速控制) 2.5 常見問題解決 三、繼電器模塊控制風…

AGX Xavier 搭建360環視教程【二、環境配置】

AGX Xavier 場景下的 【OpenCV FFmpeg CUDA GStreamer】 重裝 & 編譯的2025年穩定方案? 1?? 先卸載老版本AGX 自帶很多預裝包,原則:卸載干凈,避免舊庫和新編譯沖突。🔹 卸載 OpenCVdpkg -l | grep opencv sudo apt-get …

Cesium實戰:交互式多邊形繪制與編輯功能完全指南(最終修復版)

📋 文章目錄 引言功能概述環境準備核心實現步驟 地圖初始化多邊形繪制頂點編輯功能顏色與透明度自定義面積計算與顯示 常見問題解決方案 多邊形顏色顯示異常面積標簽不可見控制臺alpha類型錯誤地圖交互無法恢復 完整代碼總結與擴展 引言 Cesium作為一款強大的3D地…

SQL判斷先判斷條件1是否符合,條件1不符合再判斷條件2

偽代碼假設存在條件1和條件2SELECT * FROM table1 WHERE 條件1 AND 條件2方法1:先判斷條件1是否符合,條件1不符合再判斷條件2是否滿足:SELECT * FROM table1 WHERE (條件1) OR (NOT 條件1 AND 條件2);方法 2: 使用 IF 或數據庫特有函數(…

游戲的程序員會不會偷偷改自己賬號的數據?

看到這個問題,我忍不住笑了。 作為一個在程序員這條路上摸爬滾打了快10年的老司機,雖然我主要專精嵌入式開發,但我也接觸過不少游戲開發的朋友,對游戲行業的內部運作有一定了解。這個問題可以說是每個游戲玩家都曾經想過的&#x…

uniapp小程序tabbar跳轉攔截與彈窗控制

一、第一步1、App.vue中定義globalData用于全局存儲狀態globalData:{needShowReleaseConfirm: false, // 標記是否需要顯示發布頁面確認彈窗allowReleaseJump: false ,// 標記是否允許跳轉到發布頁面},2、在App.vue中的onLaunch寫入監聽事件onLaunch: function() {// 添加switc…

華為網路設備學習-26(BGP協議 一)

一、AS(自治系統)AS(自治系統)的大小通常指其分配的唯一編號,范圍分為兩種:?2字節AS號?:取值范圍1至65535(其中64512-65535為私有AS號) ??4字節AS號?:取…

大模型開發框架LangChain之函數調用

1.前言 之前一直使用 dify開發 agent,雖然功能很全面、效果也穩定,但是也存在流程固化、不靈活,以及 dify本身太重(內部包含10個容器)等問題。 故最近研究了大名頂頂的 langchain,先從函數調用開始&#xf…

pycharm中自動補全方法返回變量

使用IDEA開發java中,可以使用altenter 快捷鍵快速補全方法放回的變量使用pycharm也想實現此效果,如下圖操作方法:pycharm中默認的補全方法返回變量的快捷鍵是:CtrlAltv 可以直接使用默認快捷鍵,也可以在settings->k…

Set 二分 -> 劍指算法競賽

C【STL】集合set 標準庫提供 set 關聯容器分為: 按關鍵字有序保存元素:set(關鍵字即值,即只保存關鍵字的容器)、multiset(關鍵字可重復出現的 set); 無序集合:unordered…

php的原生類

前言:累麻了! 反射類 反射類 ReflectionClass:ReflectionClass 類報告了一個類的有關信息。正如其名用于映射反射一個類的類! new ReflectionClass(MyClass) 會創建一個 ReflectionClass 實例,代表 MyClass 這個類。 …

PC網站和uniapp安卓APP、H5接入支付寶支付

首先我們需要完成支付寶賬號注冊,支持的賬號類型:支付寶企業賬號、支付寶個人賬號、個體工商戶。 到支付寶商家平臺 產品中心開通APP支付、手機網站支付、電腦網站支付的產品權限。 一、電腦PC網站接入 電腦PC網站支付是指商戶在電腦網頁展示商品或服務&…

MCU芯片內部的ECC安全機制

MCU(微控制器單元)芯片內部的 ECC(錯誤檢測與糾正)安全機制 是一種至關重要的硬件級可靠性技術,主要用于保護關鍵存儲單元(如 SRAM、Flash、Cache)中的數據完整性,防止因外部干擾或硬…

【自動駕駛】經典LSS算法解析——深度估計

LSS-Lift.Splat,Shoot 論文題目:Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 代碼:https://github.com/nv-tlabs/lift-splat-shoot 概括:先做深度估計和特征融合,然后投…

《【第八篇-圖片總結篇】Python圖片處理自動化:終極工廠!從裁剪壓縮到智能加水印,打造你的視覺內容生產流水線!》

在數字時代,圖片無處不在。然而,高質量的圖片背后,往往隱藏著繁瑣的后期處理:圖片文件太大導致加載慢;尺寸不符需要裁剪;版權保護要加水印; 為了兼容性還得批量轉換格式……這些重復、機械的工…

frame 與新窗口切換操作【selenium 】

🧭 一、切換到 iframe 內部進行操作在瀏覽器自動化測試中,iframe 是一個特別的存在。它相當于在當前頁面中嵌入了另一個獨立的 HTML 頁面。當我們試圖直接訪問 iframe 中的元素時,往往會發現定位不到,比如:elements w…

MYSQL C_API使用全解

文章目錄C_API(簡單的)安裝這個庫使用流程初始化連接mysql_init建立連接mysql_real_connect執行SQL語句mysql_query處理結果mysql_store_resultmsyql_use_resultmysql_num_rowsmsyql_free_resultmysql_num_fieldsmysql_fetch_row多線程安全關閉連接mysql…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第二課——RGB轉YCbCr的FPGA硬件編程詳解

(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程文件請關注…

RK3566/RK3568 Android11 修改selinux模式

概述RK3566/RK3568 Android11 SDK默認的selinux是Enforcing模式(強制模式)。Enforcing:強制模式:SELinux在運行中,且已經開始限制domain/type之間的驗證關系 Permisssive:寬容模式:SELinux在運行中,如果驗證…

iOS Widget 開發-3:Widget 的種類與尺寸(主屏、鎖屏、靈動島)

iOS 支持多種類型的 Widget,分布在主屏幕、鎖屏、靈動島、待機模式、控制中心等多個系統位置。每種 Widget 都有各自的尺寸、交互能力與限制。 本篇將系統梳理 iOS 當前支持的 Widget 類型與尺寸規格。主屏 Widget(Home Screen Widgets) 主屏…