中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 TensorFlow 做文本情感分析

本文將通過使用TensorFlow中的LSTM神經(jīng)網(wǎng)絡(luò)方法探索高效的深度學(xué)習(xí)方法。


基于LSTM方法的情感分析


在這篇筆記中,我們將研究如何將深度學(xué)習(xí)技術(shù)應(yīng)用在情感分析任務(wù)中。情感分析可以理解為擇取段落、文檔或任意一種自然語言的片段,然后決定文本的情緒色彩是正面的、負(fù)面的還是中性的。


這篇筆記將會(huì)講到數(shù)個(gè)話題,如詞向量,時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)和長短期記憶等。對(duì)這些術(shù)語有了好的理解后,我們將在最后詳細(xì)介紹具體的代碼示例和完整的Tensorflow情緒分類器。


在進(jìn)入具體細(xì)節(jié)之前,讓我們首先來討論深度學(xué)習(xí)適用于自然語言處理(NLP)任務(wù)的原因。


深度學(xué)習(xí)在自然語言處理方面的應(yīng)用


自然語言處理是關(guān)于處理或“理解”語言以執(zhí)行某些任務(wù)的創(chuàng)造系統(tǒng)。這些任務(wù)可能包括:

  • 問題回答 - Siri,Alexa和Cortana等技術(shù)的主要工作

  • 情緒分析 - 確定一段文本背后的情緒色調(diào)

  • 圖像到文本映射 - 生成輸入圖像的說明文字

  • 機(jī)器翻譯 - 將一段文本翻譯成另一種語言

  • 語音識(shí)別 - 電腦識(shí)別口語


在深度學(xué)習(xí)時(shí)代,NLP是一個(gè)蓬勃發(fā)展中的領(lǐng)域,取得了很多不同的進(jìn)步。然而,在上述任務(wù)的所有成就中,需要做很多特征工程的工作,因此需要有很多語言領(lǐng)域的專業(yè)知識(shí)。作為從業(yè)人員需要掌握對(duì)音素和語素等術(shù)語,乃至花費(fèi)四年讀取學(xué)位專門學(xué)習(xí)這個(gè)領(lǐng)域。近幾年來,深度學(xué)習(xí)取得了驚人的進(jìn)步,大大消除了對(duì)豐富專業(yè)知識(shí)要求。由于進(jìn)入門檻較低,對(duì)NLP的應(yīng)用已成為深度學(xué)習(xí)研究的最大領(lǐng)域之一。


詞向量


為了理解如何應(yīng)用深度學(xué)習(xí),可以思考應(yīng)用在機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型中的所有不同數(shù)據(jù)形式。卷積神經(jīng)網(wǎng)絡(luò)使用像素值向量,邏輯線性回歸使用量化特征,強(qiáng)化學(xué)習(xí)模型使用回饋信號(hào)。共同點(diǎn)是都需要標(biāo)量或者標(biāo)量矩陣來作為輸入。當(dāng)你思考NLP任務(wù)時(shí),可能會(huì)在你的思路中出現(xiàn)這樣的數(shù)據(jù)管道。

這種通道是有問題的。我們無法在單個(gè)字符串上進(jìn)行像點(diǎn)乘或者反向傳播這樣的常見操作。我們需要把句子中的每個(gè)單詞轉(zhuǎn)換成一個(gè)向量而不是僅僅輸入字符串。 

你可以將情緒分析模塊的輸入看做一個(gè)16 x D維矩陣。


我們希望以方便表示單詞及其上下文、意義和語義的方式來創(chuàng)建這些向量。例如,我們希望“愛”和“崇拜”這些向量駐留在向量空間中相對(duì)相同的區(qū)域中,因?yàn)樗鼈兌季哂邢嗨频亩x,并且在相似的上下文中使用。一個(gè)單詞的向量表示也稱為詞嵌入。 

Word2Vec


為了創(chuàng)建這些單詞嵌入,我們將使用通常被稱為“Word2Vec”的模型。模型通過查看語句在句子中出現(xiàn)的上下文來創(chuàng)建詞矢量而忽略細(xì)節(jié)。具有相似上下文的單詞將在向量空間中放置在相近的位置。在自然語言中,當(dāng)嘗試確定其含義時(shí),單詞的上下文可能非常重要。正如我們之前”崇拜“和”愛“的例子,

