卷積神經網路介紹

2021-08-02 17:32:48 字數 1986 閱讀 6027

本文由(翻譯並自行補充而來。
cnn是ai發展中最令人振奮的進步之一,早期由yann lecun等人提出。卷積神經網路在2023年被krizhevsky開創性的推廣下,在計算機視覺領域取得了廣泛的成果,並且已經取代了傳統的影象處理技術,成為解決計算機視覺問題的最新技術。cnn也正在被研究和應用於其他領域,如自然語言處理,最近facebook公司將cnn應用到機器翻譯領域,並且比以往的序列神經網路模型快了數倍。文中介紹了cnn的幾個核心思想:區域性感受野、共享權重、池化層和非線性啟用函式(relu)。

cnn是常規神經網路的乙個變體,通過明確地假設輸入是影象,代替常規神經網路中每一層由神經員網路層構成。cnn利用了輸入的空間特性,它具有一系列採用3d輸入的中間層,使用或不使用可學習的引數來執行可微分的操作,最後輸出也是3d的。

與全連線網路不同的是,cnn每一層的每個神經元不需要全部連線到下一層的每個神經元。相反,cnn僅在輸入影象的小的2d區域性區域中進行連線,稱為區域性感受野。對於每個感受野,其在每一層中都存在不同的神經元,這大大減少了訓練的權重數量和網路的計算複雜度。

在卷積運算時,對於2d影象的邊界,cnn一般要做零補足(zero padding)。通過對稱地新增零來填充輸入矩陣邊框周圍。對輸入進行補足保留了原始輸入,並且防止了邊界快速丟失資料。整個過程在cnn中由零補足的超引數控制。

區域性感受野的滑動可以通過stride超引數(步幅長度)來控制,stride指的是一次移動的畫素數。這兩個超引數都控制這輸出值的空間大小。

cnn另外乙個特點:對於每個隱藏神經元都具有相同的權重和偏置。通過共享權重和偏置,網路被強制要求學習權重以檢測影象不同部分的特徵。這意味著在網路層中每個神經元在輸入影象的不同位置檢測同一種特徵。

cnn適合於影象的轉換不變性,這意味著網路試圖檢測影象中的不變性特徵,一旦檢測到特徵,該特徵的位置變得無關緊要。

定義cnn每層的卷積核的權重稱為核心或濾波器(參考影象處理裡的各種濾波器)。要執行影象識別,cnn需要多個功能圖,所以卷積層由幾個不同的特徵圖組成。

共享權重和偏差的另一大優點是它也大大減少了網路需要學習的引數數量,有助於加快學習過程。較少的引數意味著降低了模型的過擬合的可能性。

池化層是卷積層之後通常會使用的另一種型別的網路層。它們對每個特徵圖採取諸如平均值或最大值的統計聚合策略來簡化或總結卷積層中的資訊。最常見的池化層形式是最大化,其簡單地輸出卷積層的最大啟用。
由於sigmoid和tanh啟用函式過早趨於飽和的特性,深度全連線網路面臨學習減速的問題。為了避免這個問題,cnn使用整流線性單元或relu啟用函式。relu函式定義為f(z)=max(0,z),這意味著所有的負啟用都定義為0。relu啟用函式已經顯示出優於基於sigmoid和tanh啟用函式的神經網路,通常被實現為對輸入執行元素啟用功能的層。

cnn利用了輸入空間資訊的優點。卷積和池化層學習輸入影象中的區域性空間結構,網路後接的全連線層用於更抽象的層面上學習,整合來自其它層的知識來執行分類。

整個網路結構被設定成卷積、relu和池化等一系列層,最終使用全連線層產生輸出分數。

所有層都實現了前向和反向的api,前向傳播計算每一層傳遞的啟用,反向傳播使用上面的梯度和區域性梯度計算層來計算每一層的可學習引數的梯度。

在深度神經網路中,梯度總是不穩定的,這導致了在訓練過程中梯度消失或**問題。cnn如何解決這個問題呢?
卷積層和池化層大大地減少了學習的參數量,使得學習問題變得更簡單點。

cnn利用卷積和dropout層的正則化性質,大大減少了過度擬合。

使用batch normalization等新技術可以減少內部協方差轉換,有助於平滑學習。

使用relu啟用有助於加快訓練速度並避免神經元飽和。

卷積神經網路介紹

在深度學習出現之前,我們必須借助sift,hog等演算法提取具有良好區分性的特徵,再集合svm等機器學習演算法進行影象識別。sift對一定程度內的縮放 平移 旋轉 視角改變 亮度調整等畸變,都具有不變性。cnn作為乙個深度學習架構被提出的最初訴求,是降低對影象資料 預處理的 要求,以及避免複雜可以的...

卷積神經網路介紹

卷積層是卷積神經網路的核心基石。在影象識別裡我們提到的卷積是二維卷積,即離散二維濾波器 也稱作卷積核 與二維影象做卷積操作,簡單的講是二維濾波器滑動到二維影象上所有位置,並在每個位置上與該畫素點及其領域畫素點做內積。卷積操作被廣泛應用與影象處理領域,不同卷積核可以提取不同的特徵,例如邊沿 線性 角等...

卷積神經網路的介紹

本章節將介紹一種全新結構的神經網路 卷積神經網路 convolutional neural network,cnn 它是一種前饋神經網路,可以應用到很多場合,比如影象處理,自然語言處理,災難氣候 等等,但是最主要還是應用在影象領用,近幾年來在自然語言處理方面,cnn也應用得越來越多。卷積神經網路結構...