<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文看懂神經網絡初始化!

          共 2570字,需瀏覽 6分鐘

           ·

          2021-04-19 10:19

          點擊上方小白學視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達

          本文轉自:磐創(chuàng)AI

          【導讀】神經網絡的初始化是訓練流程的重要基礎環(huán)節(jié),會對模型的性能、收斂性、收斂速度等產生重要的影響。本文是deeplearning.ai的一篇技術博客,文章指出,對初始化值的大小選取不當,  可能造成梯度爆炸或梯度消失等問題,并提出了針對性的解決方法。


          初始化會對深度神經網絡模型的訓練時間和收斂性產生重大影響。簡單的初始化方法可以加速訓練,但使用這些方法需要注意小心常見的陷阱。本文將解釋如何有效地對神經網絡參數(shù)進行初始化。


          有效的初始化對構建模型至關重要


          要構建機器學習算法,通常要定義一個體系結構(例如邏輯回歸,支持向量機,神經網絡)并對其進行訓練來學習參數(shù)。下面是訓練神經網絡的一些常見流程:

           

          初始化參數(shù)

          選擇優(yōu)化算法


          然后重復以下步驟:


          1、向前傳播輸入

          2、計算成本函數(shù)

          3、使用反向傳播計算與參數(shù)相關的成本梯度

          4、根據(jù)優(yōu)化算法,利用梯度更新每個參數(shù)

           

          然后,給定一個新的數(shù)據(jù)點,使用模型來預測其類型。


          初始化值太大\太小會導致梯度爆炸或梯度消失


          初始化這一步對于模型的最終性能至關重要,需要采用正確的方法。比如對于下面的三層神經網絡。可以嘗試使用不同的方法初始化此網絡,并觀察對學習的影響。



          在優(yōu)化循環(huán)的每次迭代(前向,成本,后向,更新)中,我們觀察到當從輸出層向輸入層移動時,反向傳播的梯度要么被放大,要么被最小化。

           

          假設所有激活函數(shù)都是線性的(恒等函數(shù))。則輸出激活為:

          其中 L=10 ,且W[1]、W[2]…W[L-1]都是2*2矩陣,因為從第1層到L-1層都是2個神經元,接收2個輸入。為了方便分析,如果假設W[1]=W[2]=…=W[L-1]=W,那么輸出預測為

           

          如果初始化值太大或太小會造成什么結果?

           

          情況1:初始化值過大會導致梯度爆炸

           

          如果每個權重的初始化值都比單位矩陣稍大,即:

          可簡化表示為

          且a[l]的值隨l值呈指數(shù)級增長。當這些激活用于向后傳播時,會導致梯度爆炸。也就是說,與參數(shù)相關的成本梯度太大。這導致成本圍繞其最小值振蕩。


          初始化值太大導致成本圍繞其最小值震蕩


          情況2:初始化值過小會導致梯度消失

           

          類似地,如果每個權重的初始化值都比單位矩陣稍小,即:

          可簡化表示為

          且a[l]的值隨l值減少呈指數(shù)級下降。當這些激活用于后向傳播時,可能會導致梯度消失。也就是說,與參數(shù)相關的成本梯度太小。這會導致成本在達到最小值之前收斂。


          初始化值太小導致模型過早收斂


          總而言之,使用大小不合適的值對權重進行將導致神經網絡的發(fā)散或訓練速度下降。雖然我們用的是簡單的對稱權重矩陣來說明梯度爆炸/消失的問題,但這一現(xiàn)象可以推廣到任何不合適的初始化值。


          如何確定合適的初始化值


          為了防止以上問題的出現(xiàn),我們可以堅持以下經驗原則:


          1.激活的平均值應為零。

          2.激活的方差應該在每一層保持不變。

           

          在這兩個假設下,反向傳播的梯度信號不應該在任何層中乘以太小或太大的值。梯度應該可以移動到輸入層,而不會爆炸或消失。

          更具體地說,對于層l,其前向傳播是:

          我們想讓下式成立:

          確保均值為零,并保持每層輸入方差值不變,可以保證信號不會爆炸或消失。該方法既適用于前向傳播(用于激活),也適用于向后傳播(用于關于激活的成本梯度)。這里建議使用Xavier初始化(或其派生初始化方法),對于每個層l,有:

          層l中的所有權重均自正態(tài)分布中隨機挑選,其中均值 μ=0 ,方差E= 1/( n[l?1]),其中n[l?1] 是第l-1層網絡中的神經元數(shù)量。偏差已初始化為零。

           

          下圖說明了Xavier初始化對五層全連接神經網絡的影響。數(shù)據(jù)集為MNIST中選取的10000個手寫數(shù)字,分類結果的紅色方框表示錯誤分類,藍色表示正確分類。

          結果顯示,Xavier初始化的模型性能顯著高于uniform和標準正態(tài)分布(從上至下分別為uniform、標準正態(tài)分布、Xavier)。


          結論


          在實踐中,使用Xavier初始化的機器學習工程師會將權重初始化為N(0,1/( n[l?1]))或N(0,2/(n[l-1]+n[1])),其中后一個分布的方差是n[l-1]和n[1]的調和平均。


          Xavier初始化可以與tanh激活一起使用。此外,還有大量其他初始化方法。例如,如果你正在使用ReLU,則通常的初始化是He初始化,其初始化權重通過乘以Xavier初始化的方差2來初始化。雖然這種初始化證明稍微復雜一些,但其思路與tanh是相同的。

           

          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學視覺」公眾號后臺回復:擴展模塊中文教程即可下載全網第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲第一无码天堂精品 | 日韩大香蕉在线 | 极品操逼 | 欧美午夜操大逼 | 操美女免费网站 |