?

加入獎勵的GRU對抗網絡文本生成模型

2022-07-29 06:22彭鵬菲周琳茹
計算機與現代化 2022年7期
關鍵詞:神經網絡分數函數

彭鵬菲,周琳茹

(中國人民解放軍海軍工程大學電子工程學院指揮信息系統教研室,湖北 武漢 430030)

0 引 言

近幾年隨著人工智能的飛速發展,得益于神經網絡等相關概念的提出以及發展,人工智能在多個領域中取得了巨大的進步,自然語言處理作為人工智能領域中一個重要的研究方向,也標志著人工智能進一步走向成熟[1]。自然語言處理包括自然語言理解和自然語言生成2個主要方向[2]。自然語言生成問題可以細分為機器翻譯[3]、對話系統[4]、圖像描述[5]、文章生成[6]等內容。2014年,生成對抗網絡(GAN, Generative Adversarial Networks)被Fedus等人[7]提出以來便漸漸成為主流的生成模型框架之一,它分為生成器和判別器2個部分。生成器和判別器是2個“獨立”的神經網絡,并通過優化函數將2個神經網絡“鏈接”在一起。生成器的目的是試圖迷惑判別器,讓其判斷不出文本的真假;判別器的目的則是能夠正確地區分真實文本和生成文本,最終達到納什平衡。將博弈論的思想引入到模型訓練中,GAN的本質通常是先驗噪聲和真實數據樣本分布之間的映射,這種特質導致它在圖像生成領域具有天然的優勢[8],但是由于文本數據的離散型,是不可微的,細微的梯度更新無法回傳,因此生成器無法更新。對這一問題,Kusner等人[9]提出GSGAN模型,模型中提出Gumbel-softmax分布,通過讓滿足Gumbel分布的向量和原本的輸出向量相結合,并使用一個逐漸減小的變量來作為除數,這就使得可以直接使用可微的softmax函數來代替原本基于采樣且不可微的argmax函數;Che等人[10]提出了極大似然增強離散數據生成對抗網絡(MailGAN),設計了一套訓練技術直接計算生成數據分布與真實數據分布的差距,同時減少了模型潛在的方差。目前,GAN在文本生成領域應用效果不佳的一個重要原因是來自判別器的二值反饋信息較少。針對GAN存在的梯度消失問題,Lin等人[11]提出了排序生成對抗網絡(RankGAN),將原始二值分類判別器替換為以余弦相似度為基礎的排序模型,使得判別器的反饋更加連續;Yu等人[12]在AAAI會議上提出了SeqGAN的方法用來解決序列生成問題,該模型將GAN的生成模型看作強化學習過程中的代理,對抗模型則扮演強化學習過程中“人類”的角色,在SeqGAN中仍然選擇LSTM做生成網絡,CNN[13]做對抗網絡,該模型在中國古詩、英文演講稿和歌詞生成過程中取得了較大的進步。GAN模型生成的數據不僅真實度高且具有多樣性,因此在圖像生成領域[14]GAN發揮了巨大作用。然而由于文本數據的離散型,生成器細微的改變在離散空間中無法產生新的標簽,因此針對離散數據,判別器無法正確指導生成器;且針對判別器獎勵的稀疏性,生成模型較難訓練,通常會產生高方差梯度估計,使得參數優化較難確定方向。

在文本生成中隨著時序長度變長,深度不斷增加,循環神經網絡的梯度消失和梯度爆炸問題隨之而來,且由于簡單RNN[15]每次更新時是對全體記憶進行擦除和重寫,因此導致模型不能捕捉長期關系。為避免上述問題,本文采用門控結構的GRU神經網絡避免梯度問題,增加對長期記憶的捕捉能力。

上述模型雖然在文本生成領域有著不錯的效果,但是生成的文本較一般,且文本信息單一;由于判別器中的輸出loss經反向傳播指導生成器部分的參數優化,不斷試錯,不斷嘗試進行參數優化,每一層參數的優化都會影響其它層,因此訓練時間較長。針對以上問題,本文提出以下解決方案:

1)為生成更真實多樣的文本、減少錯誤累計,加入蒙特卡洛策略[16],使判別器的輸出指導信號通過蒙特卡洛策略算法訓練生成器,生成器根據指導進行參數優化,受到獎勵。蒙特卡洛策略可幫助生成器在無監督學習形式訓練的每個時間步選擇最合適的離散值字符,加強文本生成的多樣性和真實性。

