在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

人工智能實(shí)訓(xùn)營(yíng) ? 2018-08-24 18:31 ? 次閱讀

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

廢話(huà)少說(shuō),咱們單刀直入正題。究竟啥是 dropout ? dropout 是指在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過(guò)程中,對(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ò)過(guò)擬合。所以,從本質(zhì)上而言,dropout 也是一種神經(jīng)網(wǎng)絡(luò)的正則化方法。

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

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

所以說(shuō),總體而言,dropout 的功能類(lèi)似于 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é)來(lái)說(shuō)就是如果你擔(dān)心某些層所含神經(jīng)元較多或者比其他層更容易發(fā)生過(guò)擬合,我們可以將該層的失活概率設(shè)置的更高一些。

說(shuō)了這么多,總算大致把 dropout 說(shuō)明白了。那 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í)際編程中就沒(méi)說(shuō)的這么容易了,我們需要對(duì)整個(gè)神經(jīng)網(wǎng)絡(luò)的計(jì)算過(guò)程進(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 的分類(lèi)效果如下所示:


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

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


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

    關(guān)注

    1792

    文章

    47436

    瀏覽量

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

    關(guān)注

    66

    文章

    8425

    瀏覽量

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

    關(guān)注

    73

    文章

    5508

    瀏覽量

    121295
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NPU在深度學(xué)習(xí)中的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其核心驅(qū)動(dòng)力之一,已經(jīng)在眾多領(lǐng)域展現(xiàn)出了巨大的潛力和價(jià)值。NPU(Neural Processing Unit,神經(jīng)網(wǎng)絡(luò)處理單元)是專(zhuān)門(mén)為深度學(xué)習(xí)
    的頭像 發(fā)表于 11-14 15:17 ?695次閱讀

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU在深度學(xué)習(xí)中的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識(shí)別 圖像識(shí)別是深度學(xué)習(xí)
    的頭像 發(fā)表于 10-27 11:13 ?416次閱讀

    FPGA加速深度學(xué)習(xí)模型的案例

    :DE5Net_Conv_Accelerator 應(yīng)用場(chǎng)景 :面向深度學(xué)習(xí)的開(kāi)源項(xiàng)目,實(shí)現(xiàn)了AlexNet的第一層卷積運(yùn)算加速。 技術(shù)特點(diǎn) : 采用了Verilog語(yǔ)言進(jìn)行編程,與PCIe接口相集成,可以直接插入到
    的頭像 發(fā)表于 10-25 09:22 ?266次閱讀

    AI大模型與深度學(xué)習(xí)的關(guān)系

    人類(lèi)的學(xué)習(xí)過(guò)程,實(shí)現(xiàn)對(duì)復(fù)雜數(shù)據(jù)的學(xué)習(xí)和識(shí)別。AI大模型則是指模型的參數(shù)數(shù)量巨大,需要龐大的計(jì)算資源來(lái)進(jìn)行訓(xùn)練和推理。深度學(xué)習(xí)算法為AI大模型提供了核心的技術(shù)支撐,使得大模型能夠更好地?cái)M
    的頭像 發(fā)表于 10-23 15:25 ?930次閱讀

    FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?

    的發(fā)展前景較為廣闊,但也面臨一些挑戰(zhàn)。以下是一些關(guān)于 FPGA 在深度學(xué)習(xí)中應(yīng)用前景的觀(guān)點(diǎn),僅供參考: ? 優(yōu)勢(shì)方面: ? 高度定制的計(jì)算架構(gòu):FPGA 可以根據(jù)深度
    發(fā)表于 09-27 20:53

    深度學(xué)習(xí)模型中的過(guò)擬合與正則

    測(cè)試數(shù)據(jù)或新數(shù)據(jù)上表現(xiàn)不佳的現(xiàn)象。為了解決這個(gè)問(wèn)題,正則(Regularization)技術(shù)應(yīng)運(yùn)而生,成為深度學(xué)習(xí)中不可或缺的一部分。本文將從過(guò)擬合的原因、表現(xiàn)、
    的頭像 發(fā)表于 07-09 15:56 ?1020次閱讀

    深度學(xué)習(xí)中的時(shí)間序列分類(lèi)方法

    時(shí)間序列分類(lèi)(Time Series Classification, TSC)是機(jī)器學(xué)習(xí)深度學(xué)習(xí)領(lǐng)域的重要任務(wù)之一,廣泛應(yīng)用于人體活動(dòng)識(shí)別、系統(tǒng)監(jiān)測(cè)、金融預(yù)測(cè)、醫(yī)療診斷等多個(gè)領(lǐng)域。隨著深度
    的頭像 發(fā)表于 07-09 15:54 ?1038次閱讀

    深度學(xué)習(xí)與nlp的區(qū)別在哪

    深度學(xué)習(xí)和自然語(yǔ)言處理(NLP)是計(jì)算機(jī)科學(xué)領(lǐng)域中兩個(gè)非常重要的研究方向。它們之間既有聯(lián)系,也有區(qū)別。本文將介紹深度學(xué)習(xí)與NLP的區(qū)別。 深度
    的頭像 發(fā)表于 07-05 09:47 ?977次閱讀

    深度神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)方法

    的構(gòu)建,還包括激活函數(shù)的選擇、優(yōu)化算法的應(yīng)用、正則技術(shù)的引入等多個(gè)方面。本文將從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)、關(guān)鍵組件選擇、優(yōu)化與正則策略、以及未來(lái)發(fā)展趨勢(shì)四個(gè)方面詳細(xì)探討
    的頭像 發(fā)表于 07-04 13:13 ?492次閱讀

    深度學(xué)習(xí)的模型優(yōu)化與調(diào)試方法

    深度學(xué)習(xí)模型在訓(xùn)練過(guò)程中,往往會(huì)遇到各種問(wèn)題和挑戰(zhàn),如過(guò)擬合、欠擬合、梯度消失或爆炸等。因此,對(duì)深度學(xué)習(xí)模型進(jìn)行優(yōu)化與調(diào)試是確保其性能優(yōu)越的關(guān)鍵步驟。本文將從數(shù)據(jù)預(yù)處理、模型設(shè)計(jì)、超參
    的頭像 發(fā)表于 07-01 11:41 ?868次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對(duì)比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)深度學(xué)習(xí)無(wú)疑是兩大核心驅(qū)動(dòng)力。它們各自以其獨(dú)特的方式推動(dòng)著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來(lái)了革命性的變化。然而,盡管它們都屬于機(jī)器學(xué)習(xí)的范疇,但
    的頭像 發(fā)表于 07-01 11:40 ?1433次閱讀

    深度解析深度學(xué)習(xí)下的語(yǔ)義SLAM

    隨著深度學(xué)習(xí)技術(shù)的興起,計(jì)算機(jī)視覺(jué)的許多傳統(tǒng)領(lǐng)域都取得了突破性進(jìn)展,例如目標(biāo)的檢測(cè)、識(shí)別和分類(lèi)等領(lǐng)域。近年來(lái),研究人員開(kāi)始在視覺(jué)SLAM算法中引入深度學(xué)習(xí)技術(shù),使得
    發(fā)表于 04-23 17:18 ?1321次閱讀
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>下的語(yǔ)義SLAM

    為什么深度學(xué)習(xí)的效果更好?

    導(dǎo)讀深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子集,已成為人工智能領(lǐng)域的一項(xiàng)變革性技術(shù),在從計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理到自動(dòng)駕駛汽車(chē)等廣泛的應(yīng)用中取得了顯著的成功。深度
    的頭像 發(fā)表于 03-09 08:26 ?642次閱讀
    為什么<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的效果更好?

    allegro學(xué)習(xí)筆記

    電子發(fā)燒友網(wǎng)站提供《allegro學(xué)習(xí)筆記.zip》資料免費(fèi)下載
    發(fā)表于 02-29 09:14 ?1次下載

    什么是深度學(xué)習(xí)?機(jī)器學(xué)習(xí)深度學(xué)習(xí)的主要差異

    2016年AlphaGo 擊敗韓國(guó)圍棋冠軍李世石,在媒體報(bào)道中,曾多次提及“深度學(xué)習(xí)”這個(gè)概念。
    的頭像 發(fā)表于 01-15 10:31 ?1104次閱讀
    什么是<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>?機(jī)器<b class='flag-5'>學(xué)習(xí)</b>和<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>的主要差異
    主站蜘蛛池模板: 99色在线视频| 五月婷婷在线观看视频| 色91在线| 好爽好黄的视频| 97爱sese| 国产精品网站在线进入| 天天操天天干天天爱| 一级片视频在线观看| 国产高清在线看| 国内一国产农村妇女一级毛片| 美女骚网站| 男人天堂网在线观看| 色香蕉在线观看网站| 亚洲综合情| 99久久精品费精品国产一区二| 性感美女福利视频| 亚洲先锋资源| 亚洲欧洲一区二区三区在线观看| 美国一区二区三区| 欧美亚洲综合另类成人| 亚洲啪啪网站| 欧美黄免在线播放| 女人的逼毛片| sss欧美一区二区三区| 四虎中文| 色操网| 久久午夜宅男免费网站| 久久久久久久蜜桃| 成人淫片| 99青草| 国模娜娜扒开嫩木耳| 国产伦精品一区二区三区| 婷婷成人丁香五月综合激情| 成人免费黄色网| 97capcom超频在线| 欧美亚洲啪啪| 在线精品91青草国产在线观看| 亚洲人成亚洲人成在线观看| 五月婷婷色综合| 免费看一毛一级毛片视频| 精品视频卡1卡2卡3|