0

我讀過一些關於卷積神經網絡的論文,發現幾乎所有的論文都將這些完全連接的層稱爲正常的CNN「頂層」。爲什麼我們稱CNN「頂層」中的完全連接圖層?

但是,正如大多數論文所顯示的那樣,典型的CNN具有自頂向下的結構,並且完全連接的層(通常跟着一個softmax分類器)被放置在網絡的底部。那麼,爲什麼我們稱他們爲「頂層」呢?這是一種慣例,還是我不知道的其他考慮因素?

回答

1

我認爲這只是一個味道的問題,但說「頂層」與神經網絡中「頭部」的概念相關。人們說「分類頭」和「迴歸頭」意味着神經網絡的輸出層(這個術語在tf.estimator.Estimator中使用,也參見一些討論herehere)。如果以這種方式看到它,那麼頭部之前的層是,而輸入層是底部。無論如何,當他們被稱爲「頂級」時,您應該仔細檢查特定圖層的含義。

0

有一個很好的理由將它們與其他層次區分開來,遠遠超出「約定」。

CNN有許多層次,每個層次都在不同的抽象層次上。它從非常簡單的形狀和邊緣開始,然後學習識別眼睛和其他複雜的功能。在典型的設置中,頂層將是一層或兩層深度完全連接的網絡。現在,重要的一點是:頂層權重最直接受標籤影響。這是有效地作出決定(或者更確切地說是產生可能性)某物是貓的層。

現在想象一下,你想建立自己的模型來識別可愛的貓,而不只是貓。如果你從頭開始,你必須提供大量的訓練實例,以便模型首先學會識別什麼是貓。通常情況下,您無法獲得大量的數據或足夠的處理能力。你可能會做什麼:

  1. 取一個現有的,表現良好的模型與已經學過的權重,例如, ImageNet。在那裏有一些了不起的,最先進的模型,訓練了數以百萬計的圖像。你幾乎無法擊敗ILSVRC比賽的優勝者。
  2. 刪除頂層。您對原始模型學到的所有標籤都不感興趣。
  3. 修復您借用的模型的權重。它已經非常擅長識別貓,你不想通過訓練來減重。
  4. 添加您自己的頂層並在可愛的貓咪上訓練模型。

背後的想法是,原始模型已經學會識別CNN圖層中的泛型特徵,並且可以重用這些特徵。頂層已經超越了通用,進入了訓練集中的特定部分 - 這些可以被丟棄。那裏沒有可愛的貓。

相關問題