智慧型語音卷積神經網路中一維卷積的處理

2021-10-16 09:06:23 字數 1834 閱讀 7521

卷積神經網路(cnn)是深度學習中常用的網路架構,在智慧型語音中也不例外,比如語音識別。語音中是按幀來處理的,每一幀處理完就得到了相對應的特徵向量,常用的特徵向量有mfcc等,通常處理完一幀得到的是乙個39維的mfcc特徵向量。假設一段語音有n幀,處理完這段語音後得到的是乙個39行n列(行表示特徵維度,列表示幀數)的矩陣,這個矩陣是乙個平面,是cnn的輸入。應用在影象問題上的cnn通常是二維卷積(因為影象有rgb三個通道),而語音問題上的cnn輸入是乙個矩陣平面,可以用一維卷積。本文就講講一維卷積是怎麼處理的。

所謂一維卷積是指卷積核只在乙個方向上移動。具體到語音上,假設一段語音提取特徵後是乙個m行n列(m表示特徵維度,n表示幀數)的矩陣平面,卷積核要在幀的方向上從小到大移動,下圖給出了示意。

卷積核也是乙個矩陣(j行k列)。由於卷積核只在乙個方向上移動,要把所有的特徵值都覆蓋到,必須卷積核的行數要等於特徵值矩陣的行數,即j = m,所以描述卷積核時只需要知道kernel size(即多少列)和 kernel count(即多少個kernel)。

知道kernel size和kernel count後,再來看一維卷積的計算過程,看乙個輸入矩陣經過一維卷積後得到的是什麼。設定padding模式為same(卷積處理後的輸出矩陣與輸入矩陣有相同的列數),stride為1(kernel一次只移動一格)。假定輸入矩陣為3x5的矩陣,kernel個數為2,kernel size為3,所以kernel是乙個3x3的矩陣。輸入矩陣和兩個kernel矩陣的具體值如下圖,兩個kernel的bias分別是2和3。

先看第乙個卷積核與輸入矩陣的計算。由於padding模式是same,輸入矩陣左右都要pad。kernel size是3,所以輸入矩陣左右都要補充1列(用0填充),補充後輸入矩陣變成了下圖。

做卷積時先從左邊的padding處開始,具體如下圖,相對應的位置相乘再相加後,再加上bias就可以了,計算出值為10(0 x 1 + 1 x 0 + 4 x 0 + 0 x 0 + 2 x 1 + 5 x 0 + 0 x 0 + 3 x 0 + 6 x 1 + 2 = 10)。

把卷積核向幀增大方向(即向右)移動一格,如下圖:

同樣方法計算出值為17(1 x 1 + 4 x 0 + 7 x 0 + 2 x 0 + 5 x 1 + 8 x 0 + 3 x 0 + 6 x 0 + 9 x 1 + 2 = 17)。

經過4次移動後就到了右邊的padding處,同樣方法計算。最終得到的是乙個1行5列的矩陣,如下圖:

第二個kernel的卷積計算與第乙個kernel計算一樣,得到的也是乙個1行5列的矩陣。如下圖:

最終乙個3x5的輸入矩陣與kernel count為2、kernel size為3的卷積後得到的是乙個2行5列的矩陣,如下圖。

可以看出卷積後輸入矩陣的列數不變,行數變為了kernel的個數(這是在padding模式為same、stride為1的case下,其他case行數依舊是kernel的個數,列數會變化,比如stride > 1 或者用上maxpooling後列數會減少,但卷積計算過程是一樣的)。

以上就是一維卷積的處理過程,很簡單的吧。

一維卷積神經網路 卷積神經網路中的計算

卷積的基本介紹 卷積操作後張量的大小計算 卷積參數量的計算 卷積flops的計算 感受野的計算 卷積神經網路中的卷積是指定義好卷積核 kernel 並對影象 或者特徵圖,feature map 進行滑動匹配,即對應位置相乘再相加。其特點就在於能夠捕捉區域性的空間特徵。具體過程如下圖所示 圖1 二維卷...

卷積神經網路 卷積層

1 2 該部落格主要是對網上知識點的學習和整理,方便日後複習。侵刪。卷積神經網路 cnn 一般由輸入層 卷積層 啟用函式 池化層 全連線層組成,即input 輸入層 conv 卷積層 relu 啟用函式 pool 池化層 fc 全連線層 當我們給定乙個 x 的圖案,計算機怎麼識別這個圖案就是 x 呢...

卷積神經網路膨脹卷積

卷積核就是影象處理時,給定輸入影象,輸入影象中乙個小區域中畫素加權平均後成為輸出影象中的每個對應畫素,其中權值由乙個函式定義,這個函式稱為卷積核 又稱濾波器。卷積核的大小一般有1x1,3x3和5x5的尺寸 一般是奇數x奇數 同樣提取某個特徵,經過不同卷積核卷積後效果也不一樣 可以發現同樣是銳化,5x...