精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

batch normalization時的一些缺陷

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:Sahil Uppal ? 2020-11-03 17:27 ? 次閱讀

導讀

batch normalization時的一些缺陷。

Batch Normalization確實是深度學習領域的重大突破之一,也是近年來研究人員討論的熱點之一。Batch Normalization是一種被廣泛采用的技術,使訓練更加快速和穩定,已成為最有影響力的方法之一。然而,盡管它具有多種功能,但仍有一些地方阻礙了該方法的發展,正如我們將在本文中討論的那樣,這表明做歸一化的方法仍有改進的余地。

我們為什么要用Batch Normalization?

在討論任何事情之前,首先,我們應該知道Batch Normalization是什么,它是如何工作的,并討論它的用例。

什么是Batch Normalization

在訓練過程中,當我們更新之前的權值時,每個中間激活層的輸出分布會在每次迭代時發生變化。這種現象稱為內部協變量移位(ICS)。所以很自然的一件事,如果我想防止這種情況發生,就是修正所有的分布。簡單地說,如果我的分布變動了,我會限制住這個分布,不讓它移動,以幫助梯度優化和防止梯度消失,這將幫助我的神經網絡訓練更快。因此減少這種內部協變量位移是推動batch normalization發展的關鍵原則。

它如何工作

Batch Normalization通過在batch上減去經驗平均值除以經驗標準差來對前一個輸出層的輸出進行歸一化。這將使數據看起來像高斯分布。

其中μ和*σ^2^*分別為批均值和批方差。

并且,我們學習了一個新的平均值和協方差γ和β。所以,簡而言之,你可以認為batch normalization是幫助你控制batch分布的一階和二階動量。

vgg16網絡的中間卷積層的特征分布輸出。(左)沒有任何歸一化,(右)應用了batch normalization

優點

我將列舉使用batch normalization的一些好處,但是我不會詳細介紹,因為已經有很多文章討論了這個問題。

更快的收斂。

降低初始權重的重要性。

魯棒的超參數。

需要較少的數據進行泛化。

1. 更快的收斂,2. 對超參數更魯棒

Batch Normalization的詛咒

好,讓我們回到本文的出發點,在許多情況下batch normalization開始傷害性能或根本不起作用。

在使用小batch size的時候不穩定

如上所述,batch normalization必須計算平均值和方差,以便在batch中對之前的輸出進行歸一化。如果batch大小比較大的話,這種統計估計是比較準確的,而隨著batch大小的減少,估計的準確性持續減小。

ResNet-50在Batch Norm使用32、16、8、4、2張/GPU圖像時的驗證錯誤

以上是ResNet-50的驗證錯誤圖。可以推斷,如果batch大小保持為32,它的最終驗證誤差在23左右,并且隨著batch大小的減小,誤差會繼續減小(batch大小不能為1,因為它本身就是平均值)。損失有很大的不同(大約10%)。

如果batch大小是一個問題,為什么我們不使用更大的batch?我們不能在每種情況下都使用更大的batch。在finetune的時候,我們不能使用大的batch,以免過高的梯度對模型造成傷害。在分布式訓練的時候,大的batch最終將作為一組小batch分布在各個實例中。

導致訓練時間的增加

NVIDIA和卡耐基梅隆大學進行的實驗結果表明,“盡管Batch Normalization不是計算密集型,而且收斂所需的總迭代次數也減少了。”但是每個迭代的時間顯著增加了,而且還隨著batch大小的增加而進一步增加。

ResNet-50 在ImageNet上使用 Titan X Pascal

你可以看到,batch normalization消耗了總訓練時間的1/4。原因是batch normalization需要通過輸入數據進行兩次迭代,一次用于計算batch統計信息,另一次用于歸一化輸出。

訓練和推理時不一樣的結果

