chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

【連載】深度學習筆記5:正則化與dropout

人工智能實訓營 ? 2018-08-20 12:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在筆記 4 中,詳細闡述了機器學習中利用正則化防止過擬合的基本方法,對 L1 和 L2 范數進行了通俗的解釋。為了防止深度神經網絡出現(xiàn)過擬合,除了給損失函數加上 L2 正則化項之外,還有一個很著名的方法——dropout.

廢話少說,咱們單刀直入正題。究竟啥是 dropout ? dropout 是指在神經網絡訓練的過程中,對所有神經元按照一定的概率進行消除的處理方式。在訓練深度神經網絡時,dropout 能夠在很大程度上簡化神經網絡結構,防止神經網絡過擬合。所以,從本質上而言,dropout 也是一種神經網絡的正則化方法。

假設我們要訓練了一個 4 層(3個隱層)的神經網絡,該神經網絡存在著過擬合。于是我們決定使用 dropout 方法來處理,dropout 為該網絡每一層的神經元設定一個失活(drop)概率,在神經網絡訓練過程中,我們會丟棄一些神經元節(jié)點,在網絡圖上則表示為該神經元節(jié)點的進出連線被刪除。最后我們會得到一個神經元更少、模型相對簡單的神經網絡,這樣一來原先的過擬合情況就會大大的得到緩解。這樣說似乎并沒有將 dropout 正則化原理解釋清楚,我們繼續(xù)深究一下:為什么 dropout 可以可以通過正則化發(fā)揮防止過擬合的功能?

因為 dropout 可以隨時隨機的丟棄任何一個神經元,神經網絡的訓練結果不會依賴于任何一個輸入特征,每一個神經元都以這種方式進行傳播,并為神經元的所有輸入增加一點權重,dropout 通過傳播所有權重產生類似于 L2 正則化收縮權重的平方范數的效果,這樣的權重壓縮類似于 L2 正則化的權值衰減,這種外層的正則化起到了防止過擬合的作用。

所以說,總體而言,dropout 的功能類似于 L2 正則化,但又有所區(qū)別。另外需要注意的一點是,對于一個多層的神經網絡,我們的 dropout 某層神經元的概率并不是一刀切的。對于不同神經元個數的神經網絡層,我們可以設置不同的失活或者保留概率,對于含有較多權值的層,我們可以選擇設置較大的失活概率(即較小的保留概率)。所以,總結來說就是如果你擔心某些層所含神經元較多或者比其他層更容易發(fā)生過擬合,我們可以將該層的失活概率設置的更高一些。

說了這么多,總算大致把 dropout 說明白了。那 dropout 這種操作在實際的 python 編程中該如何實現(xiàn)呢?以一個三層的神經網絡為例,首先我們需要定義一個 3 層的 dropout 向量,然后將其與保留概率 keep-prob 進行比較生成一個布爾值向量,再將其與該層的神經元激活輸出值進行乘積運算,最后擴展上一步的計算結果,將其除以 keep-prob 即可。但在實際編程中就沒說的這么容易了,我們需要對整個神經網絡的計算過程進行重新定義,包括前向傳播和反向傳播的計算定義。

含 dropout 的前向計算定義如下:

def forward_propagation_with_dropout(X, parameters, keep_prob = 0.5):
  np.random.seed(1)  # retrieve parameters
  W1 = parameters["W1"]
  b1 = parameters["b1"]
  W2 = parameters["W2"]
  b2 = parameters["b2"]
  W3 = parameters["W3"]
  b3 = parameters["b3"]  # LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SIGMOID
  Z1 = np.dot(W1, X) + b1
  A1 = relu(Z1)

  D1 = np.random.rand(A1.shape[0], A1.shape[1])  
  D1 = D1 < keep_prob ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
 ? ?A1 = np.multiply(D1, A1) ? ? ? ? ? ? ? ? ? ? ? ? 
 ? ?A1 = A1 / keep_prob ? ? ? ? ? ? ? ? ? ? ? ? ? ? 

 ? ?Z2 = np.dot(W2, A1) + b2
 ? ?A2 = relu(Z2)

 ? ?D2 = np.random.rand(A2.shape[0], A2.shape[1])   
  D2 = D2 < keep_prob ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
 ? ?A2 = np.multiply(D2, A2) ? ? ? ? ? ? ? ? ? ? ? 
 ? ?A2 = A2 / keep_prob ? ? ? ? ? ? ? ? ? ? ? ? ? 
 ? ?Z3 = np.dot(W3, A2) + b3
 ? ?A3 = sigmoid(Z3)

 ? ?cache = (Z1, D1, A1, W1, b1, Z2, D2, A2, W2, b2, Z3, A3, W3, b3) ? ?
