<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于轉(zhuǎn)移學習的圖像識別

          共 2441字,需瀏覽 5分鐘

           ·

          2020-11-01 20:10

          點擊上方小白學視覺”,選擇加"星標"或“置頂

          重磅干貨,第一時間送達

          01.前言

          們希望編寫一個簡單的算法用來識別狗狗的品種,假設我們想知道這只狗是什么品種。



          算法該如何分辨這只狗可能屬于哪個品種?當然小伙伴們可以訓練自己的卷積神經(jīng)網(wǎng)絡來對這張圖片進行分類,但是通常情況下我們既沒有GPU的計算能力,也沒有時間去訓練自己的神經(jīng)網(wǎng)絡。但是,全世界的各個研究團隊(例如牛津,谷歌,微軟)都擁有足夠的計算能力,時間和金錢,而且以前可能已經(jīng)解決過一些類似的問題。我們該如何利用他們已經(jīng)完成的工作呢?現(xiàn)在來讓我們了解一個重要的概念——轉(zhuǎn)移學習。

          02.卷積神經(jīng)網(wǎng)絡

          在此之前我們先簡要介紹一下什么是卷積神經(jīng)網(wǎng)絡。



          卷積神經(jīng)網(wǎng)絡(CNN)是一種用于圖像分類的神經(jīng)網(wǎng)絡架構(gòu),通常包含卷積層和池化層兩種類型。卷積層接受輸入圖像并將其抽象為簡單的特征圖,池化層則是為了降低特征圖的維數(shù)。這兩層的目的是簡化尋找特征的過程,并減少過度擬合的數(shù)量。典型的CNN架構(gòu)如下所示:


          03.訓練自己的CNN模型

          如果我們要使用預訓練的模型,那么知道什么是卷積層和池化層有什么意義呢?讓我們先看看訓練CNN需要做什么。



          我們首先將添加了幾個卷積層和池化層,并在最后加上了一個全連接層。選擇softmax作為激活函數(shù)激活。我們希望該網(wǎng)絡可以判斷出圖片中狗狗最有可能的品種,但不幸的是它只有5%的測試集準確度,可以說非常不準確了。此外,經(jīng)過20次迭代后在驗證集上的平均損失約為4.5,已經(jīng)很高了。

          04.使用轉(zhuǎn)移學習邏輯

          這就是為什么要使用轉(zhuǎn)移學習,我們應該盡可能多地使用遷移學習,而不是構(gòu)建自己的體系結(jié)構(gòu)。轉(zhuǎn)移學習實際上是采用預先訓練的神經(jīng)網(wǎng)絡,對其進行定義,并將其用于自己的預測任務。


          如果我們要構(gòu)建一種預測狗的品種的算法一般會按照一下邏輯進行:所有圖片、所有動物、所有的狗以及特定犬種進行。因此如果我們已經(jīng)找到可以正確識別狗的模型,只需要在其之上添加一層來預測狗的品種就可以了,那我們該


          怎么操作呢??

          為了最大程度地利用轉(zhuǎn)移學習,我們需要仔細考慮轉(zhuǎn)移到模型中的“學習”。

          從預先訓練的模型中轉(zhuǎn)移學習Keras是一個基于Python的深度學習庫,已經(jīng)為我們編譯了多個訓練好了的模型。在本練習中,我們將研究兩種常見的預訓練模型:VGG16和Resnet50。我們可以將這些經(jīng)過預先訓練的模型導入環(huán)境,然后在該模型之上添加一層對133個犬種進行分類。總結(jié)一下,我們需要做的包括:

          1.選擇一個有很多狗狗的數(shù)據(jù)庫

          2.找到預先訓練過的模型對狗進行分類(例如VGG16和Resnet50)

          3.添加我們自己的自定義圖層以對狗的品種進行分類


          用于轉(zhuǎn)移學習的自定義層

          我們將使用三種基本架構(gòu),以對預訓練的模型進行微調(diào)。

          與所有這三種方法一樣,我們以全連接層和softmax激活函數(shù)結(jié)束。保證我們能夠預測133個犬種。


          方法1:具有損失的完全連接的層

          通過完全連接層,所有先前的節(jié)點(或感知)都連接到該層中的所有節(jié)點。這種類型的體系結(jié)構(gòu)用于典型的神經(jīng)網(wǎng)絡體系結(jié)構(gòu)(而不是CNN)。我們添加了額外的損失和密集層,以減少過度擬合。CNN首先使用卷積層的部分原因是為了避免這種過度擬合。


          方法2:全局平均池層

          全局平均池化層(GAP層)是一個池化層,通過它可以獲取上一層中連接的所有節(jié)點的平均值。這是減少網(wǎng)絡尺寸的標準CNN技術(shù)。


          方法3:具有損失的全局平均池

          在方法二之上,我們還希望添加退出層和密集層,以進一步減少過度擬合。

          評估預訓練模型和自定義層的性能

          為此,讓我們嘗試VGG16和Resnet50預先訓練的模型,并在頂部添加方法2的架構(gòu),看看會發(fā)生什么。我們將在每種CNN架構(gòu)的測試集上報告損失函數(shù)和準確性。損失函數(shù)——預測與實際結(jié)果相差多遠,預測值越大,模型擬合數(shù)據(jù)點的準確性越差。測試集的準確性——模型對測試集數(shù)據(jù)預測的準確性。


          VGG16 + GAP

          通過這種體系結(jié)構(gòu),我們發(fā)現(xiàn)測試集精度為55.0%,經(jīng)過60次迭代后平均損失約為7。此架構(gòu)比我們的訓練模型準確得多,但損失也更高。損耗較高時,這意味著該模型體系結(jié)構(gòu)的某些功能無法很好地捕獲,即高偏差。


          Resnet50 + GAP

          使用這種架構(gòu),我們發(fā)現(xiàn)測試集的準確度為81.9%,經(jīng)過50次迭代后平均損失約為1.0。這是對VGG16 + GAP的重大改進。但是,訓練和驗證集損失之間的差距更大,這意味著該模型可能會更多地擬合數(shù)據(jù),即高方差。我們之前提出了一個全連接層來進行測試。但是,看到所有模型的差異都很大。因此,讓我們嘗試進一步擴大尺寸,以減少過度擬合。


          Resnet50 + GAP + Dropout?

          使用這種架構(gòu),我們發(fā)現(xiàn)測試集的準確度為81.7%,經(jīng)過50次迭代后平均損失約為0.8。這與以前的體系結(jié)構(gòu)大致相同。

          回顧與展望

          通過轉(zhuǎn)移學習,我們在CNN架構(gòu)上的準確度從5%提高到82%。最重要的是,我們花費了很少的時間來構(gòu)建CNN架構(gòu),并且使用的GPU功能也很少。

          使用預先訓練的模型大大的節(jié)省我們的時間。在此過程中,改進了識別狗狗的分類模型。但是,該模型仍然有過擬合的趨勢。

          代碼鏈接:https://github.com/kendricng/udacity-ds-capstone

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中国女人的生活毛片 | 99a片在线 | 亚洲天堂AV网站 | 色欲天香天天免费视频 | 欧美日韩综合 |