從句子的上下文可以看出,這兩個(gè)詞通常用于具有正面內(nèi)涵的句子,通常在名詞或名詞短語之前。這表明這兩個(gè)詞都有一些共同點(diǎn),可能是同義詞??紤]句子中的語法結(jié)構(gòu)時(shí),語境也很重要。大多數(shù)句子將遵循具有動(dòng)詞跟隨名詞的傳統(tǒng)范例,形容詞先于名詞等等。因此,該模型更有可能將名詞與其他名詞相同。該模型采用大量句子數(shù)據(jù)集(例如英文維基百科),并為語料庫中的每個(gè)不同詞輸出向量。Word2Vec模型的輸出稱為嵌入矩陣(embedding matrix)。

該嵌入矩陣將包含訓(xùn)練語料庫中每個(gè)不同單詞的向量。按照傳統(tǒng)做法,嵌入矩陣可以包含超過300萬個(gè)字向量。


Word2Vec模型是通過將數(shù)據(jù)集中的每個(gè)句子進(jìn)行訓(xùn)練,在其上滑動(dòng)固定大小的窗口,并嘗試根據(jù)給出的其他單詞預(yù)測(cè)窗口中心的單詞。使用損失函數(shù)和優(yōu)化程序,模型為每個(gè)不同詞生成向量。這個(gè)訓(xùn)練過程的具體細(xì)節(jié)可能會(huì)有點(diǎn)復(fù)雜,所以我們現(xiàn)在要跳過細(xì)節(jié),但重要的是,任何深度學(xué)習(xí)方法對(duì)NLP任務(wù)的都很可能會(huì)有詞矢量作為輸入。


有關(guān)Word2Vec背后的理論以及如何創(chuàng)建自己的嵌入矩陣的更多信息,請(qǐng)查看Tensorflow的教程


遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)


現(xiàn)在我們用我們的詞向量作為輸入,首先來看看將要建立的實(shí)際網(wǎng)絡(luò)架構(gòu)。NLP數(shù)據(jù)的獨(dú)特之處在于它有一個(gè)時(shí)間方面的差異。一句話中的每一個(gè)詞的含義都很大程度上依賴于發(fā)生在過去還是未來。


你很快就會(huì)看到,遞歸神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)有點(diǎn)不同。前饋神經(jīng)網(wǎng)絡(luò)由輸入節(jié)點(diǎn),隱藏單元和輸出節(jié)點(diǎn)組成。 

前饋神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)的主要區(qū)別在于后者的時(shí)間性。在RNN中,輸入序列的每個(gè)單詞都與特定的時(shí)間步長相關(guān)聯(lián)。實(shí)際上,時(shí)間步長的數(shù)量將等于最大序列長度。 

一個(gè)稱為隱藏狀態(tài)向量\(ht\)的新組件也與每個(gè)時(shí)間步相聯(lián)系。從高層次來看,這個(gè)向量旨在封裝并總結(jié)在之前的時(shí)間步中看到的所有信息。就像\(xt\)是封裝特定單詞的所有信息的向量,htht是一個(gè)向量,總結(jié)了之前時(shí)間步長的所有信息。


隱藏狀態(tài)是當(dāng)前詞向量和前一時(shí)間步的的函數(shù)。σ表示兩項(xiàng)和代入一個(gè)激活函數(shù)(通常為S形或tanh) 

上述公式中的2個(gè)W項(xiàng)代表權(quán)重矩陣。如果你仔細(xì)看看上標(biāo),你會(huì)看到有一個(gè)權(quán)重矩陣WXWX ,它將與我們的輸入相乘,并且有一個(gè)循環(huán)權(quán)重矩陣WHWH,它將與上一時(shí)間步的隱藏狀態(tài)相乘。WHWH是在所有時(shí)間步長中保持不變的矩陣,權(quán)重矩陣WXWX相對(duì)于每個(gè)輸入是不同的。