例如,在真實世界中做“物體檢測”。在訓練一個物體檢測器時,我們通常使用大batch(YOLOv4和Faster-RCNN都是在默認batch大小= 64的情況下訓練的)。但在投入生產后,這些模型的工作并不像訓練時那么好。這是因為它們接受的是大batch的訓練,而在實時情況下,它們的batch大小等于1,因為它必須一幀幀處理??紤]到這個限制,一些實現傾向于基于訓練集上使用預先計算的平均值和方差。另一種可能是基于你的測試集分布計算平均值和方差值。

對于在線學習不好

與batch學習相比,在線學習是一種學習技術,在這種技術中,系統通過依次向其提供數據實例來逐步接受訓練,可以是單獨的,也可以是通過稱為mini-batch的小組進行。每個學習步驟都是快速和便宜的,所以系統可以在新的數據到達時實時學習。

典型的在線學習pipeline

由于它依賴于外部數據源,數據可能單獨或批量到達。由于每次迭代中batch大小的變化,對輸入數據的尺度和偏移的泛化能力不好,最終影響了性能。

對于循環神經網絡不好

雖然batch normalization可以顯著提高卷積神經網絡的訓練和泛化速度,但它們很難應用于遞歸結構。batch normalization可以應用于RNN堆棧之間,其中歸一化是“垂直”應用的,即每個RNN的輸出。但是它不能“水平地”應用,例如在時間步之間,因為它會因為重復的重新縮放而產生爆炸性的梯度而傷害到訓練。

[^注]: 一些研究實驗表明,batch normalization使得神經網絡容易出現對抗漏洞,但我們沒有放入這一點,因為缺乏研究和證據。

可替換的方法

這就是使用batch normalization的一些缺點。在batch normalization無法很好工作的情況下,有幾種替代方法。

Layer Normalization

Instance Normalization

Group Normalization (+ weight standardization)

Synchronous Batch Normalization

總結

所以,看起來訓練深度神經網絡很簡單,但我不認為它很容易。從這個意義上說,我可以選擇的架構很少,每個模型都有固定的學習速度,固定的優化器和固定的技巧。這些技巧是通過自然選擇選擇的,就像有人想出了一些技巧,人們引入之后如果有效,就會保留,如果無效,人們最終會忘記,并沒有人再去使用它。除此之外,batch normalization是深度學習發展中的一個里程碑技術。然而,正如前面所討論的,沿著batch 維度進行歸一化引入了一些問題,這表明歸一化技術仍有改進的空間。

責任編輯:xj

原文標題:【重點】Batch Normalization的詛咒

文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    6909

    瀏覽量

    88850
  • Batch
    +關注

    關注

    0

    文章

    6

    瀏覽量

    7151
  • 深度學習
    +關注

    關注

    73

    文章

    5493

    瀏覽量

    121000

