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

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

0

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

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

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

本文為 AI 研習社編譯的技術博客,原標題 :

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

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

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

深度革命

但是,提升網(wǎng)絡的深度并不是簡單的將網(wǎng)絡層堆疊起來。深層網(wǎng)絡很難訓練的原因,是因為非常煩人的梯度消失問題——隨著梯度反向傳播回前面的網(wǎng)絡層,重復的乘積操作會使得梯度變得非常小。結果呢,隨著網(wǎng)絡越來越深,它的性能就變得飽和了,并開始迅速下降。

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

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

  殘差連接(Skip Connection)——ResNet的強項

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

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

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

可以寫成下面兩行代碼:

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

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

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

當 x 和 x_shortcut 是相同的形狀

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

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

X_shortcut 通過卷積單元

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

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

  為什么要跳過連接?  

這是個有趣的問題。我認為在這里跳過連接有兩個原因: 

  1. 他們通過允許梯度通過這條可選的捷徑來緩解梯度消失的問題

  2. 它們允許模型學習一個恒等函數(shù),該函數(shù)確保高層的性能至少與低層一樣好,而不是更差。

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

  測試我們構建的ResNet模型  

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

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

ResNet-50模型 

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

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

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

符號數(shù)據(jù)集 

我們的ResNet-50經(jīng)過25個階段的訓練,測試精度達到86%。不錯! 

  在Keras中用預訓練庫構建ResNet

我喜歡自己編寫ResNet模型,因為它讓我更好地理解了我經(jīng)常在與圖像分類,對象定位,分割等相關的許多遷移學習任務中使用的網(wǎng)絡。

但是,對于更為常用的做法,在Keras中預訓練的ResNet-50模型更快。Keras擁有許多這些骨干模型,其庫中提供了Imagenet權重。

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

Keras 預訓練的模型

我上傳了一個Notebook放在Github上,使用的是Keras去加載預訓練的模型ResNet-50。你可以用一行的代碼來加載這個模型:

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

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

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

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

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

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

  總結

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

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

  • 你可以使用Keras加載預訓練的ResNet-50模型或者使用我分享的代碼來自己編寫ResNet模型。

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

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

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

  參考

  • DeepLearning.AI

  • Keras

  • ReNet Paper

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

點擊理解并實現(xiàn) ResNet(Keras)即可訪問:

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

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

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


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

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

分享:
相關文章

知情人士

AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說