這些權(quán)重矩陣的大小會(huì)影響當(dāng)前隱藏狀態(tài)或之前隱藏狀態(tài)所影響的變量。作為練習(xí),參考上面的公式,思考WXWX或者WHWH的值大小變化對(duì)htht有怎樣的影響。


來看一個(gè)簡單的例子,當(dāng)WHWH很大而WXWX很小時(shí),我很知道\(ht\)很大程度上受\(h{t-1}\)的影響而受xtxt影響較小。換句話說,當(dāng)前隱藏狀態(tài)向量對(duì)應(yīng)的單詞在句子全局上是無關(guān)緊要的,那么它和上一時(shí)間步的向量值基本相同。


權(quán)重矩陣通過稱為反向傳播的優(yōu)化過程隨著時(shí)間進(jìn)行更新。


末尾時(shí)間步處的隱藏狀態(tài)向量被饋送到二進(jìn)制softmax分類器中,在其中與另一個(gè)權(quán)重矩陣相乘,并經(jīng)過softmax函數(shù)(輸出0和1之間的值)的處理,有效地給出情緒偏向正面或負(fù)面的概率。

長短期記憶單元(LSTM)


長短期記憶單元式放置在遞歸神經(jīng)網(wǎng)絡(luò)中的模塊。在高層次上,它們確定隱藏狀態(tài)向量h能夠在文本中封裝有關(guān)長期依賴關(guān)系的信息。正如我們上一節(jié)所見,在傳統(tǒng)RNN方法中h的構(gòu)想相對(duì)簡單。但這種方法無法有效地將由多個(gè)時(shí)間步長分開的信息連接在一起。我們可以通過QA問答系統(tǒng)(question answering)闡明處理長期依賴關(guān)系的思路。QA問答系統(tǒng)的功能是提出一段文本,然后根據(jù)這段文本的內(nèi)容提出問題。我們來看下面的例子:

我們可以看出中間的句子對(duì)被提出的問題沒有影響。然而,第一句和第三句之間有很強(qiáng)的聯(lián)系。使用經(jīng)典的RNN,網(wǎng)絡(luò)末端的隱藏狀態(tài)向量可能存儲(chǔ)有關(guān)狗的句子的更多信息,而不是關(guān)于該數(shù)字的第一句。從根本上來說,額外的LSTM單元會(huì)增加可能性來查明應(yīng)該被導(dǎo)入隱藏狀態(tài)向量的正確有用信息。


從更技術(shù)的角度來看LSTM單元,單元導(dǎo)入當(dāng)前的詞向量\(xt\)并輸出隱藏狀態(tài)向量\(ht\)。在這些單元中,htht的構(gòu)造將比典型的RNN更復(fù)雜一點(diǎn)。計(jì)算分為4個(gè)組件,一個(gè)輸入門(input gate),一個(gè)遺忘門(forget gate),一個(gè)輸出門(output gate)和一個(gè)新的存儲(chǔ)容器。

每個(gè)門將使用\(xt\)和\(ht\)(圖中未顯示)作為輸入,并對(duì)它們執(zhí)行一些計(jì)算以獲得中間狀態(tài)。每個(gè)中間狀態(tài)被反饋到不同的管道中并最終把信息聚合成\(ht\)的形式。為了簡便起見,我們不會(huì)對(duì)每個(gè)門的具體構(gòu)造進(jìn)行說明,但值得注意的是,每個(gè)門都可以被認(rèn)為是LSTM內(nèi)的不同模塊,每個(gè)模塊各有不同的功能。輸入門決定了每個(gè)輸入的權(quán)重,遺忘門決定我們將要丟棄什么樣的信息,輸出門決定最終基于中間狀態(tài)的\(ht\)。若想了解不同門的功能和全部方程式,更詳細(xì)的信息請(qǐng)查看Christopher Olah的博客文章(譯者注:或者中文譯文)。


