91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【連載】深度學(xué)習(xí)筆記5:正則化與dropout

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

掃碼添加小助手

加入工程師交流群

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

廢話少說,咱們單刀直入正題。究竟啥是 dropout ? dropout 是指在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,對(duì)所有神經(jīng)元按照一定的概率進(jìn)行消除的處理方式。在訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),dropout 能夠在很大程度上簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),防止神經(jīng)網(wǎng)絡(luò)過擬合。所以,從本質(zhì)上而言,dropout 也是一種神經(jīng)網(wǎng)絡(luò)的正則化方法。

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

因?yàn)?dropout 可以隨時(shí)隨機(jī)的丟棄任何一個(gè)神經(jīng)元,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果不會(huì)依賴于任何一個(gè)輸入特征,每一個(gè)神經(jīng)元都以這種方式進(jìn)行傳播,并為神經(jīng)元的所有輸入增加一點(diǎn)權(quán)重,dropout 通過傳播所有權(quán)重產(chǎn)生類似于 L2 正則化收縮權(quán)重的平方范數(shù)的效果,這樣的權(quán)重壓縮類似于 L2 正則化的權(quán)值衰減,這種外層的正則化起到了防止過擬合的作用。

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

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

含 dropout 的前向計(jì)算定義如下:

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 的實(shí)現(xiàn)的四步流程。

含 dropout 的反向傳播計(jì)算定義如下:

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

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


所以,總結(jié)而言,dropout 就是在正常的神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上給每一層的每一個(gè)神經(jīng)元加了一道概率流程來隨機(jī)丟棄某些神經(jīng)元以達(dá)到防止過擬合的目的。

本文來自《自興動(dòng)腦人工智能》項(xiàng)目部:凱文。


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

    關(guān)注

    1817

    文章

    50094

    瀏覽量

    265275
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8553

    瀏覽量

    136928
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5598

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    人工智能與機(jī)器學(xué)習(xí)在這些行業(yè)的深度應(yīng)用

    自人工智能和機(jī)器學(xué)習(xí)問世以來,多個(gè)在線領(lǐng)域的數(shù)字格局迎來了翻天覆地的變化。這些技術(shù)從誕生之初就為企業(yè)賦予了競(jìng)爭(zhēng)優(yōu)勢(shì),而在線行業(yè)正是受其影響最為顯著的領(lǐng)域。人工智能(AI)與機(jī)器學(xué)習(xí)(ML)的
    的頭像 發(fā)表于 02-04 14:44 ?468次閱讀

    機(jī)器學(xué)習(xí)深度學(xué)習(xí)中需避免的 7 個(gè)常見錯(cuò)誤與局限性

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

    穿孔機(jī)頂頭檢測(cè)儀 機(jī)器視覺深度學(xué)習(xí)

    LX01Z-DG626穿孔機(jī)頂頭檢測(cè)儀采用深度學(xué)習(xí)技術(shù),能夠?qū)崿F(xiàn)頂頭狀態(tài)的在線實(shí)時(shí)檢測(cè),頂頭丟失報(bào)警,頂頭異常狀態(tài)報(bào)警等功能,響應(yīng)迅速,異常狀態(tài)視頻回溯,檢測(cè)頂頭溫度,配備吹掃清潔系統(tǒng),維護(hù)周期長(zhǎng)
    發(fā)表于 12-22 14:33

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

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

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

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

    如何深度學(xué)習(xí)機(jī)器視覺的應(yīng)用場(chǎng)景

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

    如何在機(jī)器視覺中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

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

    深度學(xué)習(xí)對(duì)工業(yè)物聯(lián)網(wǎng)有哪些幫助

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

    自動(dòng)駕駛中Transformer大模型會(huì)取代深度學(xué)習(xí)嗎?

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

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

    “動(dòng)態(tài)共享庫” → 獲取HSP性能優(yōu)化Demo “應(yīng)用組件” → 學(xué)習(xí)Ability拆分技巧 最后說兩句 模塊設(shè)計(jì)就像搭積木,用對(duì)方法能讓開發(fā)效率翻倍!建議大家動(dòng)手試試: 小型應(yīng)用:?jiǎn)蜨AP
    發(fā)表于 06-12 16:17

    嵌入式AI技術(shù)之深度學(xué)習(xí):數(shù)據(jù)樣本預(yù)處理過程中使用合適的特征變換對(duì)深度學(xué)習(xí)的意義

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

    行業(yè)首創(chuàng):基于深度學(xué)習(xí)視覺平臺(tái)的AI驅(qū)動(dòng)輪胎檢測(cè)自動(dòng)

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

    IPC2221簡(jiǎn)略學(xué)習(xí)筆記

    關(guān)于IPC2221的學(xué)習(xí)筆記。
    發(fā)表于 03-14 18:07 ?10次下載

    在OpenVINO?工具套件的深度學(xué)習(xí)工作臺(tái)中無法導(dǎo)出INT8模型怎么解決?

    無法在 OpenVINO? 工具套件的深度學(xué)習(xí) (DL) 工作臺(tái)中導(dǎo)出 INT8 模型
    發(fā)表于 03-06 07:54

    如何排除深度學(xué)習(xí)工作臺(tái)上量化OpenVINO?的特定層?

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