深度学习之循环神经网络(12)预训练的词向量
生活随笔
收集整理的這篇文章主要介紹了
深度学习之循环神经网络(12)预训练的词向量
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
深度學(xué)習(xí)之循環(huán)神經(jīng)網(wǎng)絡(luò)(12)預(yù)訓(xùn)練的詞向量
?在情感分類任務(wù)時,Embedding層是從零開始訓(xùn)練的。實(shí)際上,對于文本處理任務(wù)來說,領(lǐng)域知識大部分是共享的,因此我們能夠利用在其它任務(wù)上訓(xùn)練好的詞向量來初始化Embedding層,完成領(lǐng)域知識遷移。基于預(yù)訓(xùn)練的Embedding層開始訓(xùn)練,少量樣本時也能取得不錯的效果。
?我們以預(yù)訓(xùn)練的GloVe詞向量為例,演示如何利用預(yù)訓(xùn)練的詞向量模型提升任務(wù)性能。首先從官網(wǎng)上下載預(yù)訓(xùn)練的GloVe詞向量表,我們選擇特征長度100的文件glove.6B.100d.txt,其中每個詞匯使用長度為100的向量表示,下載后解壓即可。
GloVe詞向量模型文件
利用Python文件IO代碼讀取單詞的編碼向量表,并存儲到Numpy數(shù)組中。代碼如下:
運(yùn)行結(jié)果如下所示:
?GloVe.6B版本共存儲了40萬個詞匯的向量表。前面實(shí)戰(zhàn)中我們只考慮最多1萬個常見的詞匯,我們根據(jù)詞匯的數(shù)字編碼表一次從GloVe模型中獲取其詞向量,并寫入對應(yīng)位置。代碼如下:
運(yùn)行結(jié)果如下所示:
?在獲得了詞匯表數(shù)據(jù)后,利用詞匯表初始化Embedding層即可,并設(shè)置Embedding層不參與梯度優(yōu)化。其它部分均保持一致。我們可以簡單地比較通過預(yù)訓(xùn)練的GloVe模型初始化的Embedding層的訓(xùn)練結(jié)果和隨機(jī)初始化的Embedding層的訓(xùn)練結(jié)果,在訓(xùn)練完50個Epochs后,預(yù)訓(xùn)練模型的準(zhǔn)確率達(dá)到了84.7%,提升了約2%。
總結(jié)
以上是生活随笔為你收集整理的深度学习之循环神经网络(12)预训练的词向量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习之循环神经网络(11-b)GRU
- 下一篇: 网络matlab程序_【Matlab】官