卷積神經網路文字輸入 使用卷積神經網路進行文字分類

2021-10-18 11:09:49 字數 2031 閱讀 3379

cnn 是卷積神經網路,通常用於影象領域,並且在影象分類取得非常好的效果。2014 年 yoon kim 在**《convolutional neural networks for sentence classification》中將 cnn 的思想應用到文字處理中,後續很多把 convnet 用在 nlp 任務上的工作都是基於這篇**進行的。

本文主要是對原始**《convolutional neural networks for sentence classification》內容的整理,首先了解 cnn 文字分類模型整體結構,下圖是**中的模型圖。

可以看到模型比較簡單,主要分為四個部分:輸入層、卷積層、最大池化層、全連線層。

1.1 輸入層

給定乙個句子,輸入層接收的輸入是乙個句子單詞詞向量矩陣xx是乙個 (n×k) 的矩陣,n 表示句子中單詞數量,k 表示詞向量維度。可以看到x的每一行對應了乙個單詞的詞向量,而單詞的詞向量按照它們在句子中的順序進行排列。

1.2 卷積層

在得到輸入的詞向量矩陣x之後,需要對x進行卷積操作。卷積核是乙個 (h×k) 的矩陣,注意卷積核的列數是固定的 (為 k),與詞向量維度一樣。卷積核不斷地向下移動,得到卷積後的值。

因為卷積核的列數與詞向量矩陣x是一樣的,所以經過卷積後的 feature map 也只有一列。有多個卷積核會生成多列向量,如下圖所示,下圖為 4 個卷積核卷積後的輸出。

1.3 最大池化層

在卷積層中,多個不同的卷積核會生成多列向量 (feature map),最大池化會取出每一列中的最大值,最終形成乙個一維向量。

1.4 全連線層

最後一層是全連線層,全連線層使用了 dropout 防止過擬合,然後利用 softmax 進行分類。

2.1 使用多個不同尺寸的卷積核

剛剛我們了解到這個模型的卷積核列數必須為 k,但是其高度 (行數) 是可以變的,在使用的過程中可以採用不同高度的卷積核進行卷積操作,如下圖所示。

2.2 模型的變種

作者在**中還提出了模型的 4 種變種

下圖是 4 種模型的結果,可以看到 cnn-static 比 cnn-rand 效果更好,說明使用預訓練的詞向量比較有效;另外 cnn-non-static 比 cnn-static 效果要好,說明微調會使詞向量更加適合當前任務。在實驗中 cnn-multichannel 通常在小資料集效果更好。

cnn 用於 nlp 任務中與 n-gram 有相似之處,我們定義卷積核的高度為 3,則相當於使用卷積核在句子中進行乙個 3-gram 的操作,同時 cnn 具有很高的效率,比傳統 n-gram 要快很多。

cnn 中的卷積核寬度要與詞向量的維度一樣大,並且卷積核是在句子中單詞的方向上進行移動的。

1.**:convolutional neural networks for sentence classification

2.understanding convolutional neural networks for nlp

卷積神經網路 卷積層

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

卷積神經網路膨脹卷積

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

卷積神經網路 卷積操作

對於cnn,卷積操作的主要目的是從輸入影象中提取特徵。卷積通過使用輸入資料的小方塊學習影象特徵來保留畫素之間的空間關係。卷積操作就是卷積核 過濾器 filter 在原始中進行滑動得到特徵圖 feature map 的過程。假設我們現在有乙個單通道的原始和乙個卷積核,卷積的過程如圖2所示 卷積得到的特...