return A3, cache

以上代碼基本體現(xiàn)了 dropout 的實現(xiàn)的四步流程。

含 dropout 的反向傳播計算定義如下:

def backward_propagation_with_dropout(X, Y, cache, keep_prob):

  m = X.shape[1]
  (Z1, D1, A1, W1, b1, Z2, D2, A2, W2, b2, Z3, A3, W3, b3) = cache

  dZ3 = A3 - Y
  dW3 = 1./m * np.dot(dZ3, A2.T)
  db3 = 1./m * np.sum(dZ3, axis=1, keepdims = True)
  dA2 = np.dot(W3.T, dZ3)

  dA2 = np.multiply(dA2, D2)  
  dA2 = dA2 / keep_prob    

  dZ2 = np.multiply(dA2, np.int64(A2 > 0))
  dW2 = 1./m * np.dot(dZ2, A1.T)
  db2 = 1./m * np.sum(dZ2, axis=1, keepdims = True)

  dA1 = np.dot(W2.T, dZ2)

  dA1 = np.multiply(dA1, D1)  
  dA1 = dA1 / keep_prob      

  dZ1 = np.multiply(dA1, np.int64(A1 > 0))
  dW1 = 1./m * np.dot(dZ1, X.T)
  db1 = 1./m * np.sum(dZ1, axis=1, keepdims = True)

  gradients = {"dZ3": dZ3, "dW3": dW3, "db3": db3,"dA2": dA2,         "dZ2": dZ2, "dW2": dW2, "db2": db2, "dA1": dA1, 
         "dZ1": dZ1, "dW1": dW1, "db1": db1}  
return gradients

在定義反向傳播計算函數時,我們必須丟棄和執(zhí)行前向傳播時一樣的神經元。
最后帶有 dropout 的分類效果如下所示:


所以,總結而言,dropout 就是在正常的神經網絡基礎上給每一層的每一個神經元加了一道概率流程來隨機丟棄某些神經元以達到防止過擬合的目的。

