日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

nlp中的经典深度学习模型(一)

發布時間:2023/12/10 pytorch 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nlp中的经典深度学习模型(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 DNN與詞向量
    • 1.1 DNN
    • 1.2 skip-gram
    • 1.3 簡單句子分類模型DAN
  • 2 RNN+LSTM+GRU
    • 2.1 RNN
    • 2.2 LSTM
    • 2.3 LSTM變種
    • 2.4 遞歸神經網絡
    • 2.5 雙向RNN
    • 2.6 堆疊RNN

1 DNN與詞向量

1.1 DNN

神經網絡中每一個神經單元是一個線性變化加一個激活函數
s=UTas=U^Tas=UTa
a=f(z)a=f(z)a=f(z)
z=Wx+bz=Wx+bz=Wx+b

多層神經網絡就是不斷向前加。

1.2 skip-gram

通過中心詞 預測周圍詞。

整體訓練網絡如上圖。詞表大小為N。
輸入X是一個one-hot的表示形式。其形狀是NxN。
第一層是一個線性變換 h= XxW (W是一個Nx100的一個矩陣),得到一個Nx100維的隱層矩陣。
最后在隱層上加一個線性變換: hxW’ 得到輸出是這里(X周圍的一個位置)應該是某個詞的概率。W’是一個Nx100的矩陣。
對下游有用的是W,用做詞向量表示。一般把W稱作輸入向量,W’稱作輸出向量。
(這里看到模型維度對不上,不能做矩陣乘法,可能有一個轉置操作。)

1.3 簡單句子分類模型DAN

使用詞向量,判斷兩句話語義是否相近,可以使用的一種方法是:找出兩句話中的詞,分別找出每個詞的詞向量,對每個句子的詞向量做平均,然后兩個句子的向量計算點乘。如果值很低,說明語義相近。

可以給句子中的詞向量做平均拿到平均值。經過2層神經網絡,最后做softmax可以分類該句子的情感屬性。

2 RNN+LSTM+GRU

2.1 RNN

RNN相當于是一個事情反復做了很多次。

每一時刻t 輸入為h(t?1)h^{(t-1)}h(t?1)、x(t)x^{(t)}x(t)
h(t)=f(Wx(t)+Uh(t?1))h^{(t)}=f(Wx^{(t)}+Uh^{(t-1)})h(t)=f(Wx(t)+Uh(t?1))
y(t)=softmax(Vh(t))y^{(t)}=softmax(Vh^{(t)})y(t)=softmax(Vh(t))
目標函數

在做求導過程中得到

BPTT

()部分的連乘,在值<1的時候,連續乘,會趨近于0,發生梯度消失。在值>1的時候,連續乘會變成一個值很大的數,會發生梯度爆炸。
這里的值與激活函數有關系。非線性激活函數的導數一般都<1。所以更容易發生梯度消失。
怎么解決呢?可以選擇一部分單元不進行更新,不計算梯度。從而引出了LSTM模型。

2.2 LSTM

LSTM相比較于RNN多了一個C,平行于h的C。

ft=σ(Wf.[ht?1,xt]+bf)f_t=\sigma(W_f.[h_{t-1},x_t]+b_f)ft?=σ(Wf?.[ht?1?,xt?]+bf?)
注意[ht?1,xt][h_{t-1},x_t][ht?1?,xt?]是兩個向量拼接。WfW_fWf?與拼接向量是點乘.Wf.[ht?1,xt]W_f.[h_{t-1},x_t]Wf?.[ht?1?,xt?]最后結果是一個n維的向量。ftf_tft?就表示在n個維度,哪些應該被遺忘。

it=σ(Wi.[ht?1,xt]+bi)i_t=\sigma(W_i.[h_{t-1},x_t]+b_i)it?=σ(Wi?.[ht?1?,xt?]+bi?)

C^t=tanh(WC.[ht?1,xt]+bC)\widehat{C}_t = tanh(W_C.[h_{t-1},x_t]+b_C)Ct?=tanh(WC?.[ht?1?,xt?]+bC?)

Ct=ft?Ct?1+it?C^tC_t = f_t*C_{t-1}+i_t*\widehat{C}_tCt?=ft??Ct?1?+it??Ct?

ot=σ(Wo.[ht?1,xt]+bo)o_t = \sigma(W_o.[h_{t-1},x_t]+b_o)ot?=σ(Wo?.[ht?1?,xt?]+bo?)

ht=ot?tanh(Ct)h_t = o_t*tanh(C_t)ht?=ot??tanh(Ct?

這就是一個 Ct,ht=f(ht?1,xt,Ct?1)C_t,h_t = f(h_{t-1},x^t,C_{t-1})Ct?,ht?=f(ht?1?,xt,Ct?1?)的函數。

2.3 LSTM變種

1 添加Peephole

CCC參與到結果計算中

2 forget while input

去掉iti_tit?

3 GRU

Ref: Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
去掉C,保留門結構。

2.4 遞歸神經網絡

2.5 雙向RNN

雙向RNN的效果總是優于單向RNN。

2.6 堆疊RNN

總結

以上是生活随笔為你收集整理的nlp中的经典深度学习模型(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。