谷歌工程師講解ML和DL中的正則化技術

2020-12-05 人工智慧研究院

對減少ML和DL模型訓練所需的計算時間和工時的技術的簡單而全面的解析。

概述:

現在,隨著行業開始接受「人工智慧」作為預測公司成功的重要組成部分,機器學習和深度學習技術正在進入公司的職位清單。但是通常可以看到,公司中的實際決策者(做主的人:CxO)對這些技術可以做什麼以及如何使他們的公司受益的觀念非常誤導。根據不完全了解ML真相的人們的看法,ML經常被視為具有解決所有工業問題的潛力的技術。下圖使ML的當前狀態非常清楚。

這不是諷刺,而是對ML的相當準確的理解。提供一組先驅事件時,它是計算機預測事件的非硬編碼功能。我將嘗試使該博客儘可能地簡化,但在這裡我想包括一個事實,即ML本質上是在給定多個此類方程式的情況下預測x和y之間的函數關係F的動作。

Y=F(X)

但是很多時候,可以看到,即使在訓練模型並達到可接受的訓練精度之後,當將模型用於測試用例時,它也會嚴重失敗。

這是由於過度擬合或使函數過於逼近訓練數據的現象而發生的。這導致了模型,而不是理解如何解決問題的通用思想,而死了訓練數據。下圖很清楚。

真正的函數是一個正弦曲線(綠色),我們正在嘗試根據給定的數據對其進行預測。直到第三個數字,我們看到模型學習得很好。即使不滿足所有數據點,也幾乎是函數的完美近似。但是隨著培訓的繼續,我們看到函數本身可以適應所有數據點,並且形式與期望的完全不同。這太合身了。訓練損失為零但測試損失增加的地方

了解偏差-方差折衷和正則化的需求:

偏差是數學上函數的期望值和實際值之間的差。我們不會研究偏見的基本統計信息,但我會負責任地給您留下一個令人恐懼的方程式:

為了明確起見,簡單的線性模型的偏差較高,而複雜的多維模型的偏差較低。這是因為複雜的模型更適合擬合所有訓練數據。

方差是訓練數據和測試數據之間ML模型的預測準確性的變化。由於方差引起的誤差是一個訓練集上的預測與所有訓練集上的期望值相差的量。換句話說,根據模型,不同預測的值彼此相距多遠。隨之而來的另一個方程式是嚇跑你們,夥計們。

簡單模型的方差低,而複雜模型的方差高。

下圖可以用來清晰地建立「偏差」和「方差」的概念。圖的左端是具有高偏差的區域,因為訓練和測試誤差都很高。這是欠擬合區域或模型學習不足的區域。

模型的右端是高方差區域,訓練誤差低,而測試誤差高。這是過度擬合的區域,在該區域中,即使模型已達到很高的訓練精度,而且看起來模型接近完美,但在測試數據上的表現卻很差。這純粹是浪費計算能力和工程師的時間。

即使不是最低可能值,偏差和方差都較低的中間區域是模型的最佳可能區域。實現這種狀態的模型訓練的行為稱為「 偏差-偏差權衡」。

有多種方法可以實現偏差偏差權衡。這些方法或技術稱為正則化技術

一些常見的是:

L2正則化提前停止數據集擴充合奏方法退出批量歸一化L2正則化:

為了使事情儘可能簡單,我將L2正則化定義為「一種不讓模型將訓練誤差降至零的技巧」。如果事情就這麼簡單……

在訓練模型期間,我們會不斷更新各種變量(權重和偏差; w和b),這些變量試圖預測我們的原始功能。此更新基於「梯度下降」(我們不再討論)等「更新規則」進行。此更新規則取決於「損失函數」,後者是這些變量的函數。如果事情變得複雜,請忍受。我們的目標是最小化這種「損失函數」。這很直觀,不是嗎?在任何有利可圖的工業形勢下,您都在努力減少損失。簡單嗎?

因此,我們將訓練過程中的損失函數最小化。L2技術的特殊之處在於,我們沒有最小化訓練損失,而是最小化了另一種形式。

我們上方方程式中的第一項是「損失項」,即衡量模型擬合數據的程度的項。最後一個術語是數學人員的「權重的高斯分布可能性的對數」。這測量了模型的複雜性。對於我們來說,外行是所有要素權重(w)的平方和。負責任的,我再次在這裡留下您:

