深度學習卷積概述(1)

一、概述
卷積現在可能是深度學習中最重要的概念。正是靠着卷積和卷積神經網絡,深度學習才超越了幾乎其他所有的機器學習手段。在這篇文章中,我們將分解卷積操作的機制,逐步將其與標準神經網絡聯繫起來,探索它們是如何建立起強大的視覺層次結構,並最終成爲強大的圖像特徵提取器的。

二、什麼是卷積
你可以把卷積想象成一種混合信息的手段。想象一下裝滿信息的兩個桶,我們把它們倒入一個桶中並且通過某種規則攪拌攪拌。也就是說卷積是一種混合兩種信息的流程。
卷積也可以形式化地描述,事實上,它就是一種數學運算,跟減加乘除沒有本質的區別。雖然這種運算本身很複雜,但它非常有助於簡化更復雜的表達式。在物理和工程上,卷積被廣泛地用於化簡等式——等會兒簡單地形式化描述卷積之後——我們將把這些領域的思想和深度學習聯繫起來,以加深對卷積的理解。但現在我們先從實用的角度理解卷積。

我們如何對圖像應用卷積
當我們在圖像上應用卷積時,我們在兩個維度上執行卷積——水平和豎直方向。我們混合兩桶信息:第一桶是輸入的圖像,由三個矩陣構成——RGB 三通道,其中每個元素都是 0 到 255 之間的一個整數。第二個桶是卷積核(kernel),單個浮點數矩陣。可以將卷積核的大小和模式想象成一個攪拌圖像的方法。卷積核的輸出是一幅修改後的圖像,在深度學習中經常被稱作 feature map。對每個顏色通道都有一個 feature map。

在這裏插入圖片描述

邊緣檢測卷積核的效果
這是怎麼做到的呢,我們現在演示一下如何通過卷積來混合這兩種信息。一種方法是從輸入圖片中取出一個與卷積核大小相同的區塊——這裏假設圖片爲 100×100,卷積核大小爲 3×3,那麼我們取出的區塊大小就是 3×3——然後對每對相同位置的元素執行乘法後求和(不同於矩陣乘法,卻類似向量內積,這裏是兩個相同大小的矩陣的「點乘」)。乘積的和就生成了 feature map 中的一個像素。當一個像素計算完畢後,移動一個像素取下一個區塊執行相同的運算。當無法再移動取得新區塊的時候對 feature map 的計算就結束了。這個流程可以用如下的動畫演示:

在這裏插入圖片描述

RAM 是輸入圖片,Buffer 是 feature map,你可能注意到這裏有個正規化因子 m,這裏 m 的值爲 kernel 的大小 9;這是爲了保證輸入圖像和 feature map 的亮度相同。
隨着卷積神經網絡的訓練,這些卷積核爲了得到有用信息,在圖像或 feature map 上的過濾工作會變得越來越好。這個過程是自動的,稱作特徵學習。特徵學習自動適配新的任務:我們只需在新數據上訓練一下自動找出新的過濾器就行了。通常卷積神經網絡並不學習單一的核,而是同時學習多層級的多個核。比如一個 32x16x16 的核用到 256×256 的圖像上去會產生 32 個 241×241(latex.png)的 feature map。所以自動地得到了 32 個有用的新特徵。這些特徵可以作爲下個核的輸入。一旦學習到了多級特徵,我們簡單地將它們傳給一個全連接的簡單的神經網絡,由它完成分類。

三、總結
本文中我們帶大家初步走進了卷積的世界,這裏提到了特徵選擇算法。特徵選擇顧名思義,是根據一堆數據提取它們共同的最顯著特徵,然後達到從同類數據中快速分辨出所提取特徵的目的,其算法實現過程可以使用Matlab模擬,同時有一個評分的過程。
下面我們將帶領大家繼續深入研究卷積。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章