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

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

0

理解并實(shí)現(xiàn) ResNet(Keras)

本文作者: AI研習(xí)社-譯站 2019-06-05 14:38
導(dǎo)語(yǔ):ResNet 是殘差網(wǎng)絡(luò)(Residual Network)的縮寫,是一種作為許多計(jì)算機(jī)視覺任務(wù)主干的經(jīng)典神經(jīng)網(wǎng)絡(luò)。

理解并實(shí)現(xiàn) ResNet(Keras)

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :

Understanding and Coding a ResNet in Keras

作者 | Priya Dwivedi @ Deep Learning Analytics

翻譯 | linlh、通夜   編輯 | 鄧普斯?杰弗、Pita

原文鏈接:

https://towardsdatascience.com/understanding-and-coding-a-resnet-in-keras-446d7ff84d33

ResNet 是殘差網(wǎng)絡(luò)(Residual Network)的縮寫,是一種作為許多計(jì)算機(jī)視覺任務(wù)主干的經(jīng)典神經(jīng)網(wǎng)絡(luò)。這個(gè)模型是2015年ImageNet挑戰(zhàn)賽的獲勝者,ResNet最根本的突破在于它使得我們可以訓(xùn)練成功非常深的神經(jīng)網(wǎng)路,如150+層的網(wǎng)絡(luò)。在ResNet之前,由于梯度消失(vanishing gradients)的問(wèn)題,訓(xùn)練非常深的神經(jīng)網(wǎng)絡(luò)是非常困難的。

AlexNet,2012年ImageNet的獲勝者,這個(gè)模型就明顯開始關(guān)注解決僅有8個(gè)卷積層的深度學(xué)習(xí),VGG網(wǎng)絡(luò)有19層,Inception或者GoogleNet有22層,ResNet 152有152層。在這篇文章中,我們會(huì)編寫一個(gè)ResNet-50的網(wǎng)絡(luò),ResNet 152的小型版本,經(jīng)常在開始的時(shí)候用在遷移學(xué)習(xí)上。

理解并實(shí)現(xiàn) ResNet(Keras)

深度革命

但是,提升網(wǎng)絡(luò)的深度并不是簡(jiǎn)單的將網(wǎng)絡(luò)層堆疊起來(lái)。深層網(wǎng)絡(luò)很難訓(xùn)練的原因,是因?yàn)榉浅┤说奶荻认?wèn)題——隨著梯度反向傳播回前面的網(wǎng)絡(luò)層,重復(fù)的乘積操作會(huì)使得梯度變得非常小。結(jié)果呢,隨著網(wǎng)絡(luò)越來(lái)越深,它的性能就變得飽和了,并開始迅速下降。

我是在Andrew Ng的 DeepLearning.AI 課程上學(xué)習(xí)到關(guān)于編寫ResNet的內(nèi)容的,非常推薦大家觀看這個(gè)課程。

在我的Github repo上,我分享了兩個(gè)Jupyter Notebook,一個(gè)是如DeepLearning.AI中所述,從頭開始編碼ResNet,另一個(gè)在Keras中使用預(yù)訓(xùn)練的模型。希望你可以把代碼下載下來(lái),并自己試一試。

  殘差連接(Skip Connection)——ResNet的強(qiáng)項(xiàng)

ResNet是第一個(gè)提出殘差連接的概念。下面的圖闡述了殘差連接。左邊的圖演示了網(wǎng)絡(luò)層的堆疊,一層接著一層。在右邊的圖中,我們?nèi)匀豢戳酥熬W(wǎng)絡(luò)層的堆疊,但是我們還將原始的輸入添加到卷層單元的輸出。

理解并實(shí)現(xiàn) ResNet(Keras)

殘差連接示意圖 (來(lái)自 DeepLearning.AI)

可以寫成下面兩行代碼:

理解并實(shí)現(xiàn) ResNet(Keras)

