1. 程式人生 > >【深度學習理論】正則化方法:L1、L2、資料擴增、Dropout

【深度學習理論】正則化方法:L1、L2、資料擴增、Dropout

正則化

在訓練資料不夠多時,或者過度訓練時,常常會導致overfitting(過擬合)。隨著訓練過程的進行,模型複雜度增加,在train data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大。因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻不不好。在大多數的實際情況中,訓練集與測試集難以完全符合相同資料分佈規律。
這裡寫圖片描述
在實際資料中一般會劃分為三個資料集:train datavalidation datatest data。其中train data決定了模型的內部引數(梯度下降),根據validation data確定early stopbatch以及learning date

,而test data確定accuracy來判斷模型魯棒性。

L1-norm

在原始的代價函式後面加一個代價項,這個代價項屬於一範數,即全部權重w的絕對值的和,然後除以總數n,再乘以係數λ。代價函式是關於權重的,因此通過對權重進行求導,可以得到在權重上的梯度值,根據梯度值去更新權值,使得代價函式找到極小值點。
這裡寫圖片描述

首先對權重求偏導,其中sgn()是符號函式,表示每一個權重項的正負。
這裡寫圖片描述
權重更新過程為:
這裡寫圖片描述
對於第二項ηλnsgn(w),當權值w為負數的時候,第二項會導致式子變大,也就是趨於0;當權值w為正數的時候,第二項會導致式子變小,也就是趨於0。總之使權重的絕對值儘量小。當權值為0的時候,

w是不可導的,所以會去除第二項然後對權值進行更新,因此只需要使sgn(0)=0即可。L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇。原先的費用函式在x=0處導數不為0,那麼L2正則項後的導數也不是0。但是L1正則項的係數只要大於原先原先費用函式在0的導數,更新後就會在0處變為極小值,從而使一部分引數的最優值變為0。(簡單地說,L1可以懲罰到0)

L2-norm

L2正則化是在原始代價函式後面新增二範數,也叫做懲罰項,對權值進行控制。係數中的1/2是為了抵消在代價函式求導的時候的出現的係數2。
這裡寫圖片描述
首先對上面的代價函式分別對權值wb求偏導數:
這裡寫圖片描述
因此L2正則化項只對權值的更新會產生影響。權值更新方程為:
這裡寫圖片描述


如果設定λ=0,也就是不設定正則化項,那麼權值係數為1,是沒有影響,如果非0,那麼ηλn為正,則權重w會變小。因此叫做權重衰減(weight decay)。對於mini-batch,如下:
這裡寫圖片描述
這裡寫圖片描述
L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合。

為什麼要減小權重來避免過擬合?
更小的權值w,從某種意義上說,表示網路的複雜度更低,對資料的擬合剛剛好(這個法則也叫做奧卡姆剃刀),而在實際應用中,也驗證了這一點,L2正則化的效果往往好於未經正則化的效果。過擬合的時候,擬合函式的係數往往非常大,如下圖所示,過擬合,就是擬合函式需要顧忌每一個點,最終形成的擬合函式波動很大。在某些很小的區間裡,函式值的變化很劇烈。這就意味著函式在某些小區間裡的導數值(絕對值)非常大,由於自變數值可大可小,所以只有係數足夠大,才能保證導數值很大。
這裡寫圖片描述

Dropout

Dropout是通過修改神經網路本身來實現的,它是在訓練網路時用的一種技巧。初始化網路結構如下:
這裡寫圖片描述
然後在隱藏層進行隨機遺忘,如下圖:
這裡寫圖片描述
運用了dropout的訓練過程,相當於訓練了很多個只有半數隱層單元的神經網路(後面簡稱為“半數網路”),每一個這樣的半數網路,都可以給出一個分類結果,這些結果有的是正確的,有的是錯誤的。隨著訓練的進行,大部分半數網路都可以給出正確的分類結果,那麼少數的錯誤分類結果就不會對最終結果造成大的影響。

資料擴增方案

1.影象旋轉對稱變換
2.隨機新增噪聲
3.做彈性畸變
4.GAN生成

相關推薦

深度學習理論方法L1L2資料擴增Dropout

正則化 在訓練資料不夠多時,或者過度訓練時,常常會導致overfitting(過擬合)。隨著訓練過程的進行,模型複雜度增加,在train data上的error漸漸減小,但是在驗證集上的err

機器學習 - 方法L1L2 regularization資料擴增dropout

正則化方法:防止過擬合,提高泛化能力   常用的正則化方法有:L1正則化;L2正則化;資料集擴增;Droupout方法   (1) L1正則化 (2) L2正則化 (3) Droupout 【參考】https://blog.cs

方法L1L2 regularization資料擴增dropout

正則化方法:防止過擬合,提高泛化能力 在訓練資料不夠多時,或者overtraining時,經常會導致overfitting(過擬合)。其直觀的表現例如以下圖所看到的。隨著訓練過程的進行,模型複雜度新增,在training data上的error漸漸減小。可是在驗證集上的error卻反而漸漸增

Ian Goodfellow課件深度學習中的

本課件主要內容包括: 正則化定義 權值退化與約束優化 範數懲罰 資料集擴充 多工學習 學習曲線 稀疏表達 Dropout 切線傳播 完整課件下載地址: http:/

機器學習方法