2)本文使用GRU神經網絡作為生成器和判別器。GRU神經網絡可有效地解決長距離梯度消失的問題,相對于LSTM神經網絡,GRU的參數要少于LSTM,訓練速度要快于LSTM的同時傳播信息不會發生丟失的情況,同時又使結構更加簡單,訓練過程更加快速;改進當前時刻的隱含變量的激活函數,使用自定義函數替換原sigmoid函數,使模型的收斂速度更加迅速,采用有下界無上屆的函數Swish激活函數增加網絡的非線性能力。

1 GRU神經網絡的函數改進

GRU提出了更新門和重置門的概念[17],通過各種門函數將重要特征保留下來,保證了在long-term傳播時重要信息不會丟失。此外GRU相對于LSTM少了一個門函數,因此在參數的數量上少于LSTM[18],整體上GRU的訓練速度快于LSTM。

的雙曲正切函數tanh作為飽和激活函數,在神經網絡訓練過程中會因其飽和性減慢訓練過程并導致梯度消失[19],因此本文采用Swish激活函數替代tanh函數,Swish激活函數[20]的計算公式如下:

y=x×sigmoid(x)

(1)

圖1 GRU神經網絡模型圖

Swish激活函數是有下界無上屆的函數,可以增加網絡的非線性能力,且由于Swish的一階導數是平滑的,因此激活函數不會出現飽和問題,有效避免了梯度消失問題。具體結構如圖1所示。圖1中的zt和rt分別表示更新門和重置門。

更新門控制前一時刻的狀態信息被帶入當前狀態中的程度,值越大表明前一時刻的狀態信息帶入越多;重置門控制忽略前一時刻的狀態信息的程度,值越小表明忽略得越多。本文采用GRU作為生成對抗網絡中的生成器和判別器。在給定輸入值it=(1,2,3,…,n)時,GRU網絡的前向傳播公式為:

zt=f(Wz·[ht-1,xt])

(2)

rt=f(Wr·[ht-1,xt])

(3)

(4)

(5)

yt=f(Wo·ht)

(6)

其中[ ]代表2個矩陣相連,*代表矩陣的乘積。

采用f函數代替原sigmoid函數,加快收斂速度;將原tanh函數換為Swish函數,改善原函數因其飽和性減慢訓練過程并導致梯度消失問題。通過以上2點的改進可綜合提高GRU網絡的模型訓練速度。

2 加入獎勵機制的生成對抗網絡模型構建

2.1 整體模型設計

本文應用GAN神經網絡實現文本生成,生成模型包括生成器和判別器,在判別器中加入蒙特卡洛策略進一步生成更真實的文本。真實的數據輸入生成器,判別器產生的結果反饋回生成器指導生成器繼續生成文本。由于有監督訓練對噪聲有著較強的魯棒性和容錯能力,能夠充分逼近復雜的非線性關系且其學習能力較強[21],本文在訓練過程中同時采用有監督學習形式和無監督學習形式,二者之間的轉換公式為:a=1-u×k,其中a為進行有監督訓練的概率,k為訓練輪數,u為自定義的二者之間的轉換開關。生成器和判別器均使用GRU神經網絡,其中判別器的輸出作為反饋獎勵函數評價生成文本的效果,并指導生成器的進一步改進。

蒙特卡洛方法是按抽樣調查法求取統計值來推定位置特性量的計算方法,適用于對離散系統進行仿真實驗,從起始狀態到結束狀態稱為episode,完成一次episode計算一次狀態Si的平均獲得值。對蒙特卡洛策略進行評估即在固定的策略π下,從經歷過的episodes中學習,通過求取多個episodes的平均獲得值來代替狀態價值函數,當值函數被估計出來后,對于每個狀態s,通過最大化動作值函數來進行策略的改進。

2.2 基于GRU神經網絡的生成器

