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

2021-01-10 極客Array

其他正則化方法(Other regularization methods)

除了L2正則化和隨機失活(dropout)正則化,還有幾種方法可以減少神經網絡中的過擬合:

一.數據擴增

假設你正在擬合貓咪圖片分類器,如果你想通過擴增訓練數據來解決過擬合,但擴增數據代價高,而且有時候我們無法擴增數據,但我們可以通過添加這類圖片來增加訓練集。

例如,水平翻轉圖片,並把它添加到訓練集。所以現在訓練集中有原圖,還有翻轉後的這張圖片,所以通過水平翻轉圖片,訓練集則可以增大一倍,因為訓練集有冗餘,這雖然不如我們額外收集一組新圖片那麼好,但這樣做節省了獲取更多貓咪圖片的花費。

除了水平翻轉圖片,你也可以隨意裁剪圖片,這張圖是把原圖旋轉並隨意放大後裁剪的,仍能辨別出圖片中的貓咪。

通過隨意翻轉和裁剪圖片,我們可以增大數據集,額外生成假訓練數據。和全新的,獨立的貓咪圖片數據相比,這些額外的假的數據無法包含像全新數據那麼多的信息,但我們這麼做基本沒有花費,代價幾乎為零,除了一些對抗性代價。

以這種方式擴增算法數據,進而正則化數據集,減少過擬合比較廉價。

像這樣人工合成數據的話,我們要通過算法驗證,圖片中的貓經過水平翻轉之後依然是貓。大家注意,我並沒有垂直翻轉,因為我們不想上下顛倒圖片,也可以隨機選取放大後的部分圖片,貓可能還在上面。

對於光學字符識別,我們還可以通過添加數字,隨意旋轉或扭曲數字來擴增數據,把這些數字添加到訓練集,它們仍然是數字。為了方便說明,我對字符做了強變形處理,所以數字4看起來是波形的,其實不用對數字4做這麼誇張的扭曲,只要輕微的變形就好,我做成這樣是為了讓大家看的更清楚。實際操作的時候,我們通常對字符做更輕微的變形處理。因為這幾個4看起來有點扭曲。所以,數據擴增可作為正則化方法使用,實際功能上也與正則化相似。

二.early stopping

還有另外一種常用的方法叫作early stopping,運行梯度下降時,我們可以繪製訓練誤差,或只繪製代價函數J的優化過程,在訓練集上用0-1記錄分類誤差次數。呈單調下降趨勢,如圖。

因為在訓練過程中,我們希望訓練誤差,代價函數J都在下降,通過early stopping,我們不但可以繪製上面這些內容,還可以繪製驗證集誤差,它可以是驗證集上的分類誤差,或驗證集上的代價函數,邏輯損失和對數損失等,你會發現,驗證集誤差通常會先呈下降趨勢,然後在某個節點處開始上升,early stopping的作用是,你會說,神經網絡已經在這個迭代過程中表現得很好了,我們在此停止訓練吧,得到驗證集誤差,它是怎麼發揮作用的?

當你還未在神經網絡上運行太多迭代過程的時候,參數w接近0,因為隨機初始化w值時,它的值可能都是較小的隨機值,所以在你長期訓練神經網絡之前w依然很小,在迭代過程和訓練過程中w的值會變得越來越大,比如在這兒,神經網絡中參數w的值已經非常大了,所以early stopping要做就是在中間點停止迭代過程,我們得到一個w值中等大小的弗羅貝尼烏斯範數,與L2正則化相似,選擇參數w範數較小的神經網絡,但願你的神經網絡過度擬合不嚴重。

術語early stopping代表提早停止訓練神經網絡,訓練神經網絡時,我有時會用到early stopping,但是它也有一個缺點,我們來了解一下。

我認為機器學習過程包括幾個步驟,

其中一步是選擇一個算法來優化代價函數J,我們有很多種工具來解決這個問題,如梯度下降,後面我會介紹其它算法,例如Momentum,RMSprop和Adam等等,但

是優化代價函數J之後,我也不想發生過擬合,也有一些工具可以解決該問題,比如正則化,擴增數據等等。

在機器學習中,超級參數激增,選出可行的算法也變得越來越複雜。

發現,如果我們用一組工具優化代價函數J,機器學習就會變得更簡單,在重點優化代價函數J時,你只需要留意w和b,J(w,b)的值越小越好,你只需要想辦法減小這個值,其它的不用關注。

然後,預防過擬合還有其他任務,換句話說就是減少方差,這一步我們用另外一套工具來實現,這個原理有時被稱為「正交化」。思路就是在一個時間做一個任務,後面課上我會具體介紹正交化,如果你還不了解這個概念,不用擔心。

但對我來說early stopping的主要缺點就是你不能獨立地處理這兩個問題,因為提早停止梯度下降,也就是停止了優化代價函數J,因為現在你不再嘗試降低代價函數J,所以代價函數J的值可能不夠小,同時你又希望不出現過擬合,你沒有採取不同的方式來解決這兩個問題,而是用一種方法同時解決兩個問題,這樣做的結果是我要考慮的東西變得更複雜。