正則化方法:L1和L2 regularization、資料集擴增、dropout 正則化方法:防止過擬合,提高泛化能力,減少部分特徵的權重,進而忽略部分無關緊要的特徵。因為考慮全部特徵會將噪聲加入進去,也就導致過擬合。 在訓練資料不夠多時,或者overtraining時,常常會導致overf

學習筆記

正如我們之前在《深入淺出的資料分析》中的筆記提到過的一樣,一個迴歸模型兼具 解釋功能和預測功能。 解釋功能就是對當前的資料進行擬合,而預測功能則是對未出現的資料進行預測。 在一個神經網路模型中我們同樣也可以設定我們的側重點: 如果讓模型具有更強的解釋功能,我們就需要mi

資深程序員帶你玩轉深度學習中的技術(附Python代碼)!

c51 進行 ros batch num 簡單的 oat 深度學習 repr 目錄 1. 什麽是正則化? 2. 正則化如何減少過擬合? 3. 深度學習中的各種正則化技術: L2和L1正則化 Dropout 數據增強(Data augmentation) 提前停止(Ear

JS學習筆記表示式

1,符號標記組一 ^:位於字串開頭,表示非 $:位於字串結束,正則分組(),$1 var myString1 = "2012,2013,2014"; var theRegExp = /(\d{4})/g; //()分組標記$1 var myStri

AI聖經-深度學習-讀書筆記(七)-深度學習中的

深度學習中的正則化 0 簡介 機器學習中的一個核心問題是設計不僅在訓練資料上表現好,而且能在新輸入上泛化好的演算法。採用顯式減少測試誤差(可能會增加訓練誤差)的策略稱為正則化。 在深度學習的背景下,大多數正則化策略都會對估計進行正則化(以偏差的增加換取方差

Linux學習表示式

環境  虛擬機器:VMware 10   Linux版本:CentOS-6.5-x86_64   客戶端:Xshell4  FTP:Xftp4 一、grep:顯示匹配行v:反顯示e:使用擴充套件正則表示式E:不使用正則表示式 匹配操作符 \ 轉義字元 . 匹配任意單個字元 [1249a],[^12],[a

深度學習理論一文看懂卷積神經網路

本文主要介紹了神經網路中的卷積神經網路,適合初學者閱讀。概述深度學習和人工智慧是 2016 年的熱詞;2017 年,這兩個詞愈發火熱,但也更加容易混淆。我們將深入深度學習的核心,也就是神經網路。大多數神經網路的變體是難以理解的,並且它們的底層結構元件使得它們在理論上和圖形上是

爬蟲學習1表示式加Requests爬取貓眼電影排行

Requests獲取網頁資料 運用Requests獲得網頁 import requests ##獲取單個網頁資料 def get_one_page(url): response = requests.get(url) r

機器學習中的方法

引數範數懲罰 L1 L2 regularization 正則化一般具有如下形式:(結構風險最小化) 其中,第一項是經驗風險,第二項是正則化項,lambda>=0為調整兩者之間關係的係數。 正則化項可以取不同的形式,如引數向量w的L2範數:

機器學習的線性迴歸 —— 嶺迴歸與Lasso迴歸

注:正則化是用來防止過擬合的方法。在最開始學習機器學習的課程時,只是覺得這個方法就像某種魔法一樣非常神奇的改變了模型的引數。但是一直也無法對其基本原理有一個透徹、直觀的理解。直到最近再次接觸到這個概念,經過一番苦思冥想後終於有了我自己的理解。 0. 正則化(

相關鏈接

blog class bsp src rop 折疊 img detail link 正則化,歸一化的概念 基於Matlab介紹正則化方法 正則化方法:L1和L2 regularization、數據集擴增、dropout 基於Matlab介紹機器學習中的正則化,理解

深度學習基礎--與norm--L1範數與L2範數的聯絡

L1範數與L2範數的聯絡   假設需要求解的目標函式為:E(x) = f(x) + r(x)   其中f(x)為損失函式,用來評價模型訓練損失,必須是任意的可微凸函式,r(x)為規範化約束因子,用來對模型進行限制。   根據模型引數的概率分佈不同,r(x)一般有:   1)L1正規化

深度學習系列CNN模型的視覺

模型視覺化   因為我沒有搜到用paddlepaddle在imagenet 1000分類的資料集上預訓練好的googLeNet inception v3,所以用了keras做實驗,以下圖作為輸入: 輸入圖片  北汽紳寶D50:

深度學習筆記關於卷積層全連線層簡單的比較

卷積層 池化層 全連線層 功能 提取特徵 壓縮特徵圖,提取主要特徵 將學到的“分散式特徵表示”對映到樣本標記空間 操作 可看這個的動態圖,可惜是二維的。對於三維資料比如RGB影象(3通道),卷積核的深度必須

程式語言學習——python表示式小作業

參考資料 https://www.cnblogs.com/tina-python/p/5508402.html 原資料 目標 將如上混雜在一列的資料按特徵分隔開。 程式碼 import xlrd import xlwt xlsfile=r'C:\Users\Ad

吳恩達深度學習筆記(34)-你不知道的其他方法

其他正則化方法(Other regularization methods) 除了L2正則化和隨機失活(dropout)正則化,還有幾種方法可以減少神經網路中的過擬合: 一.資料擴增 假設你正在擬合貓咪圖片分類器,如果你想通過擴增訓練資料來解決過擬合,但擴增資料代價高,而且有