本文的生成器總共包含3層,分別為Embedding層、GRU神經網絡層、Softmax層,主體選擇GRU神經網絡模型。首先對輸入數據進行簡單的預處理,定義循環次數為l,為保證程序的運行速度,當讀取輸入數據r大于10000×l時停止讀入數據。接下來在Embedding層將給定真實文本的訓練集I={i1,i2,…,in}映射為向量x={x1,x2,…,xn},xn代表第n個詞的向量,對于嵌入矩陣的初始化采用隨機初始化。然后將處理后的數據輸入到帶GRU的神經網絡中,最后一層為輸出層。

GRU網絡將輸入的向量轉換為隱藏向量h={h1,h2,…,hn},對于GRU網絡,當前時刻隱藏層狀態由上一時刻的隱藏層狀態和輸入決定,即:

(7)

直到最后的輸入值xn處理完畢。GRU神經網絡將每一時刻輸入形成的向量輸出到輸出層,序列Y={y1,y2,…,yn}在輸出層中轉換成單詞序列Z={z1,z2,…,zn}輸出。輸出可定義為:

zx=Softmax(We×tanh(Wx+b1))

(8)

其中:We是embedding層輸出的嵌入矩陣,W是參數矩陣,b1是一個偏置單元,x是傳入的參數。

生成器的loss函數是規范化的反饋獎勵函數與生成器輸出的乘積,生成器的loss函數如式(9)所示:

M=-log(gen_out(y)×n(y))

(9)

其中,gen_out(y)為生成器的輸出,n(y)為規范化的反饋獎勵函數,如公式(13)所示。

在剛開始進行訓練時,首先隨機提供一個閾值r,找到一個最小的大于閾值r的值作為循環的開始點,在循環過程中,將生成器中的loss作為指導輸入到GRU神經網絡中進行參數更新,共循環k次。

生成器流程圖如圖2所示。

圖2 生成過程流程圖

2.3 基于GRU神經網絡的判別器

判別器仍使用GRU網絡,將生成的數據與輸入的真實數據進行對比,判別生成文本的真假,并提供反饋,因此判別器可看為一個二分類模型,將真實的數據標簽設置為1,生成器生成的數據標簽設置為0。判別器模型由Dense神經層、Embedding層、隱藏層和GRU層組成。參數初始化后,首先將數據經過簡單的Dense神經層進行特征提取,隨后輸入到Embedding層中進行降維,降維后輸入到隱藏層,最后在GRU神經網絡中進行判別生成數據的真假。

在經過對輸入數據進行處理后,首先前向計算單個神經元的輸出值,然后反向計算當前的誤差項并將誤差項傳遞到上一層,根據誤差項本文采用Adam優化器計算權重,最后利用得到的梯度進行權重更新。本文計算當前神經元的輸出loss作為指導更新輸入的參數,loss的計算是求判別器的輸出與0矩陣的交叉熵,判別器的loss公式如下:

L=-EX~data[log(f(x),0)]

(10)

其中f(x)是判別器的輸出,EX~data為真實數據X的期望函數。在參數更新后,其指導信號通過蒙特卡洛策略算法訓練生成器模塊,而生成器根據指導信號的指導方向行動,并受到獎勵。獎勵公式如下:

dloss=eγk

(11)

reward=g(dloss×sigmoidf(x),k)

(12)

n(x)=reward/g(dloss,k)

(13)

其中,γ是反饋獎勵參數,本文選擇0.9,k為訓練輪數,g函數為計算反向累計和。

判別器網絡循環6次,生成器循環一次,即在每一次迭代訓練中保證判別器的訓練次數遠大于生成器。這樣的設置可以將弱判別器組合成一個較強的判別器,提高生成數據的準確率。

模型最終示意圖如圖3所示。

圖3 加入獎勵的GRU對抗文本生成模型

本模型中加入蒙特卡洛機制,將判別器的輸出函數作為生成過程中的參數指導,生成器根據設定的獎勵函數進行參數優化,以此達到生成文本的信息更加豐富的效果。

3 仿真實驗與分析

為驗證本文模型的效果,利用長篇英文小說《神探夏洛克》中的文字內容進行實驗。實驗環境及配置如表1所示。

表1 實驗環境配置

3.1 實驗評估方案

在預處理階段,本文通過對原始數據去掉多余的標點符號、分詞,將大寫字母轉為小寫等操作,獲得更好的原始訓練數據。本實驗的相關參數設置:詞匯量大約為100萬左右,隨機初始化所有參數,使用Adam優化器[22],初始學習率為0.01。

