您好,登錄后才能下訂單哦!
本篇內容主要講解“CNN中ReLU和Pooling操作是怎樣的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“CNN中ReLU和Pooling操作是怎樣的”吧!
02
—
ReLU操作
CNN用的激活函數不是Sigmoid函數,大家都知道Sigmoid函數最大的問題是隨著深度學習會出現梯度消失,這樣會導致最后的收斂速度變得很慢,經過實踐證明,采取另外一個函數,性能會更好些,這就是 ReLU 函數,它長這樣:
可以看出在 x 大于 0 時,它是線性函數,在 x 小于 0 時,它是非線性的函數,因此ReLu綜合起來看為非線性函數。
ReLU函數對CNN的實際意義
可以看出CNN中的卷積操作是線性操作,對應元素相乘,然后再求和,又知道在現實世界中,大部分的數據都是非線性的,所以有必要引入一個非線性的激活函數,下面通過ReLU操作看下對圖片的影響:
原圖像
左圖為對原圖像卷積后的圖像,右圖為ReLU后的圖像,對于單通道圖上取值范圍為0-255,其中255為白色,0是黑色,因為卷積后的結果有可能為負值,所以經過ReLU后,所有的值為非負值,不再出現有問題的負值。
03
—
Pooling層
Pooling層能起到降低上一層輸入的特征的維數的作用,但是同時能保持其最重要的信息,Pooling操作分多種:最大池化,平均池化,求和池化等。
以最大池化為例,池化一般在ReLU操作之后,首先定義一個相鄰區域,然后求出這個區域的最大值,再選定一個步長,依次遍歷完圖像,如下圖所示:
Pooling 操作的實際意義
使得輸入的特征維數降低,更易于管理
有了第一條,也會使得權重參數個數變少,更易于收斂。
Pooling操作相當于決策樹中的剪枝操作,能防止過擬合。
經過池化操作后,CNN可以適應圖片小的位移,扭曲,位移
經過吃化操作后,CNN可以幫助我們達成在一定尺度上的不變性,這是非常重要的,因為圖像不再受外界環境的干擾。
04
—
CNN總結
至此已經介紹完了CNN使用的核心技術,如果將卷積操作,ReLU操作,Pooling操作結合起來,我們可以得到如下深度網絡,可以看出共進行了2次卷積和池化,完成對輸入的圖像的特征提取,接下來就是全連接層,所謂的全連接層與之前說的DNN(全連接多層神經網絡)是一致的,大家可以參考之前的推送復習多層感知器。
經過全連接層,會使用前一層提取的所有主要特征,使用一般的均值方差作為損失函數,在輸出層可以使用softmax分類器完成多分類任務。可以看出預測的結果為一只船,這是合理的。
下面總結下CNN的算法:
初始化所有的過濾核,超參數,權重參數等
輸入訓練的圖像數據,經過前向傳播,包括:卷積操作,ReLU操作,池化操作和全連接層的前向傳播,最后在輸出層得到屬于每個類的概率值。
計算在輸出層的總誤差,采用均方誤差項:總誤差 = ∑ ? (目標概率 – 輸出概率) 2
用反向傳播計算誤差項相對于權重參數和偏置項的梯度,以此最小化3中的誤差和,等達到某個閾值時,停止訓練。
對所有圖像數據重復 2-4 操作。
到此,相信大家對“CNN中ReLU和Pooling操作是怎樣的”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。