丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給楊文
發(fā)送

0

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

本文作者: 楊文 2018-02-28 11:54
導(dǎo)語(yǔ):CS231n 課后作業(yè)第二講 : Assignment 2

雷鋒網(wǎng)AI研習(xí)社按:CS231n是斯坦福大學(xué)開(kāi)設(shè)的計(jì)算機(jī)視覺(jué)與深度學(xué)習(xí)的入門(mén)課程,授課內(nèi)容在國(guó)內(nèi)外頗受好評(píng)。其配套的課后作業(yè)質(zhì)量也頗高,因此雷鋒網(wǎng)AI研習(xí)社在近期的線上公開(kāi)課上請(qǐng)來(lái)了一位技術(shù)大牛為大家來(lái)講解這門(mén)課的配套作業(yè)。

本文根據(jù)AI研習(xí)社公開(kāi)課上的直播視頻內(nèi)容整理而成,主要介紹CS231n 課后作業(yè)第二套Assignment 2的完成思路與重點(diǎn)部分代碼實(shí)現(xiàn)。如果你還沒(méi)開(kāi)始聽(tīng)CS231n,可直接點(diǎn)擊課程鏈接觀看回放視頻。

王煦中,CS碩士,主要研究方向?yàn)樽匀徽Z(yǔ)言處理與深度學(xué)習(xí)。知乎專(zhuān)欄喵神大人的深度工坊(http://t.cn/RTc9wfy)作者,日語(yǔ)及ACGN愛(ài)好者。

分享主題:CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))作業(yè)鏈接:https://github.com/Observerspy/CS231n

分享提綱:

Part 1 Fully-connected Neural Network 

Part 2 Batch Normalization

Part 3 Dropout

Part 4 Convolutional Networks

Part 5 Tensorflow on CIFAR-10

第一部分分享主要是全連接神經(jīng)網(wǎng)絡(luò),這里主要是對(duì)代碼進(jìn)行模塊化,把每一層都抽象出來(lái),分別實(shí)現(xiàn)每一層的前向和反向部分,實(shí)現(xiàn)多層神經(jīng)網(wǎng)絡(luò)。第二和第三部分講的是神經(jīng)網(wǎng)絡(luò)中兩個(gè)的重要技巧,對(duì)網(wǎng)絡(luò)訓(xùn)練有很大的提升。本次作業(yè)中比較難的部分是卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn),包括正向和反向的推導(dǎo)過(guò)程。

第一個(gè)部分是對(duì)代碼的模塊化處理,實(shí)現(xiàn)從兩層到多層神經(jīng)網(wǎng)絡(luò)。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

關(guān)于Update rules

第一個(gè)改變是加入了動(dòng)量更新,也就是慣性。第二個(gè)是RMSProp(自適應(yīng)學(xué)習(xí)率),第三個(gè)是Adam(兩者結(jié)合),其實(shí)是上面兩個(gè)方法的結(jié)合,如果拿不準(zhǔn)使用哪個(gè)方法,就用Adam。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

為什么需要BN(Batch Normalization )

傳統(tǒng)機(jī)器學(xué)習(xí)往往需要對(duì)輸入數(shù)據(jù)做一個(gè)歸一化,通常使用的是零均值和方差歸一,這樣會(huì)保證輸入的數(shù)據(jù)特征會(huì)有比較好的分布,使得算法可以比好好的學(xué)習(xí)。對(duì)于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),使用BN使得每一層分布都保持在良好范圍內(nèi)。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

BN的原理

在求均值,求方差,歸一化這三步做完之后,每一層的數(shù)據(jù)分布都是標(biāo)準(zhǔn)正太分布,導(dǎo)致其完全學(xué)習(xí)不到輸入數(shù)據(jù)的特征。BN第四步中最關(guān)鍵的是兩個(gè)參數(shù),這兩個(gè)參數(shù)對(duì)歸一化后的分母進(jìn)行縮放和平移,通過(guò)網(wǎng)絡(luò)自己學(xué)習(xí)平移和縮放來(lái)保留一定的特征。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

訓(xùn)練過(guò)程

前向就是計(jì)算minibatch的均值和方差,然后對(duì)minibatch做normalize和scale、shift。測(cè)試的時(shí)候沒(méi)有minibatch,通過(guò)使用基于momentum的指數(shù)衰減,從而估計(jì)出均值和方差。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

反向過(guò)程

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

BN的作用

可以有效減緩過(guò)擬合,減小不好的初始化影響,可以用大一點(diǎn)的學(xué)習(xí)率。通常放在激勵(lì)函數(shù)前效果好一點(diǎn)。

Dropout 原理