回顧第一個(gè)例子,問題是“兩個(gè)數(shù)字的和是多少”,該模型必須接受相似問答的訓(xùn)練,然后,LSTM單位將能認(rèn)識(shí)到?jīng)]有數(shù)字的任何句子可能不會(huì)對(duì)問題的答案產(chǎn)生影響,因此該單位將能夠利用其遺忘門來丟棄關(guān)于狗的不必要的信息,而保留有關(guān)數(shù)字的信息。

把情緒分析表述為深度學(xué)習(xí)問題


如前所屬,情緒分析的任務(wù)主要是輸入一序列句子并判斷情緒是正面的、負(fù)面的還是中性的。我們可以將這個(gè)特別的任務(wù)(和大多數(shù)其他NLP任務(wù))分成5個(gè)不同的步驟。


  1. 訓(xùn)練一個(gè)詞向量生成模型(比如Word2Vec)或者加載預(yù)訓(xùn)練的詞向量

  2. 為我們的訓(xùn)練集建立一個(gè)ID矩陣(稍后討論)

  3. RNN(使用LSTM單元)圖形創(chuàng)建

  4. 訓(xùn)練

  5. 測(cè)試


加載數(shù)據(jù)


首先,我們要?jiǎng)?chuàng)建詞向量。為簡單起見,我們將使用預(yù)訓(xùn)練好的模型。


作為機(jī)器學(xué)習(xí)這個(gè)游戲中的最大玩家,Google能夠在包含超過1000億個(gè)不同單詞的大規(guī)模Google新聞?dòng)?xùn)練集上訓(xùn)練Word2Vec模型!從那個(gè)模型來看,Google能夠創(chuàng)建300萬個(gè)詞向量,每個(gè)向量的維數(shù)為300。


在理想情況下,我們將使用這些向量,但由于詞向量矩陣相當(dāng)大(3.6GB?。?,我們將使用一個(gè)更加可管理的矩陣,該矩陣由一個(gè)類似的詞向量生成模型Glove訓(xùn)練。矩陣將包含40萬個(gè)詞向量,每個(gè)維數(shù)為50。


我們將要導(dǎo)入兩個(gè)不同的數(shù)據(jù)結(jié)構(gòu),一個(gè)是一個(gè)40萬個(gè)單詞的Python列表,一個(gè)是擁有所有單詞向量值得40萬x50維嵌入矩陣。

為了確保一切都已正確加載,我們可以查看詞匯列表的維度和嵌入矩陣的維度。

我們還可以搜索單詞列表中的一個(gè)單詞,如“棒球”,然后通過嵌入矩陣訪問其對(duì)應(yīng)的向量。

現(xiàn)在我們有了自己的向量,首先是輸入一個(gè)句子,然后構(gòu)造它的向量表示。假如我們有輸入句子“I thought the movie was incredible and inspiring”。為了獲取詞向量,我們可以使用Tensorflow的內(nèi)嵌查找函數(shù)。這個(gè)函數(shù)需要兩個(gè)參數(shù),一個(gè)是嵌入矩陣(在我們的例子中為詞向量矩陣),一個(gè)用于每個(gè)單詞的id。id向量可以認(rèn)為是訓(xùn)練集的整數(shù)表示。這基本只是每個(gè)單詞的行索引。讓我們來看一個(gè)具體的例子,使之具體化。

數(shù)據(jù)流水線如下圖所示。

10 x 50的輸出應(yīng)包含序列中10個(gè)單詞中的每一個(gè)的50維字向量。

在為整個(gè)訓(xùn)練集創(chuàng)建id矩陣之前,首先花一些時(shí)間為擁有的數(shù)據(jù)類型做一下可視化。這會(huì)幫助我們確定設(shè)定最大序列長度的最佳值。在先前的例子中,我們用的最大長度為10,但這個(gè)值很大程度取決于你的輸入。


我們要使用的訓(xùn)練集是Imdb電影評(píng)論數(shù)據(jù)集。這個(gè)集合中有25000個(gè)電影評(píng)論,12,500次正面評(píng)論和12,500次評(píng)論。每個(gè)評(píng)論都存儲(chǔ)在我們需要解析的txt文件中。積極的評(píng)論存儲(chǔ)在一個(gè)目錄中,負(fù)面評(píng)論存儲(chǔ)在另一個(gè)目錄中。以下代碼將確定每個(gè)評(píng)論中的平均字?jǐn)?shù)和總和。

