您好,登錄后才能下訂單哦!
簡史
卷積神經網絡
在過去的十年里,計算機視覺領域取得的進步是前所未有的。機器現在可以識別視頻中的圖像或某一幀,準確率(98%)超過人類(97%)。之所以有這么大的突破,就是得益于對人腦的研究。
當時,神經學家正在對貓進行實驗,他們發現圖像中相似的部分會導致貓大腦中相似的部分變得活躍。換句話說,當一只貓看著圓圈時,大腦中的α就被激活了。當它觀察正方形時,大腦中的β區被激活。他們的發現得出結論,動物的大腦包含一個神經元區,該區域對圖像的特定特征作出反應,即它們通過大腦中神經元的分層結構來感知環境。每一幅圖像在深入大腦之前都要經過某種特征提取器。
受大腦功能的啟發,數學家們聚集在一起,創建一個系統來模擬不同神經元群對不同圖像的感知,并相互交流以形成更大的圖像。
特征提取器
他們將神經元群被激活的想法具體化為多維矩陣表示特定特征集的檢測器的數學概念,并提供了特定的輸入。其中,代表特定特征的探測器,又被稱為濾波器或核。每一個這樣的濾波器都將用于檢測圖像中特定的東西,例如用于檢測邊緣的濾波器。這些學習到的特性將通過另一組過濾器被傳遞,這些過濾器被設計用來檢測更高級別的特性,例如眼睛、鼻子等。
用Laplacian濾波器卷積圖像檢測邊緣
從數學上講,我們將對給定的輸入圖像(以像素強度矩陣表示)和濾波器進行卷積運算,生成所謂的特征圖。這個特征映射將作為另一層過濾器的輸入。
為什么是卷積?
卷積是一個網絡試圖通過參考過去所學的內容來標記輸入信號的過程。如果輸入信號與之前看到的貓的圖像類似,那么"貓"作為參考信號將與輸入信號進行卷積或混合。然后將輸出信號傳遞到下一層(這里,輸入信號是以RGB像素強度表示輸入圖像的三維表示,而"貓"作為參考信號是識別貓類的核心)。
圖像與濾波器的卷積運算
卷積運算的一個很好的性質是它不會輕易發生改變。這意味著每個卷積濾波器都代表了特定的特征集。例如眼睛,耳朵等。CNN算法對特征集的學習構成的參考結果,例如貓。需要補充的是,輸出信號的強度并不取決于特征的位置,而僅僅取決于特征是否存在。因此,貓可以坐在不同的位置,而CNN算法仍然能夠識別它。
池
通過追蹤大腦的生物功能所形成的軌跡,我們能夠建立出特征提取所需的數學儀器。然而,在了解到要跟蹤的幾何形狀復雜性,以及需要分析的層次和特征的總數之后,我們會意識到我們沒有足夠的內存來保存所有的數據。即使是處理這一切所需的計算能力也會隨著特性的數量呈指數級增長。很快,我們就不得不求助于一種被稱為"池"的技術來解決當前我們的困境。它的核心思想很簡單。
如果一個區域包含一個極具代表性的特性,我們可以避免在該區域中搜索其他特性。
最大池的演示
這樣做,除了節省不必要的內存并節省計算能力外,還有助于消除圖像中的噪聲。
全連接層
到目前為止我們做的還不錯,但是如果網絡最終只檢測到圖像中的一組特征,那么它有什么用呢?我們需要一種方法,使網絡能夠將給定的圖像進行分類。這就是對傳統神經網絡的一種應用。特別是,我們可以有一個全連接層,從先前的圖層所檢測到的特征映射到我們所擁有的分類標簽的數量。最后一層將為輸出類別中的每個類分配概率。基于這些輸出概率,我們最終可以對圖像做出分類。
全連接層
最后的框架
剩下的唯一一件事就是把所有這些學到的概念進行整理合并,行成我們稱之為的卷積神經網絡,又名CNN。本質上,CNN由一系列卷積層和池化層組成,這些層有選擇性的組合在一起,生成一個特征圖,然后將這個圖反饋給全連接層,以生成類的概率。返回錯誤的輸出,我們將能夠進行更好的訓練以生成準確的結果。
現在,從功能角度來讓我們深入了解一下CNN是如何工作的。
卷積神經網絡
卷積層
卷積層是CNN的主要組成部分。每個這樣的層由一組獨立的濾波器組成,每個濾波器在給定的圖像中尋找不同的特征集。
卷積運算
從數學上講,我們取一個固定大小的濾波器,并在完整的圖像上滑動,在濾波器和輸入圖像塊之間做點積。這個點積的結果將是一個標量,它會進入最終的特征映射。然后我們向右滑動過濾器,執行相同的操作,并將結果添加到特征圖中。在將完整的圖像與過濾器進行卷積后,我們最終得到一個表示不同特征集的特征映射,該特征集將作為下一層的輸入。
步長
濾波器移動的量就是步長。在上面的圖片中,我們的滑動濾波器系數是1。這可能不是我們一直需要的。使用步長的大小跟相鄰的像素高度相關(特別是在最底層)。因此,通過使用適當的步長來減小輸出的大小是有意義的。然而,一個大的步長可能會導致信息的高度損失。因此,我們在選擇步長時必須小心。
步長為2
填充
對某一單層進行填充
步長的一個不受歡迎的理由是隨著我們不斷地進行卷積,特征圖的大小會隨之減小。這可能不是我們想要的結果。因為收縮也意味著信息損失。想要了解為什么會出現這種情況,那請注意應用于中間單元格和角落單元格的過濾次數的差異。顯然,來自中間單元格的信息比邊緣單元格的信息更重要。為了保留早期層內的有用信息,我們可以用0層包圍給定矩陣。
參數共享
為什么CNN已經有了一個很好的深層神經網絡。有趣的是,如果我們使用深度神經網絡來進行圖像分類,每一層的參數數將是CNN的數千倍。
在CNN共享參數
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。