原文標題:【重點】Batch Normalization的詛咒

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一些常見的動態電路

    無論是模電還是數電,理論知識相對來說還是比較枯燥,各種電路原理理解清楚不算容易,換種生動形象的方式或許會增加一些趣味性,也更容易理解這些知識。下面整理了一些常見的電路,以動態圖形的方式展示。 整流
    的頭像 發表于 11-16 09:26 ?211次閱讀
    <b class='flag-5'>一些</b>常見的動態電路

    PCBA加工質量控制:如何識別與預防常見缺陷?

    站式PCBA智造廠家今天為大家講講PCBA加工過程中常見的缺陷有哪些?PCBA加工過程中可能遇到的缺陷。在PCBA貼片加工過程中,盡管追求盡善盡美,但難免會遇到一些加工
    的頭像 發表于 11-14 09:36 ?149次閱讀

    分享一些常見的電路

    理解模電和數電的電路原理對于初學者來說可能比較困難,但通過一些生動的教學方法和資源,可以有效地提高學習興趣和理解能力。 下面整理了一些常見的電路,以動態圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發表于 11-13 09:28 ?217次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅動器應用的一些指南和技巧

    電子發燒友網站提供《LED驅動器應用的一些指南和技巧.pdf》資料免費下載
    發表于 09-25 11:35 ?0次下載
    LED驅動器應用的<b class='flag-5'>一些</b>指南和技巧

    SMT錫膏加工中如何處理缺陷?

    在SMT貼片加工中,會出現一些加工缺陷和不良,錫膏缺陷就是其中之,但可以通過一些方法來避免,那么我們應該怎么做呢?以下是深圳佳金源錫膏廠家
    的頭像 發表于 09-03 16:03 ?226次閱讀
    SMT錫膏加工中如何處理<b class='flag-5'>缺陷</b>?

    咨詢一些關于LED燈具的問題

    各位大佬,咨詢一些關于LED燈具的問題 120W的吸頂燈,用的非隔離式電源,用不到1年,燈具就會閃爍、頻閃或不亮,主要是什么原因造成的?是不是驅動芯片太差?
    發表于 07-02 22:33

    【大規模語言模型:從理論到實踐】- 每日進步點點

    據中微小變化的敏感度,從而提高模型的泛化能力。 二、常見的歸化方法 Batch Normalization(BatchNorm) 原理:在batch數據中對數據的
    發表于 05-31 19:54

    細談SolidWorks教育版的一些基礎知識

    SolidWorks教育版是款廣泛應用于工程設計和教育領域的三維建模軟件。它具備直觀易用的操作界面和強大的設計功能,為學生提供了個學習和實踐的平臺。在本文中,我們將詳細探討SolidWorks教育版的一些基礎知識,幫助初學者
    的頭像 發表于 04-01 14:35 ?319次閱讀

    Tekvpi探頭接口的一些好處是什么?

    Tekvpi探針接口的一些好處是什么? Tekvmi探針接口的最大好處是多功能性和易于使用。 示波器 使用Tekvmi接口支持范圍廣泛的 普羅布斯 包括Tekvmi探針,BMC
    的頭像 發表于 03-22 10:32 ?384次閱讀
    Tekvpi探頭接口的<b class='flag-5'>一些</b>好處是什么?

    一些有關通信電路的資料?

    有關嵌入式之間DSP、ARM、FPGA三者之間和這三款芯片和外部電路之間通信的一些資料,比如說芯片之間的并行通信和芯片和外部電路之間的串行通信,MODBUS、DP、CAN等,一些一些常用的通信協議的
    發表于 03-03 18:53

    基于深度學習的芯片缺陷檢測梳理分析

    雖然表面缺陷檢測技術已經不斷從學術研究走向成熟的工業應用,但是依然有一些需要解決的問題?;谝陨戏治隹梢园l現,由于芯片表面缺陷的獨特性質,通用目標檢測算法不適合直接應用于芯片表面缺陷
    發表于 02-25 14:30 ?1305次閱讀
    基于深度學習的芯片<b class='flag-5'>缺陷</b>檢測梳理分析

    無紡布缺陷在線檢測儀怎么用

    隨著科技的不斷發展,無紡布作為種新型環保材料,已經廣泛應用于各個領域。然而,無紡布的生產過程中難免會出現一些缺陷,如針眼、孔洞等。為了提高無紡布的質量,許多企業開始使用無紡布缺陷在線
    的頭像 發表于 02-03 14:58 ?468次閱讀
    無紡布<b class='flag-5'>缺陷</b>在線檢測儀怎么用

    一些無功補償裝置SVG的資料

    一些SVG電路原理和功能碼相關的技術說明書,想了解一些SVG的工作原理和工作過程
    發表于 02-03 10:13

    對于大模型RAG技術的一些思考

    大模型或者句向量在訓練時,使用的語料都是較為通用的語料。這導致了這些模型,對于垂直領域的知識識別是有缺陷的。它們沒有辦法理解企業內部的一些專用術語,縮寫所表示的具體含義。這樣極大地影響了生成向量的精準度,以及大模型輸出的效果。
    的頭像 發表于 12-07 09:41 ?1106次閱讀
    對于大模型RAG技術的<b class='flag-5'>一些</b>思考

    提高嵌入式代碼質量的一些方法

    的事情搞復雜,我希望這些文字能給迷惑中的人們指出一些正確的方向,讓他們少走一些彎路,基本做到一分耕耘一分收獲。
    的頭像 發表于 11-30 09:15 ?438次閱讀