代碼是非常簡(jiǎn)單,但是這里有一個(gè)非常重要的考慮因素——上面的X,X_shortcut是兩個(gè)矩陣,只有在他們是相同的形狀時(shí),你才可以相加。因此,如果卷積+批量規(guī)范(batch norm)操作以輸出形狀相同的方式完成,那么我們可以簡(jiǎn)單地添加它們,如下所示。

理解并實(shí)現(xiàn) ResNet(Keras)

當(dāng) x 和 x_shortcut 是相同的形狀

否則,x_shortcut通過(guò)選定的卷積層,使得它的輸出與卷積塊的輸出相同,如下所示:

理解并實(shí)現(xiàn) ResNet(Keras)

X_shortcut 通過(guò)卷積單元

在Github的Notebook上,identity_block 和convolution_block 兩個(gè)函數(shù)實(shí)現(xiàn)了上面的內(nèi)容。這些函數(shù)使用Keras來(lái)實(shí)現(xiàn)帶有ReLU激活函數(shù)的Convolution和Batch Norm層。殘差連接實(shí)現(xiàn)上就是這行代碼: X = Add()([X, X_shortcut])。

這里需要注意的一件重要的事情是殘差連接是應(yīng)用在ReLU激活函數(shù)之前,正如上圖所示。研究人員發(fā)現(xiàn)這樣可以得到最好的結(jié)果。

  為什么要跳過(guò)連接?  

這是個(gè)有趣的問(wèn)題。我認(rèn)為在這里跳過(guò)連接有兩個(gè)原因: 

  1. 他們通過(guò)允許梯度通過(guò)這條可選的捷徑來(lái)緩解梯度消失的問(wèn)題

  2. 它們?cè)试S模型學(xué)習(xí)一個(gè)恒等函數(shù),該函數(shù)確保高層的性能至少與低層一樣好,而不是更差。

事實(shí)上,由于ResNet跳過(guò)連接被用于更多的模型架構(gòu)中,比如全卷積網(wǎng)絡(luò)(FCN)和U-Net。它們用于將信息從模型中的較早層傳遞到較晚層。在這些體系結(jié)構(gòu)中,它們用于將信息從下采樣層傳遞到上采樣層。  

  測(cè)試我們構(gòu)建的ResNet模型  

然后將筆記本中編碼的恒等和卷積塊組合起來(lái),創(chuàng)建一個(gè)ResNet-50模型,其架構(gòu)如下: 

理解并實(shí)現(xiàn) ResNet(Keras)

ResNet-50模型 

ResNet-50模型由5個(gè)階段組成,每個(gè)階段都有一個(gè)卷積和恒等塊。每個(gè)卷積塊有3個(gè)卷積層每個(gè)單位塊也有3個(gè)卷積層。ResNet-50有超過(guò)2300萬(wàn)個(gè)可訓(xùn)練參數(shù)。

我已經(jīng)在我的Github repo中包含的signs數(shù)據(jù)集上測(cè)試了這個(gè)模型。這個(gè)數(shù)據(jù)集有對(duì)應(yīng)于6個(gè)類的手動(dòng)圖像。我們有1080張火車圖像和120張測(cè)試圖像。

理解并實(shí)現(xiàn) ResNet(Keras)

符號(hào)數(shù)據(jù)集 

我們的ResNet-50經(jīng)過(guò)25個(gè)階段的訓(xùn)練,測(cè)試精度達(dá)到86%。不錯(cuò)! 

  在Keras中用預(yù)訓(xùn)練庫(kù)構(gòu)建ResNet

我喜歡自己編寫ResNet模型,因?yàn)樗屛腋玫乩斫饬宋医?jīng)常在與圖像分類,對(duì)象定位,分割等相關(guān)的許多遷移學(xué)習(xí)任務(wù)中使用的網(wǎng)絡(luò)。

但是,對(duì)于更為常用的做法,在Keras中預(yù)訓(xùn)練的ResNet-50模型更快。Keras擁有許多這些骨干模型,其庫(kù)中提供了Imagenet權(quán)重。

理解并實(shí)現(xiàn) ResNet(Keras)

Keras 預(yù)訓(xùn)練的模型

