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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

lstm数学推导_如何在训练LSTM的同时训练词向量?

發(fā)布時(shí)間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lstm数学推导_如何在训练LSTM的同时训练词向量? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

你本來也不用自己手動(dòng)進(jìn)行詞向量更新啊,你搞這么一出最后收斂到0那不是必然的么? @霍華德 老師的答案已經(jīng)給你推導(dǎo)出來了。

實(shí)際上你問的這個(gè)問題很簡(jiǎn)單——只要把Embedding層本身也當(dāng)成模型參數(shù)的一部分就可以了,一開始不使用外部詞向量,直接隨機(jī)初始化一個(gè)Embedding層,然后正常讀入訓(xùn)練數(shù)據(jù)開始執(zhí)行訓(xùn)練就可以了。在訓(xùn)練的過程中,如果指定Embedding層也是可訓(xùn)練的參數(shù)(pytorch里設(shè)置requires_grad=True)的話,那么在訓(xùn)練的時(shí)候Embedding層的參數(shù)也會(huì)被更新,就像更新LSTM的參數(shù)一樣,對(duì)損失函數(shù)求導(dǎo),通過BP更新Embedding層的參數(shù),然后就可以實(shí)現(xiàn)你說的“同時(shí)訓(xùn)練詞向量”了。

但一般情況下我們不會(huì)這么做——即使是不考慮梯度從損失函數(shù)出發(fā),穿透LSTM到達(dá)Embedding層之后還能剩下多少(LSTM顯然也不可能完全克服梯度消失問題),你這么一搞的話模型的參數(shù)總量就相當(dāng)于你的LSTM的參數(shù)總量,加上Embedding層的參數(shù)總量。假設(shè)詞表長(zhǎng)度是10W,詞向量維度是100的話,這種做法就意味著你的模型憑空多出了10W * 100 = 1000W的參數(shù),顯然你那點(diǎn)標(biāo)注數(shù)據(jù)根本就喂不飽這么多參數(shù),真這么玩的話直接就過擬合到姥姥家了。

這也就是為什么我們要使用預(yù)訓(xùn)練詞向量——訓(xùn)練模型同時(shí)訓(xùn)練詞向量,就意味著要使用寶貴的標(biāo)注數(shù)據(jù)去填Embedding層這個(gè)大窟窿。而預(yù)訓(xùn)練詞向量就完全不一樣了——主流的詞向量訓(xùn)練方法,比如早年間的word2vec,GloVe,或者近年來的各種Context-aware Embedding,都可以通過自監(jiān)督(Self-Supervised)方法進(jìn)行訓(xùn)練。也就是說,語(yǔ)料的詞與詞間共現(xiàn)關(guān)系(word2vec)或者上下文順序(ELMo和BERT等)本身就是給模型的標(biāo)注信息——這就意味著我們可以輕而易舉地使用大量的無監(jiān)督文本語(yǔ)料進(jìn)行詞向量訓(xùn)練。要知道,互聯(lián)網(wǎng)時(shí)代,無監(jiān)督文本語(yǔ)料本身的獲取成本是很低的,基本上只要你往上堆算力堆模型就可以了。通過預(yù)訓(xùn)練詞向量,不僅可以通過大量的文本獲得質(zhì)量更高的詞向量,還可以在訓(xùn)練的時(shí)候直接把Embedding層當(dāng)成常數(shù)(requires_grad=False),這樣的話需要訓(xùn)練的參數(shù)就只有LSTM本身的參數(shù)了,讓寶貴的標(biāo)注數(shù)據(jù)可以好鋼用在刀刃上。

總結(jié)

以上是生活随笔為你收集整理的lstm数学推导_如何在训练LSTM的同时训练词向量?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。