訓(xùn)練時(shí)以概率P保留神經(jīng)元,測(cè)試時(shí)所有神經(jīng)元都參與。通常在測(cè)試的時(shí)候使用inverted dropout多移除一個(gè)p保證訓(xùn)練預(yù)測(cè)分布的統(tǒng)一。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

Dropout的作用

可以有效緩解過(guò)擬合,通常dropout放在激勵(lì)函數(shù)的后面或者全連接層后。

接下里來(lái)看怎么實(shí)現(xiàn)一個(gè)卷積神經(jīng)網(wǎng)絡(luò)

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

卷積神經(jīng)網(wǎng)絡(luò)通常有三個(gè)單元結(jié)構(gòu),分別是卷積核,激活函數(shù),池化層。先看卷積核,首先明確輸入x和卷積核的形狀(數(shù)量,通道,高,寬)。

卷積核

這里的卷積和通信原理里的卷積還是稍有區(qū)別的,在這里其實(shí)只是卷積核和相應(yīng)的區(qū)域進(jìn)行元素乘,然后求和,課程官網(wǎng)給的說(shuō)明十分形象生動(dòng)。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

也就是每個(gè)卷積核分別在每個(gè)通道上和對(duì)應(yīng)區(qū)域進(jìn)行元素乘,然后求和,對(duì)應(yīng)圖中:(-3(通道1元素乘后求和) + -1(通道2元素乘后求和) + 0 (通道3元素乘后求和))(三個(gè)通道求和) + 1(bias_0) = -3(out的第一個(gè)格子里的值)

所以,關(guān)鍵問(wèn)題就是根據(jù)步長(zhǎng)如何確定x對(duì)應(yīng)區(qū)域,這里需要對(duì)Hnew(下標(biāo)i)和Wnew(下標(biāo)j)進(jìn)行雙循環(huán)。選好區(qū)域直接和每個(gè)卷積(下標(biāo)k)核作元素乘就行了,注意sum的時(shí)候我們其實(shí)是在(C, H, W)上作的,因此axis=(1, 2, 3)。這時(shí)候一個(gè)輸出out[:, k , i, j]就計(jì)算好了。

所以上述一共套了i, j ,k三層循環(huán),循環(huán)完畢后out再加上bias就行了。注意b的形狀(F,),因此要先把b擴(kuò)展成和out一樣的形狀:b[None, :, None, None](None相當(dāng)于np.newaxis)

以上就是前向計(jì)算,接下來(lái)是反向計(jì)算。

反向計(jì)算首先明確我們要求什么。求dx,dw和db。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

卷積核的三個(gè)導(dǎo)數(shù)具體的求解過(guò)程,請(qǐng)關(guān)注AI慕課學(xué)院視頻回放。

池化層

pooling同樣有步長(zhǎng),確定輸出形狀的公式,計(jì)算輸出形狀并初始化,max pooling顧名思義就是取這個(gè)pooling大小區(qū)域內(nèi)的max值。注意axis=(2, 3)。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

反向和ReLU、DropOut是類(lèi)似的,也就是說(shuō)只有剛才前向通過(guò)的才允許繼續(xù)傳遞梯度。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

max_mask形狀是(HH, WW),為了和x_padded_mask形狀對(duì)應(yīng)也要擴(kuò)展。然后dout和這個(gè)temp_binary_mask元素乘即可。同樣注意dout是由i,j確定的,因此形狀需要擴(kuò)展。

以前我們做的BN形狀是(N, D),這里不過(guò)是將(N, C, H, W)reshape為(N*H*W, C)。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

最后進(jìn)入TensorFlow

這里強(qiáng)調(diào)一點(diǎn),在使用BN時(shí)請(qǐng)務(wù)必注意:在你的優(yōu)化器上套上下面圖中的兩行代碼,另外需要注意tf.layers.batch_normalization()中的is_training(是一個(gè)tf.placeholder)在訓(xùn)練和測(cè)試時(shí)的設(shè)置,如果要使用dropout也是類(lèi)似的。CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

以上就是本次的課后作業(yè)指導(dǎo)分享。

雷鋒網(wǎng)AI慕課學(xué)院提供本次視頻回放,歡迎觀看。

微信公眾號(hào):AI研習(xí)社(ID: okweiwu)定期邀請(qǐng)各路大神直播分享,關(guān)注后第一時(shí)間與嘉賓直播互動(dòng)。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

CS231n 課后作業(yè)第二講 : Assignment 2(含代碼實(shí)現(xiàn))| 分享總結(jié)

分享:
相關(guān)文章

編輯&記者

AI科技評(píng)論員,微信:yeohandwin
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)