如果不用early stopping,另一種方法就是L2正則化,訓練神經網絡的時間就可能很長。我發現,這導致超級參數搜索空間更容易分解,也更容易搜索,但是缺點在於,你必須嘗試很多正則化參數λ的值,這也導致搜索大量λ值的計算代價太高。

Early stopping的優點是,只運行一次梯度下降,你可以找出w的較小值,中間值和較大值,而無需嘗試L2正則化超級參數λ的很多值。

如果你還不能完全理解這個概念,沒關係,下節課我們會詳細講解正交化,這樣會更好理解。

雖然L2正則化有缺點,可還是有很多人願意用它。吳恩達老師個人更傾向於使用L2正則化,嘗試許多不同的λ值,假設你可以負擔大量計算的代價。而使用early stopping也能得到相似結果,還不用嘗試這麼多λ值。

這節課我們講了如何使用數據擴增,以及如何使用early stopping降低神經網絡中的方差或預防過擬合。

相關焦點

  • 高效「煉丹」必備技能:一文實現深度學習數學原理入門,還有吳恩達...
    尤其是深度學習算法開發人員,追求模型結構優化和提高編程效率是永遠的目標。但是,如果只做代碼「搬運工」,不了解神經網絡背後的數學原理,很難對項目有深刻全面的理解,debug反而會更難、耗時更長。就以深度學習中常用的神經網絡來說,典型模型包括多層感知機(DLP)、卷積神經網絡(CNN)、循環神經網絡(RNN)等等,不同的項目,對神經網絡的調參需求也不相同。
  • 在深度學習中對正則化的直觀認識
    這種現象在神經網絡學習中尤為普遍——學習能力越強,記憶的可能性就越大,這取決於我們這些實踐者如何引導深度學習模型來吸收我們的問題,而不是我們的數據。你們中的許多人在過去都曾遇到過這些方法,並且可能已經對不同的正則化方法如何影響結果形成了自己的直觀認識。為你們中那些不知道的人(甚至為那些知道的人!)本文為正則化神經網絡參數的形成提供了直觀的指導。
  • 302頁吳恩達Deeplearning.ai課程筆記,詳記基礎知識與作業代碼
    近日,來自重慶大學的 Wan Zhen 製作了一份深度學習專項課程筆記,該筆記從神經網絡與深度學習基礎、提升深度神經網絡性能和卷積神經網絡三門課程出發詳細解釋了關鍵概念與作業代碼。本文概括性地介紹了這三課的主要內容,並選擇每個課程主題比較有意思的知識點進行介紹。
  • 吳恩達授課,斯坦福CS230深度學習課程資源開放
    課程簡介:深度學習是 AI 領域中最受歡迎的技能之一。這門課程將幫助你學好深度學習。你將學到深度學習的基礎,理解如何構建神經網絡,並學習如何帶領成功的機器學習項目。你將學到卷積神經網絡(CNN)、循環神經網絡(RNN)、長短期記憶網絡(LSTM)、Adam 優化器、Dropout 方法、BatchNorm 方法、Xavier/He 初始化方法等。
  • 吳恩達deeplearning.ai五項課程完整筆記了解一下?
    項目地址:https://github.com/mbadry1/DeepLearning.ai-Summary上周吳恩達在推特上展示了一份由 TessFerrandez 完成的深度學習專項課程信息圖,這套信息圖優美地記錄了深度學習課程的知識與亮點。這一份信息圖的詳細介紹請查看:這是一份優美的信息圖,吳恩達點讚的 deeplearning.ai 課程總結 。
  • 一文概覽深度學習中的五大正則化方法和七大優化策略
    選自arXiv 機器之心編譯 深度學習中的正則化與優化策略一直是非常重要的部分,它們很大程度上決定了模型的泛化與收斂等性能。本文主要以深度卷積網絡為例,探討了深度學習中的五項正則化與七項優化策略,並重點解釋了當前最為流行的 Adam 優化算法。
  • 吳恩達的課上完了?如何科學開啟你的深度學習論文閱讀生涯
    大數據文摘出品編譯:睡不著的iris、Zhifu、Hope、CoolBoy當你閱讀了深度學習相關的書籍或者上過精彩的在線課程後,你將如何深入學習?如何才能夠「自力更生」,獨立地去了解相關領域中最新的研究進展?
  • 深度學習專項課程精煉圖筆記!必備收藏|原力計劃
    作者 | DL&CV_study9責編 | Elle出品 | CSDN 博客本文為人工智慧學習筆記記錄。偏差與方差那麼部署你的機器學習模型需要注意些什麼?下圖展示了構建 ML 應用所需要的數據集分割、偏差與方差等問題。如上所示,經典機器學習和深度學習模型所需要的樣本數有非常大的差別,深度學習的樣本數是經典 ML 的成千上萬倍。因此訓練集、開發集和測試集的分配也有很大的區別,當然我們假設這些不同的數據集都服從同分布。
  • 吳恩達 NIPS 2016:利用深度學習開發人工智慧應用的基本要點(含...
    今日,在第 30 屆神經信息處理系統大會(NIPS 2016)中,百度首席科學家吳恩達教授發表演講:《利用深度學習開發人工智慧應用的基本要點(Nuts and Bolts of Building Applications using Deep Learning)》。
  • 吳恩達NIPS2016:利用深度學習開發人工智慧應用的基本要點含唯一的...
    今日,在第 30 屆神經信息處理系統大會(NIPS 2016)中,百度首席科學家吳恩達教授發表演講:《利用深度學習開發人工智慧應用的基本要點(Nuts and Bolts of Building Applications using Deep Learning)》。
  • 吳恩達深度學習筆記(13)-多樣本梯度下降和向量化處理多批次數據
    但如果你有更多特徵,你開始編寫你的因此dw_1,dw_2,你有相似的計算從dw_3一直下去到dw_n。所以看來你需要一個for循環遍歷所有n個特徵當你應用深度學習算法,你會發現在代碼中顯式地使用for循環使你的算法很低效,同時在深度學習領域會有越來越大的數據集。所以能夠應用你的算法且沒有顯式的for循環會是重要的,並且會幫助你適用於更大的數據集。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 吳恩達創業關你什麼事?
    我們不知道百度和Deeplearning.ai 之間的關係——以及它與吳恩達離去之間的關係。當然,也可能純粹只是個錯誤。 吳恩達今年3 月下旬離開公司,承諾將繼續把AI 的好處帶給大家。百度以自然語言處理的專業技術聞名,最近一直將資源投入到自動駕駛汽車和其他特定的深度學習應用中。
  • 有人幫你選出了top 5優質課
    如果可以堅持上完整個課程,你將在大約四個月內對機器學習有一個較好的基本了解。之後,你可以再學習感興趣的高階或專項課程,如深度學習、機器學習工程等。這門課程對於新手來說無疑是最好的課程。參考文章:資源 | 吳恩達《機器學習》筆記,哥大研究生獻上二、吳恩達深度學習專項課程該課程同樣是吳恩達開設的。
  • 機器學習之正則化
    小編每天為你遴選好算法、好文章,整理知識點。三分鐘學習開始啦~----正則化是一種為了減小測試誤差的行為。當利用複雜的模型擬合數據,過擬合現象的出現導致模型的泛化能力下降時,使用正則化的適用可以降低模型的複雜度。這次為大家總結了正則化的相關知識點,幫助更好的理解正則化這一概念。
  • 筆記(乾貨):dropout原理總結
    dropout改變之前稠密網絡中,權重統一學習,參數統一更新的模式,提出在每次訓練迭代中,讓網絡中的部分參數得到學習,即部分參數得到更新,部分參數保持不更新。在每次迭代中學習更新網絡中的部分參數這種方法,看起來簡單,但是卻解決了,困擾了深度學習方向,一直只能用淺層網絡,無法使用深度網絡的尷尬局面,(因為隨著網絡的層數加大,過擬合問題一定會出現)做了這麼多鋪墊,還沒有提到正題
  • 吳恩達深度學習筆記(12)-計算圖計算梯度下降
    但是,以這個例子作為開始來講解,可以使你更好的理解背後的思想。從而在討論神經網絡時,你可以更深刻而全面地理解神經網絡。接下來讓我們開始學習邏輯回歸的梯度下降算法。假設樣本只有兩個特徵x_1和x_2,為了計算z,我們需要輸入參數w_1、w_2 和b,除此之外還有特徵值x_1和x_2。
  • 吳恩達被diss了
    質疑並不少,但是所有人加起來,聲量也不夠大。生物學家、醫生、以及吳恩達的半個機器學習同行們對這條Twitter的不滿,很大程度上也是因為吳恩達老師的學術地位和影響力。在Lior看來,吳恩達作為一名聞名學界內外、有30萬Twitter粉絲的大V,如此聳人聽聞,對同行、對公眾、對整個科學家群體來說,都不是什麼好事。對同行來說,傷害顯而易見。
  • 吳恩達演講直指AI落地三大挑戰,並提出解決方案
    小數據適用的算法包括 GAN、GPT-3、自監督、遷移學習等。挑戰 2:算法的魯棒性和泛化能力大家可能已經發現,已發表論文中效果顯著的模型通常在生產中不起作用,研究中聲稱算法結果已經超過人類的方法卻不能很好地投入到生產,訓練的模型不能很好地泛化到其他數據集等。吳恩達以醫療領域舉例進行說明。然而這些問題不僅存在於醫療領域,其他領域也面臨相同的問題。
  • 深度學習和機器學習的線性代數入門
    在模型構建過程中,我們經常設計各種概念,例如維數災難、正則化、二進位、多分類、有序回歸等。神經元是深度學習的基本單位,該結構完全基於數學概念,即輸入和權重的乘積和。至於Sigmoid,ReLU等等激活函數也依賴於數學原理。