我們還可以使用Matplot庫以直方圖的形式來顯示數(shù)據(jù)。

從直方圖及每個(gè)文件的平均字?jǐn)?shù)來看,我們可以確定大多數(shù)評(píng)論低于250詞,這時(shí)我們?cè)O(shè)置最大序列長度值。 maxSeqLength = 250 下面將展示如何將一個(gè)單一的文件轉(zhuǎn)換成id矩陣。如下是一條看起來像文本文件格式的評(píng)論。

現(xiàn)在,轉(zhuǎn)換成一個(gè)id矩陣

現(xiàn)在,對(duì)我們這25000條評(píng)論做同樣的工作。加載電影訓(xùn)練集并整理它以獲得一個(gè)25000 x 250的矩陣。這是一個(gè)計(jì)算上昂貴的過程,因此,你不用再次運(yùn)行整個(gè)程序,我們將加載預(yù)先計(jì)算的ID矩陣。

輔助函數(shù)


下面你會(huì)發(fā)現(xiàn)一些在之后神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中很有用的輔助函數(shù)。

RNN模型


現(xiàn)在,我們準(zhǔn)備開始創(chuàng)建我們的Tensorflow圖。首先要定義一些超參數(shù),例如批處理大小,LSTM單元數(shù),輸出類數(shù)和訓(xùn)練次數(shù)。

與大多數(shù)Tensorflow圖一樣,我們現(xiàn)在需要指定兩個(gè)占位符,一個(gè)用于輸入到網(wǎng)絡(luò)中,一個(gè)用于標(biāo)簽。定義這些占位符的最重要的部分是了解每個(gè)維度。


標(biāo)簽占位符是一組值,每個(gè)值分別為[1,0]或[0,1],具體取決于每個(gè)訓(xùn)練示例是正還是負(fù)。輸入占位符中的整數(shù)每一行代表著我們?cè)谂幚碇邪拿總€(gè)訓(xùn)練示例的整數(shù)表示。

一旦我們有了輸入數(shù)據(jù)占位符,我們將調(diào)用tf.nn.lookup()函數(shù)來獲取詞向量。對(duì)該函數(shù)的調(diào)用會(huì)通過詞向量的維度返回長達(dá)最大序列長度的批大?。╞atch size)的3-D張量。為了可視化這個(gè)3-D張量,你可以簡單的把整數(shù)化輸入張量中的每個(gè)數(shù)據(jù)點(diǎn)看做對(duì)應(yīng)的相關(guān)D維向量。 

現(xiàn)在我們有了想要的形式的數(shù)據(jù),嘗試如何把這些輸入填充進(jìn)LSTM網(wǎng)絡(luò)。我們將調(diào)用tf.nn.rnn_cell.BasicLSTMCell函數(shù)。這個(gè)函數(shù)輸入一個(gè)整數(shù)代表我們要用到的LSTM單元數(shù)。這是用來調(diào)整以利于確定最優(yōu)值的超參數(shù)之一。然后我們將LSTM單元包裝在一個(gè)退出層,以防止網(wǎng)絡(luò)過擬合。


最后,我們將充滿輸入數(shù)據(jù)的LSTM單元和3-D張量引入名為tf.nn.dynamic_rnn的函數(shù)中。該函數(shù)負(fù)責(zé)展開整個(gè)網(wǎng)絡(luò),并為數(shù)據(jù)流過RNN圖創(chuàng)建路徑。

作為一個(gè)備注,另一個(gè)更先進(jìn)的網(wǎng)絡(luò)架構(gòu)選擇是將多個(gè)LSTM神經(jīng)元堆疊在一起。也就是說第一個(gè)LSTM神經(jīng)元最后一個(gè)隱藏狀態(tài)向量導(dǎo)入第二個(gè)LSTM神經(jīng)元。堆疊這些神經(jīng)元是幫助模型保留更多長期以來信息的一個(gè)很好的方法,但也會(huì)在模型中引入更多的參數(shù),從而可能增加訓(xùn)練時(shí)間,增加更多對(duì)訓(xùn)練樣本的需求和過擬合的概率。有關(guān)如何把堆疊LSTM加入模型的更多信息,請(qǐng)查看Tensorflow文檔。