我上傳了一個(gè)Notebook放在Github上,使用的是Keras去加載預(yù)訓(xùn)練的模型ResNet-50。你可以用一行的代碼來(lái)加載這個(gè)模型:

base_model = applications.resnet50.ResNet50(weights= None, include_top=False, input_shape= (img_height,img_width,3))

在這里weights=None,因?yàn)槲蚁胗秒S機(jī)權(quán)重初始化模型,就像我在ResNet-50 I編碼時(shí)所做的那樣?;蛘咭部梢约虞d預(yù)訓(xùn)練的ImageNet的權(quán)重。設(shè)置include_top=False,表示不包含原始模型中最后的池化層(pooling)和全連接層(fully connected)。我在ResNet50模型中添加了全局平均池化層(global average pooling)和密集輸出層(dense output)。

理解并實(shí)現(xiàn) ResNet(Keras)

從上面的可以看到,Keras提供非常方便的接口去加載預(yù)訓(xùn)練模型,但重要的是至少要對(duì)ResNet自己編碼一次,這樣你才能理解這個(gè)概念,并且可以將這種學(xué)習(xí)應(yīng)用到你正在創(chuàng)建的另一個(gè)新架構(gòu)中。

這個(gè)Keras ResNet模型在使用了Adam優(yōu)化器和0.0001的學(xué)習(xí)率,訓(xùn)練了100個(gè)epoch之后得到75%的正確率。這個(gè)正確率比我自己編碼的模型要低一些,我想這應(yīng)該和權(quán)重初始化有關(guān)。

Keras也提供了非常簡(jiǎn)單的數(shù)據(jù)增強(qiáng)(data augmentation)的接口,所以如果有機(jī)會(huì),在數(shù)據(jù)集上試試增強(qiáng),看看結(jié)果能不能得到更好的性能。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

  總結(jié)

  • ResNet是非常強(qiáng)大的骨干模型(backbone model),經(jīng)常在許多計(jì)算機(jī)視覺任務(wù)中使用

  • ResNet 使用殘差連接(skip connection)將較早的網(wǎng)絡(luò)層的輸出添加到更后面網(wǎng)絡(luò)層。這有助于緩解梯度消失的問(wèn)題

  • 你可以使用Keras加載預(yù)訓(xùn)練的ResNet-50模型或者使用我分享的代碼來(lái)自己編寫ResNet模型。

我有自己深度學(xué)習(xí)的咨詢工作,喜歡研究有趣的問(wèn)題。我?guī)椭S多初創(chuàng)公司部署基于AI的創(chuàng)新解決方案。 請(qǐng)?jiān)L問(wèn) http://deeplearninganalytics.org/查看我們。

你也可以在medium上查看我的其他文章:

https://medium.com/@priya.dwivedi

  參考

  • DeepLearning.AI

  • Keras

  • ReNet Paper

想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?

點(diǎn)擊理解并實(shí)現(xiàn) ResNet(Keras)即可訪問(wèn):

今日資源推薦:計(jì)算機(jī)視覺頂會(huì) CVPR 2019 即將于 6 月在美國(guó)長(zhǎng)灘召開,今年大會(huì)共收到超過(guò) 5165 篇論文投稿,最終收錄的論文為 1299 篇。隨著會(huì)議臨近,無(wú)論是學(xué)術(shù)界還是業(yè)界都迎來(lái)了一波 CVPR 2019 入選論文解讀熱潮。本論文集合從近 300 篇 CVPR 2019 Oral 論文精選了數(shù)十篇論文,領(lǐng)域包括人臉檢測(cè)、目標(biāo)檢測(cè)、手勢(shì)識(shí)別、機(jī)器人等熱門領(lǐng)域,供各位開發(fā)者和學(xué)術(shù)青年閱讀研究。

理解并實(shí)現(xiàn) ResNet(Keras)

https://ai.yanxishe.com/page/resourceDetail/819


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

理解并實(shí)現(xiàn) ResNet(Keras)

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

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?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ō)