本文來自《自興動腦人工智能》項目部:凱文。


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

    關注

    1814

    文章

    49967

    瀏覽量

    263638
  • 機器學習
    +關注

    關注

    66

    文章

    8546

    瀏覽量

    136525
  • 深度學習
    +關注

    關注

    73

    文章

    5594

    瀏覽量

    124147
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    機器學習深度學習中需避免的 7 個常見錯誤與局限性

    無論你是剛入門還是已經從事人工智能模型相關工作一段時間,機器學習深度學習中都存在一些我們需要時刻關注并銘記的常見錯誤。如果對這些錯誤置之不理,日后可能會引發(fā)諸多麻煩!只要我們密切關注數據、模型架構
    的頭像 發(fā)表于 01-07 15:37 ?109次閱讀
    機器<b class='flag-5'>學習</b>和<b class='flag-5'>深度</b><b class='flag-5'>學習</b>中需避免的 7 個常見錯誤與局限性

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰(zhàn)課(11大系列課程,共5000+分鐘)

    (第10系列)、YOLOv8-Tiny工業(yè)優(yōu)化版(第9系列),滿足產線端設備算力限制,模型推理速度提升300%。 LabVIEW生態(tài)整合 作為工業(yè)自動領域主流開發(fā)環(huán)境,LabVIEW與深度學習的集成
    發(fā)表于 12-04 09:28

    【團購】獨家全套珍藏!龍哥LabVIEW視覺深度學習實戰(zhàn)課程(11大系列課程,共5000+分鐘)

    (第10系列)、YOLOv8-Tiny工業(yè)優(yōu)化版(第9系列),滿足產線端設備算力限制,模型推理速度提升300%。 LabVIEW生態(tài)整合 作為工業(yè)自動領域主流開發(fā)環(huán)境,LabVIEW與深度學習的集成
    發(fā)表于 12-03 13:50

    如何深度學習機器視覺的應用場景

    深度學習視覺應用場景大全 工業(yè)制造領域 復雜缺陷檢測:處理傳統(tǒng)算法難以描述的非標準缺陷模式 非標產品分類:對形狀、顏色、紋理多變的產品進行智能分類 外觀質量評估:基于學習的外觀質量標
    的頭像 發(fā)表于 11-27 10:19 ?164次閱讀

    如何在機器視覺中部署深度學習神經網絡

    人士而言往往難以理解,人們也常常誤以為需要扎實的編程技能才能真正掌握并合理使用這項技術。事實上,這種印象忽視了該技術為機器視覺(乃至生產自動)帶來的潛力,因為深度學習并非只屬于計算機科學家或程序員。 從頭開始:什么
    的頭像 發(fā)表于 09-10 17:38 ?805次閱讀
    如何在機器視覺中部署<b class='flag-5'>深度</b><b class='flag-5'>學習</b>神經網絡

    深度學習對工業(yè)物聯(lián)網有哪些幫助

    、實施路徑三個維度展開分析: 一、深度學習如何突破工業(yè)物聯(lián)網的技術瓶頸? 1. 非結構數據處理:解鎖“沉睡數據”價值 傳統(tǒng)困境 :工業(yè)物聯(lián)網中70%以上的數據為非結構數據(如設備振
    的頭像 發(fā)表于 08-20 14:56 ?903次閱讀

    自動駕駛中Transformer大模型會取代深度學習嗎?

    [首發(fā)于智駕最前沿微信公眾號]近年來,隨著ChatGPT、Claude、文心一言等大語言模型在生成文本、對話交互等領域的驚艷表現(xiàn),“Transformer架構是否正在取代傳統(tǒng)深度學習”這一話題一直被
    的頭像 發(fā)表于 08-13 09:15 ?4041次閱讀
    自動駕駛中Transformer大模型會取代<b class='flag-5'>深度</b><b class='flag-5'>學習</b>嗎?

    鴻蒙5開發(fā)寶藏案例分享---模塊設計案例分享

    “動態(tài)共享庫” → 獲取HSP性能優(yōu)化Demo “應用組件” → 學習Ability拆分技巧 最后說兩句 模塊設計就像搭積木,用對方法能讓開發(fā)效率翻倍!建議大家動手試試: 小型應用:單HAP
    發(fā)表于 06-12 16:17

    嵌入式AI技術之深度學習:數據樣本預處理過程中使用合適的特征變換對深度學習的意義

    ? 作者:蘇勇Andrew 使用神經網絡實現(xiàn)機器學習,網絡的每個層都將對輸入的數據做一次抽象,多層神經網絡構成深度學習的框架,可以深度理解數據中所要表示的規(guī)律。從原理上看,使用
    的頭像 發(fā)表于 04-02 18:21 ?1413次閱讀

    行業(yè)首創(chuàng):基于深度學習視覺平臺的AI驅動輪胎檢測自動

    全球領先的輪胎制造商 NEXEN TIRE 在其輪胎生產檢測過程中使用了基于友思特伙伴Neurocle開發(fā)的AI深度學習視覺平臺,實現(xiàn)缺陷檢測率高達99.96%,是該行業(yè)首個使用AI平臺技術推動缺陷檢測自動流程的企業(yè)。
    的頭像 發(fā)表于 03-19 16:51 ?895次閱讀
    行業(yè)首創(chuàng):基于<b class='flag-5'>深度</b><b class='flag-5'>學習</b>視覺平臺的AI驅動輪胎檢測自動<b class='flag-5'>化</b>

    IPC2221簡略學習筆記

    關于IPC2221的學習筆記
    發(fā)表于 03-14 18:07 ?9次下載

    如何排除深度學習工作臺上量化OpenVINO?的特定層?

    無法確定如何排除要在深度學習工作臺上量化OpenVINO?特定層
    發(fā)表于 03-06 07:31

    軍事應用中深度學習的挑戰(zhàn)與機遇

    人工智能尤其是深度學習技術的最新進展,加速了不同應用領域的創(chuàng)新與發(fā)展。深度學習技術的發(fā)展深刻影響了軍事發(fā)展趨勢,導致戰(zhàn)爭形式和模式發(fā)生重大變化。本文將概述
    的頭像 發(fā)表于 02-14 11:15 ?905次閱讀

    BP神經網絡與深度學習的關系

    ),是一種多層前饋神經網絡,它通過反向傳播算法進行訓練。BP神經網絡由輸入層、一個或多個隱藏層和輸出層組成,通過逐層遞減的方式調整網絡權重,目的是最小網絡的輸出誤差。 二、深度學習的定義與發(fā)展
    的頭像 發(fā)表于 02-12 15:15 ?1606次閱讀

    模電手賬筆記5

    模電手賬筆記5
    的頭像 發(fā)表于 02-11 15:32 ?595次閱讀
    模電手賬<b class='flag-5'>筆記</b>(<b class='flag-5'>5</b>)