該模型的複雜性通過L2技術進行了量化。在這種情況下,變換幾乎不會影響接近零的特徵權重,但是異常值會產生巨大的影響。上述項的值越大,我們看到的偏差就越大,方差減小。從上圖可以明顯看出,在訓練結束時,偏差非常小,方差很大。因此,如果我們要增加偏差並減小方差,那麼我們實際上將到達圖的「良好模型」區域中的某個位置。所以現在,我們有了一個很好的模型!好極了!

提前停止:

到目前為止,這是最簡單的正則化技術(所有這些都是,但是您不會相信我的,會吧)。此過程涉及以最小損失值記錄變量(w&b)的值。在訓練過程中,我們記錄了w&b的值,在該值下,我們獲得了最小的驗證誤差。我們停止訓練,當我們看到驗證錯誤再次上升。這是一個非常有用的過程,但不利的是,在訓練非常深的神經網絡或非常複雜的模型期間,這會在寫入和重寫最小值時利用大量處理能力。

數據集擴充:

只有當我們有很多數據需要訓練時,才能將模型訓練到良好的預測狀態。換句話說,如果數據太少,很容易將訓練誤差驅動為零。讓我們以訓練神經網絡進行圖像分類為例。假設我們有1000張圖像來訓練模型。如果我們說培訓3000張圖像會更好嗎?在不獲取額外數據的情況下,我們可以輕鬆地「擴大」當前圖像並創建「新」圖像。這些對於我們來說實際上並不是新的,但是對於模型而言,它們卻是新的。

那麼什麼是增強?它是通過在保留原始標籤的同時引入某些差異來從現有數據中人為生成新數據的行為。這些差異取決於我們處理的數據類型。對於音頻,加快採樣速度或引入一些背景噪聲是一種增強技術。這不會更改標籤值。對於文本,我們可以用單詞的同義詞替換單詞,而不更改其傳達的信息。對於圖像,我們可以更改視角,縮放,照明和其他更改圖像但保留其標籤的技術。這是一些可愛的技巧,可以消除您閱讀此博客的煩惱並使圖像增強清晰可見。

因此,當我們現在有更多數據可用於輸入模型時,這將使其更難以記住整個事物,因此,訓練誤差不會變為零。Kinda喜歡您的歷史記錄測試嗎?

合奏方法:

集成方法是將幾種機器學習技術組合到一個預測模型中的元算法,以減少方差,偏差或改善預測。

上一段是Google對Ensemble Methods的定義,我將盡力為您分解。在這項技術中,我們採用多種模型架構來預測輸出,無論是分類還是回歸。假設模型A,B和C被賦予對狗進行分類的任務:模型A說它是貓,而模型B和C說它是狗。因此,如果我們相信大多數人所說的話,我們將得出正確的輸出,但是如果我們信任第一個模型的輸出,那我們會犯錯。與回歸或價值預測相似。給定3個模型,我們採用預測的加權平均值來得出最終輸出。這減少了出錯的機會並提高了準確性。

有趣的是,我們不需要在3個模型上花費資源。我們可以使用不同批次的數據對同一模型進行3次訓練。這也將達到目的。但是你知道了,不是嗎?

退出:

輟學也歸類為合奏方法的類別。但是我很開心,認為這是相反的。在集成方法中,您「徵詢」其他模型的意見以得出結論,但在這裡,它基本上是在使其他貢獻者沉默。讓我說清楚。

這是一個非常簡單的神經網絡,其目的是成為對/錯分類器。查看輸出層(綠色)。它有2個Blob,一個Blob給出輸出為True的概率,另一個為False。這兩個值的總和:您猜對了:1!你不聰明嗎 XD。

這裡的想法是讓您理解這些「斑點」被稱為節點。這些節點中的每一個節點內部都有大量複雜的計算。還記得我在L2正則化中談論的內容嗎?這一切都發生在這裡。因此,這些節點是輸出的實際貢獻者。

涉及隨機關閉某些節點。這改變了模型的架構以及信息流經節點的方式。這樣做使模型成為更可靠的預測器。該模型必須在關閉某些貢獻器的情況下預測相同的輸出。這就像是說您需要在沒有頂級朋友在場的情況下完成測驗。

結論:

這樣就總結了我有關正則化技術的博客。我故意沒有為您提供有關批標準化的信息,因為這需要我為您提供訓練神經網絡的整個過程,而這與本博客的主要思想背道而馳:保持簡單。