動(dòng)態(tài)RNN函數(shù)的第一個(gè)輸出可以被認(rèn)為是最后一個(gè)隱藏的狀態(tài)向量。該向量將重新定形,然后乘以最終權(quán)重矩陣和偏置項(xiàng)以獲得最終輸出值。

接下來,我們將定義正確的預(yù)測(cè)和精度指標(biāo),以跟蹤網(wǎng)絡(luò)的運(yùn)行情況。正確的預(yù)測(cè)公式通過查看2個(gè)輸出值的最大值的索引,然后查看它是否與訓(xùn)練標(biāo)簽相匹配來工作。

我們將基于最終預(yù)測(cè)值上的激活函數(shù)層定義標(biāo)準(zhǔn)交叉熵,使用Adam優(yōu)化器,默認(rèn)學(xué)習(xí)率為0.01。

如果你想使用Tensorboard來顯示損失和準(zhǔn)確度的值,還可以運(yùn)行和修改以下代碼。

超參數(shù)調(diào)優(yōu)


為您的超參數(shù)選擇正確的值是有效訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)的關(guān)鍵部分。您會(huì)發(fā)現(xiàn),您的訓(xùn)練損失曲線可能因您選擇的優(yōu)化器(Adam,Adadelta,SGD等),學(xué)習(xí)率和網(wǎng)絡(luò)架構(gòu)而不同。特別是使用RNN和LSTM時(shí),要注意其他一些重要因素,包括LSTM單元的數(shù)量和字向量的大小。

  • 由于有著大量的時(shí)間步,RNN的難以訓(xùn)練臭名昭著。學(xué)習(xí)率變得非常重要,因?yàn)槲覀儾幌M麢?quán)重值因?yàn)閷W(xué)習(xí)率高而波動(dòng),也不想由于學(xué)習(xí)率低而需要緩慢地訓(xùn)練。默認(rèn)值為0.001是個(gè)好的開始,如果訓(xùn)練損失變化非常緩慢,你應(yīng)該增加此值,如果損失不穩(wěn)定,則應(yīng)減少。

  • 優(yōu)化器:在研究人員之間尚沒有一致的選擇,但是由于具有自適應(yīng)學(xué)習(xí)速率這個(gè)屬性,Adam很受歡迎(請(qǐng)記住,優(yōu)化學(xué)習(xí)率可能隨著優(yōu)化器的選擇而不同)。

  • LSTM單位數(shù):該值在很大程度上取決于輸入文本的平均長度。雖然更多的單位會(huì)使模型表達(dá)地更好,并允許模型存儲(chǔ)更多的信息用于較長的文本,但網(wǎng)絡(luò)將需要更長的時(shí)間才能訓(xùn)練,并且計(jì)算費(fèi)用昂貴。

  • 詞向量大?。涸~向量的維度一般在50到300之間。更大的尺寸意味著詞向量能夠封裝更多關(guān)于該詞的信息,但模型也將花費(fèi)更多計(jì)算量。

訓(xùn)練


訓(xùn)練循環(huán)的基本思路是首先定義一個(gè)Tensorflow session,然后加載一批評(píng)論及其相關(guān)標(biāo)簽。接下來,我們調(diào)用session的run函數(shù),該函數(shù)有兩個(gè)參數(shù),第一個(gè)被稱為“fetches”參數(shù),它定義了我們想要計(jì)算的期望值,我們希望優(yōu)化器能夠計(jì)算出來,因?yàn)檫@是使損失函數(shù)最小化的組件。第二個(gè)參數(shù)需要輸入我們的feed_dict,這個(gè)數(shù)據(jù)結(jié)構(gòu)是我們?yōu)樗姓嘉环峁┹斎氲牡胤?。我們需要提供評(píng)論和標(biāo)簽的批次,然后這個(gè)循環(huán)在一組訓(xùn)練迭代器上重復(fù)執(zhí)行。


