解密卷積神經網路!

人工智慧頻道發表於2018-11-06

簡史

解密卷積神經網路!

卷積神經網路

在過去的十年裡,計算機視覺領域取得的進步是前所未有的。機器現在可以識別影片中的影像或某一幀,準確率(98%)超過人類(97%)。之所以有這麼大的突破,就是得益於對人腦的研究。

當時,神經學家正在對貓進行實驗,他們發現影像中相似的部分會導致貓大腦中相似的部分變得活躍。換句話說,當一隻貓看著圓圈時,大腦中的α就被啟用了。當它觀察正方形時,大腦中的β區被啟用。他們的發現得出結論,動物的大腦包含一個神經元區,該區域對影像的特定特徵作出反應,即它們透過大腦中神經元的分層結構來感知環境。每一幅影像在深入大腦之前都要經過某種特徵提取器。

受大腦功能的啟發,數學家們聚集在一起,建立一個系統來模擬不同神經元群對不同影像的感知,並相互交流以形成更大的影像。

特徵提取器

他們將神經元群被啟用的想法具體化為多維矩陣表示特定特徵集的檢測器的數學概念,並提供了特定的輸入。其中,代表特定特徵的探測器,又被稱為濾波器或核。每一個這樣的濾波器都將用於檢測影像中特定的東西,例如用於檢測邊緣的濾波器。這些學習到的特性將透過另一組過濾器被傳遞,這些過濾器被設計用來檢測更高階別的特性,例如眼睛、鼻子等。

解密卷積神經網路!

用Laplacian濾波器卷積影像檢測邊緣

從數學上講,我們將對給定的輸入影像(以畫素強度矩陣表示)和濾波器進行卷積運算,生成所謂的特徵圖。這個特徵對映將作為另一層過濾器的輸入。

為什麼是卷積?

卷積是一個網路試圖透過參考過去所學的內容來標記輸入訊號的過程。如果輸入訊號與之前看到的貓的影像類似,那麼"貓"作為參考訊號將與輸入訊號進行卷積或混合。然後將輸出訊號傳遞到下一層(這裡,輸入訊號是以RGB畫素強度表示輸入影像的三維表示,而"貓"作為參考訊號是識別貓類的核心)。

解密卷積神經網路!

影像與濾波器的卷積運算

卷積運算的一個很好的性質是它不會輕易發生改變。這意味著每個卷積濾波器都代表了特定的特徵集。例如眼睛,耳朵等。CNN演算法對特徵集的學習構成的參考結果,例如貓。需要補充的是,輸出訊號的強度並不取決於特徵的位置,而僅僅取決於特徵是否存在。因此,貓可以坐在不同的位置,而CNN演算法仍然能夠識別它。

透過追蹤大腦的生物功能所形成的軌跡,我們能夠建立出特徵提取所需的數學儀器。然而,在瞭解到要跟蹤的幾何形狀複雜性,以及需要分析的層次和特徵的總數之後,我們會意識到我們沒有足夠的記憶體來儲存所有的資料。即使是處理這一切所需的計算能力也會隨著特性的數量呈指數級增長。很快,我們就不得不求助於一種被稱為"池"的技術來解決當前我們的困境。它的核心思想很簡單。

如果一個區域包含一個極具代表性的特性,我們可以避免在該區域中搜尋其他特性。

解密卷積神經網路!

最大池的演示

這樣做,除了節省不必要的記憶體並節省計算能力外,還有助於消除影像中的噪聲。

全連線層

到目前為止我們做的還不錯,但是如果網路最終只檢測到影像中的一組特徵,那麼它有什麼用呢?我們需要一種方法,使網路能夠將給定的影像進行分類。這就是對傳統神經網路的一種應用。特別是,我們可以有一個全連線層,從先前的圖層所檢測到的特徵對映到我們所擁有的分類標籤的數量。最後一層將為輸出類別中的每個類分配機率。基於這些輸出機率,我們最終可以對影像做出分類。

解密卷積神經網路!

全連線層

最後的框架

剩下的唯一一件事就是把所有這些學到的概念進行整理合併,行成我們稱之為的卷積神經網路,又名CNN。本質上,CNN由一系列卷積層和池化層組成,這些層有選擇性的組合在一起,生成一個特徵圖,然後將這個圖反饋給全連線層,以生成類的機率。返回錯誤的輸出,我們將能夠進行更好的訓練以生成準確的結果。

現在,從功能角度來讓我們深入瞭解一下CNN是如何工作的。

卷積神經網路

解密卷積神經網路!


卷積層

卷積層是CNN的主要組成部分。每個這樣的層由一組獨立的濾波器組成,每個濾波器在給定的影像中尋找不同的特徵集。

解密卷積神經網路!

卷積運算

從數學上講,我們取一個固定大小的濾波器,並在完整的影像上滑動,在濾波器和輸入影像塊之間做點積。這個點積的結果將是一個標量,它會進入最終的特徵對映。然後我們向右滑動過濾器,執行相同的操作,並將結果新增到特徵圖中。在將完整的影像與過濾器進行卷積後,我們最終得到一個表示不同特徵集的特徵對映,該特徵集將作為下一層的輸入。

步長

濾波器移動的量就是步長。在上面的圖片中,我們的滑動濾波器係數是1。這可能不是我們一直需要的。使用步長的大小跟相鄰的畫素高度相關(特別是在最底層)。因此,透過使用適當的步長來減小輸出的大小是有意義的。然而,一個大的步長可能會導致資訊的高度損失。因此,我們在選擇步長時必須小心。

解密卷積神經網路!

步長為2

填充

解密卷積神經網路!

對某一單層進行填充

步長的一個不受歡迎的理由是隨著我們不斷地進行卷積,特徵圖的大小會隨之減小。這可能不是我們想要的結果。因為收縮也意味著資訊損失。想要了解為什麼會出現這種情況,那請注意應用於中間單元格和角落單元格的過濾次數的差異。顯然,來自中間單元格的資訊比邊緣單元格的資訊更重要。為了保留早期層內的有用資訊,我們可以用0層包圍給定矩陣。

引數共享

為什麼CNN已經有了一個很好的深層神經網路。有趣的是,如果我們使用深度神經網路來進行影像分類,每一層的引數數將是CNN的數千倍。

解密卷積神經網路!

在CNN共享引數


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2218850/,如需轉載,請註明出處,否則將追究法律責任。

相關文章