本文將調整了激活函數的GRU生成對抗網絡的算法與未調整的算法進行對比,通過對比判別器、有監督學習形式的生成器和無監督學習形式的生成器的loss,展現調整后網絡的優點;采用最通用的BLEU分數評估本GAN網絡的生成效果。BLEU算法[23]最初應用于機器翻譯任務的譯文生成的質量評測中,將生成譯文與人工翻譯譯文進行對比,相似度越高則分數越高,即譯文的質量越好?;竟饺缦拢?/p>

(14)

其中,N表示選到的最大的N-gram匹配規則,Pn為對應規則下的匹配程度,wn匹配權重,BP為過短懲罰項,長度越短懲罰項越大。

3.2 實驗結果

調整后訓練產生的loss結果如圖4所示,未調整的訓練結果loss結果如圖5所示。

圖4 加入獎勵的調整后GRU對抗模型loss

圖5 未調整GRU對抗模型loss

從圖4~圖5中可以看出,調整后訓練的收斂速度變快,生成器和判別器在訓練過程中比未改進前可得到更多的信息,且訓練時間也要短于原訓練時間,最終的準確率與原結果相比也沒有發生較大偏差。

為更好地描述文本生成模型的性能,本文采用累加的N-Gram分數進行評估,采用1-gram和2-gram各50%的比例進行計算。改進后的模型在長篇英文小說上BLEU的分數表現如圖6所示,未改進的模型的BLEU分數表現如圖7表示。

圖6 加入獎勵的調整后GRU對抗模型BLEU分數

圖7 原GRU對抗模型BLEU分數

從圖6~圖7中可以看出,調整后的模型在有監督訓練中表現得更加優越,不僅收斂速度變快且BLEU平均分數也上升了0.03左右,最高分數甚至與無監督學習形式訓練的BLEU分數不相上下。

為驗證本模型的效果,對seqGAN模型進行仿真并與本文提出的模型進行對比。其中seqGAN模型中的BLEU分數只顯示最終結果,同樣采用1-gram和2-gram各50%的比例進行計算,最終得到BLEU的分數為0.05021。seqGAN的BLEU分數低主要是數據沒有邏輯性,生成的文本多是單詞,因此分數相對來說偏低。

圖8中的loss變化是seqGAN模型第1000輪最后的loss分數,從圖中變化可看到最后單個小輪loss基本在0.5以下,采用平均值來估計整體的話loss整體偏大。

圖8 seqGAN模型的loss變化

從文本生成的結果來看,無監督學習形式生成的文本要比有監督生成的文本豐富性要好,有監督生成的文本雖然從BLEU分數來看分數差不太多,但是從生成結果來看,在訓練輪數較少的時候全是重復字母或者標點符號,沒有意義,訓練輪數增加后,文本生成中多樣性增加,但是沒有正確的英文單詞生成;無監督學習形式生成的文本在訓練輪數較少的時候,多樣性要比有監督的訓練好,但是還沒有生成正確的單詞,訓練輪數增加,正確的單詞數也隨即增加。經過增加訓練輪數發現模型在300輪次左右達到穩定狀態,但在訓練輪次達到500、1000輪時模型效果沒有較大的改善,且訓練時間增加。

總體上來說,相比于原模型,改進后的模型不管是在收斂速度還是在訓練結果上都要更加優越,有著不錯的提升。

4 結束語

針對文本生成問題,本文提出了一種基于改進的GRU神經網絡的GAN網絡模型,詳細展示了改進的GRU神經網絡的GAN網絡是如何應用在文本生成領域。本文模型改進GRU神經網絡的激活函數,并加入強化反饋增加文本生成內容的真實性。實驗結果表明,本文模型拓展了GAN神經網絡生成器和判別器選擇的多樣性,改進的模型比原來的生成模型收斂效果更好,運算時間更短,驗證了模型的有效性。

下一步工作將探索如何改進模型將文本生成的效果進一步提升,增強模型的靈活性,進一步提高文本生成效果。

猜你喜歡
神經網絡分數函數
基于遞歸模糊神經網絡的風電平滑控制策略
二次函數
第3講 “函數”復習精講
分數的腳步
分數的由來
二次函數
無限循環小數化為分數的反思
函數備考精講
神經網絡抑制無線通信干擾探究
可怕的分數
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合