我們將會(huì)加載一個(gè)預(yù)訓(xùn)練模型而不是在這款notebook上訓(xùn)練網(wǎng)絡(luò)(這需要幾個(gè)小時(shí))。


如果你決定在自己的機(jī)器上訓(xùn)練這個(gè)模型,你可以使用TensorBoard來跟蹤訓(xùn)練過程。當(dāng)以下代碼在運(yùn)行時(shí),使用你的終端進(jìn)入此代碼的執(zhí)行目錄,輸入tensorboard --logdir=tensorboard,并使用瀏覽器訪問http://localhost:6006/,以對(duì)訓(xùn)練過程保持關(guān)注。

加載預(yù)訓(xùn)練模型


我們的預(yù)訓(xùn)練模型在訓(xùn)練過程中的精度和損失曲線如下所示。 

查看如上訓(xùn)練曲線,似乎模型的訓(xùn)練進(jìn)展順利。虧損穩(wěn)步下降,準(zhǔn)確率接近100%。然而,在分析訓(xùn)練曲線時(shí),我們還應(yīng)該特別注意模型對(duì)訓(xùn)練數(shù)據(jù)集過擬合的可能。過擬合是機(jī)器學(xué)習(xí)中的常見現(xiàn)象,模型變得適合于訓(xùn)練模型而失去了推廣到測(cè)試集的能力。這意味著訓(xùn)練一個(gè)網(wǎng)絡(luò)直達(dá)到0訓(xùn)練損失可能不是一個(gè)最好的方式,來獲取在一個(gè)從未見過的數(shù)據(jù)集上表現(xiàn)良好的準(zhǔn)確模型。早停(early stopping)是一種直觀的技術(shù),普遍應(yīng)用于LSTM網(wǎng)絡(luò)來解決過擬合問題?;舅枷胧窃谟?xùn)練集上訓(xùn)練模型,同時(shí)還可以一次次在測(cè)試集上測(cè)量其性能。一旦測(cè)試錯(cuò)誤停止了穩(wěn)定的下降并開始增加,我們會(huì)知道該停止訓(xùn)練,以為這是神經(jīng)網(wǎng)絡(luò)開始過擬合的信號(hào)。


加載預(yù)訓(xùn)練模型涉及定義另一個(gè)Tensorflow會(huì)話,創(chuàng)建Saver對(duì)象,然后使用該對(duì)象調(diào)用恢復(fù)功能。此函數(shù)接受2個(gè)參數(shù),一個(gè)用于當(dāng)前會(huì)話,另一個(gè)用于保存模型的名稱。

然后我們將從測(cè)試集加載一些電影評(píng)論,注意,這些評(píng)論是模型從未訓(xùn)練過的。運(yùn)行以下代碼時(shí)可以看到每批測(cè)試的精準(zhǔn)度。

結(jié)論


在這篇筆記中,我們對(duì)情緒分析進(jìn)行了深入地學(xué)習(xí)。我們研究了整個(gè)流程中涉及的不同組件,然后研究了在實(shí)踐中編寫Tensorflow代碼來實(shí)現(xiàn)模型的過程。最后,我們對(duì)模型進(jìn)行了培訓(xùn)和測(cè)試,以便能夠?qū)﹄娪霸u(píng)論進(jìn)行分類。


在Tensorflow的幫助下,你可以創(chuàng)建自己的情緒分類器,以了解世界上大量的自然語言,并使用結(jié)果形成具有說服力的論點(diǎn)。感謝您的閱讀。



本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何用深度學(xué)習(xí)訓(xùn)練一個(gè)像你一樣會(huì)聊天的機(jī)器人?
深度學(xué)習(xí)在自然語言處理中的應(yīng)用
自然語言處理領(lǐng)域深度學(xué)習(xí)研究總結(jié):從基本概念到前沿成果
是時(shí)候放棄遞歸神經(jīng)網(wǎng)絡(luò)了!
直觀比較四種NLP模型 - 神經(jīng)網(wǎng)絡(luò),RNN,CNN,LSTM
在 Netflix 評(píng)論中做情感分析的深度學(xué)習(xí)模型
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服