相關焦點

  • 谷歌AutoML新進展,進化算法加持,僅用數學運算自動找出ML算法
    論文連結:https://arxiv.org/pdf/2003.03384.pdfGitHub 項目地址:https://github.com/google-research/google-research/tree/master/automl_zero#automl-zero在這項研究中,谷歌提出了新方法 AutoML-Zero
  • TensorFlow(Keras)中的正則化技術及其實現(附代碼)
    本文將不關注正則化的數學。相反,本文介紹了一些標準的正則化方法以及如何使用TensorFlow(Keras)在神經網絡中實現它們。有關數學的更多詳細信息,Raimi Karim和Renu Khandelwal的這些文章合理地介紹了L1和L2正則化數學。
  • 在深度學習中對正則化的直觀認識
    獲得對正則化的直觀認識在機器學習中,正則化是一種用來對抗高方差的方法——換句話說,就是模型學習再現數據的問題,而不是關於問題的潛在語義。與人類學習類似,我們的想法是構建家庭作業問題來測試和構建知識,而不是簡單的死記硬背:例如,學習乘法表,而不是學習如何乘。
  • 權重衰減和L2正則化是一個意思嗎?它們只是在某些條件下等價
    權重衰減== L2正則化?神經網絡是很好的函數逼近器和特徵提取器,但有時它們的權值過於專門化而導致過度擬合。這就是正則化概念出現的地方,我們將討論這一概念,以及被錯誤地認為相同的兩種主要權重正則化技術之間的細微差異。
  • 獨家獻映:谷歌工程師面對面之谷歌地圖
    作為《軟體大講堂》開播三年的獻禮,本次節目特別獲得谷歌中國公司大力支持,一網打盡谷歌十餘項最熱應用:谷歌搜索、谷歌翻譯、谷歌地圖、谷歌拼音輸入法、谷歌音樂、谷歌瀏覽器、谷歌購物搜索、谷歌手機地圖、iGoogle、谷歌雲計算……15位天才谷歌工程師、項目經理雲集IT168視頻中心,為大家獻上精彩的技術演示,與大家分享技術背後的妙事趣聞。谷歌,不僅僅是搜索!IT168帶您走進真正的谷歌世界!
  • 一文概覽深度學習中的五大正則化方法和七大優化策略
    這時我們可以使用正則化和優化技術來解決這兩個問題。梯度下降是一種優化技術,它通過最小化代價函數的誤差而決定參數的最優值,進而提升網絡的性能。儘管梯度下降是參數優化的自然選擇,但它在處理高度非凸函數和搜索全局最小值時也存在很多局限性。正則化技術令參數數量多於輸入數據量的網絡避免產生過擬合現象。
  • 谷歌今日上線基於TensorFlow的機器學習速成課程
    隨著機器學習越來越受到公眾的關注,很多初學者希望能快速了解機器學習及前沿技術。而今天谷歌上線了基於 TensorFlow 的機器學習速成課程,它包含 40 多項練習、25 節課程以及 15 個小時的緊湊學習內容。
  • 神經網絡中的損失函數正則化和 Dropout 並手寫代碼實現
    在深度神經網絡中最常用的方法是Regularization和dropout。 在本文中,我們將一起理解這兩種方法並在python中實現它們Regularization 正則化正則化通過在損失函數的末尾添加額外的懲罰項來幫助防止模型過度擬合。
  • 谷歌機器學習白皮書全解析43條黃金法則二
    編者按:此白皮書為谷歌總結的機器學習(ML)最優實踐方法,濃縮了其多年技術積累與經驗,尤其是 YouTube、Google Play 和 Google+ 等平臺背後的 ML 算法開發、維護經歷。谷歌於白皮書中總結了四十三條 ML 黃金法則,旨在幫助已經掌握了基礎知識的開發者少走彎路。
  • 【全自動機器學習】ML 工程師屠龍利器,一鍵接收訓練好的模型
    AutoML 如同倚天劍屠龍刀一般,使機器學習工程師功力大增,但這樣一件利器在不久之前似乎知曉的人並不多,2017 年 5 月 18 日,谷歌開發者大會(I/O)以「學會學習」(learning to learn)為口號,才將 AutoML 推到更多人的視野中來。
  • 谷歌軟體工程師薪資百萬,大廠薪資有多高?
    雖然谷歌不會對外公開透漏薪資,但是國外的一些網站也會通過一些方法來收集到公司員工的薪資水平,讓我們一起來看看谷歌員工的年薪到底有多少。以下數據來自Glassdoor網站,且均為平均年薪(以下已換算為人民幣):軟體測試工程師:859,308元,軟體工程師:1,014,282元,高級軟體工程師:1,388,060元,資深軟體工程師:1,793,099元。
  • 機器學習之正則化
    三分鐘學習開始啦~----正則化是一種為了減小測試誤差的行為。當利用複雜的模型擬合數據,過擬合現象的出現導致模型的泛化能力下降時,使用正則化的適用可以降低模型的複雜度。這次為大家總結了正則化的相關知識點,幫助更好的理解正則化這一概念。正則化的本質就是對某一問題加以先驗的限制或約束以達到特定目的的一種手段或操作。
  • 吳恩達深度學習筆記(34)-你不知道的其他正則化方法
    其他正則化方法(Other regularization methods)除了L2正則化和隨機失活(dropout)正則化,還有幾種方法可以減少神經網絡中的過擬合:一.數據擴增假設你正在擬合貓咪圖片分類器,如果你想通過擴增訓練數據來解決過擬合,但擴增數據代價高,而且有時候我們無法擴增數據,但我們可以通過添加這類圖片來增加訓練集
  • 解密:新生兒黃疸的正常值是12.9mg/dl
    新生兒也有生理和病理之分,醫學上把生理性黃疸的值作為新生兒黃疸正常值。那麼新生兒黃疸的正常值是多少呢?下面大家就一起來看看下文的詳細講解吧。 足月出生寶寶的黃疸正常值與早產兒又有所不同。通常,足月新生兒黃疸正常值是12.9毫克/100毫升,也就是100毫升的血液中的膽紅素水平低於12.9毫克。
  • 誤區解讀:ML和DL之間的區別和使用情況
    機器學習與深度學習不完全屬於一個拳擊淘汰賽中,深度學習是機器學習的一個子集,而它們都是人工智慧(AI)的子集。但是,在機器學習和深度學習的定義和用例方面,市場上存在很多混淆,現在讓我們來澄清一下混淆。  ·人工智慧(AI)是模擬和模仿計算機系統和機器中的智能人類行為的研究。  ·機器學習是AI的一個子領域,它使用算法將AI概念應用到計算系統中。
  • 谷歌大腦開源項目 AutoML-Zero:用數學運算能探索出機器學習算法
    深度神經網絡在不斷發現問題和解決問題的過程中又推動了 AutoML 的發展。到目前為止,AutoML 一直致力於通過組合複雜的手工設計組件來構建解決方案。一個典型的例子是神經架構搜索,這是一個子領域,在這個子領域中,人們可以從複雜的層(例如卷積、批標準化和 dropout)自動構建神經網絡,這也是許多研究的主題。
  • 「矽谷教父」亨尼斯、谷歌工程師帕特森獲今年圖靈獎
    對於今年兩位獲獎者,ACM官網的給出的獲獎理由是:亨尼斯和帕特森對基於RISC節能處理器的貢獻有助於實現移動和物聯網革命。與此同時,他們合作撰寫的重要教科書《計算機體系結構:量化研究方法》影響了幾代工程師和計算機設計師,並在過去的25年中推動了整個行業的創新步伐。
  • GitHub CEO霸氣回應:把youtube-dl還給開發者!
    youtube-dl下載視頻有多簡單?一行命令搞定,當然你要想調解析度,選擇字幕語言等,也可以設置。官方聲明說,「在 GitHub,我們的首要任務是支持開源和開發者社區。因此,我們與開發人員一樣,對這種取消感到沮喪ーー特別是因為這個項目有許多合法用途。」
  • 谷歌AutoML鼻祖新作AutoML-Zero:從零開始構建機器學習算法
    【新智元導讀】市面上的自動機器學習算法多如牛毛,但並沒有得到很好的普及,因為這些算法限制了搜索的空間,很多研究者還是需要自己設計機器學習模型的結構,而谷歌此次發布的AutoML-Zero搜索空間完全沒有限制,可以從最基礎的數學公式開始。「新智元急聘主筆、編輯、運營經理、客戶經理,添加HR微信(Dr-wly)了解詳情。」
  • 前谷歌Pixel首席影像工程師加盟Adobe擔任副總裁
    【天極網手機頻道】最近XDA消息稱,前谷歌Pixel首席影像工程師Marc Levoy加盟Adobe擔任副總裁,負責Adobe Camera APP開發,還會負責Adobe Photoshop Camera。和Google Camera不同,Marc Levoy開發的Adobe Camera可以安裝在所有Android手機上。