• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      加入獎勵的GRU對抗網(wǎng)絡(luò)文本生成模型

      2022-07-29 06:22:30彭鵬菲周琳茹
      計算機與現(xiàn)代化 2022年7期
      關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)函數(shù)

      彭鵬菲,周琳茹

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

      0 引 言

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

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

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

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

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

      1 GRU神經(jīng)網(wǎng)絡(luò)的函數(shù)改進(jìn)

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

      的雙曲正切函數(shù)tanh作為飽和激活函數(shù),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中會因其飽和性減慢訓(xùn)練過程并導(dǎo)致梯度消失[19],因此本文采用Swish激活函數(shù)替代tanh函數(shù),Swish激活函數(shù)[20]的計算公式如下:

      y=x×sigmoid(x)

      (1)

      圖1 GRU神經(jīng)網(wǎng)絡(luò)模型圖

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

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

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

      (2)

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

      (3)

      (4)

      (5)

      yt=f(Wo·ht)

      (6)

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

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

      2 加入獎勵機制的生成對抗網(wǎng)絡(luò)模型構(gòu)建

      2.1 整體模型設(shè)計

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

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

      2.2 基于GRU神經(jīng)網(wǎng)絡(luò)的生成器

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

      GRU網(wǎng)絡(luò)將輸入的向量轉(zhuǎn)換為隱藏向量h={h1,h2,…,hn},對于GRU網(wǎng)絡(luò),當(dāng)前時刻隱藏層狀態(tài)由上一時刻的隱藏層狀態(tài)和輸入決定,即:

      (7)

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

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

      (8)

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

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

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

      (9)

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

      在剛開始進(jìn)行訓(xùn)練時,首先隨機提供一個閾值r,找到一個最小的大于閾值r的值作為循環(huán)的開始點,在循環(huán)過程中,將生成器中的loss作為指導(dǎo)輸入到GRU神經(jīng)網(wǎng)絡(luò)中進(jìn)行參數(shù)更新,共循環(huán)k次。

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

      圖2 生成過程流程圖

      2.3 基于GRU神經(jīng)網(wǎng)絡(luò)的判別器

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

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

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

      (10)

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

      dloss=eγk

      (11)

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

      (12)

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

      (13)

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

      判別器網(wǎng)絡(luò)循環(huán)6次,生成器循環(huán)一次,即在每一次迭代訓(xùn)練中保證判別器的訓(xùn)練次數(shù)遠(yuǎn)大于生成器。這樣的設(shè)置可以將弱判別器組合成一個較強的判別器,提高生成數(shù)據(jù)的準(zhǔn)確率。

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

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

      本模型中加入蒙特卡洛機制,將判別器的輸出函數(shù)作為生成過程中的參數(shù)指導(dǎo),生成器根據(jù)設(shè)定的獎勵函數(shù)進(jìn)行參數(shù)優(yōu)化,以此達(dá)到生成文本的信息更加豐富的效果。

      3 仿真實驗與分析

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

      表1 實驗環(huán)境配置

      3.1 實驗評估方案

      在預(yù)處理階段,本文通過對原始數(shù)據(jù)去掉多余的標(biāo)點符號、分詞,將大寫字母轉(zhuǎn)為小寫等操作,獲得更好的原始訓(xùn)練數(shù)據(jù)。本實驗的相關(guān)參數(shù)設(shè)置:詞匯量大約為100萬左右,隨機初始化所有參數(shù),使用Adam優(yōu)化器[22],初始學(xué)習(xí)率為0.01。

      本文將調(diào)整了激活函數(shù)的GRU生成對抗網(wǎng)絡(luò)的算法與未調(diào)整的算法進(jìn)行對比,通過對比判別器、有監(jiān)督學(xué)習(xí)形式的生成器和無監(jiān)督學(xué)習(xí)形式的生成器的loss,展現(xiàn)調(diào)整后網(wǎng)絡(luò)的優(yōu)點;采用最通用的BLEU分?jǐn)?shù)評估本GAN網(wǎng)絡(luò)的生成效果。BLEU算法[23]最初應(yīng)用于機器翻譯任務(wù)的譯文生成的質(zhì)量評測中,將生成譯文與人工翻譯譯文進(jìn)行對比,相似度越高則分?jǐn)?shù)越高,即譯文的質(zhì)量越好?;竟饺缦拢?/p>

      (14)

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

      3.2 實驗結(jié)果

      調(diào)整后訓(xùn)練產(chǎn)生的loss結(jié)果如圖4所示,未調(diào)整的訓(xùn)練結(jié)果loss結(jié)果如圖5所示。

      圖4 加入獎勵的調(diào)整后GRU對抗模型loss

      圖5 未調(diào)整GRU對抗模型loss

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

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

      圖6 加入獎勵的調(diào)整后GRU對抗模型BLEU分?jǐn)?shù)

      圖7 原GRU對抗模型BLEU分?jǐn)?shù)

      從圖6~圖7中可以看出,調(diào)整后的模型在有監(jiān)督訓(xùn)練中表現(xiàn)得更加優(yōu)越,不僅收斂速度變快且BLEU平均分?jǐn)?shù)也上升了0.03左右,最高分?jǐn)?shù)甚至與無監(jiān)督學(xué)習(xí)形式訓(xùn)練的BLEU分?jǐn)?shù)不相上下。

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

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

      圖8 seqGAN模型的loss變化

      從文本生成的結(jié)果來看,無監(jiān)督學(xué)習(xí)形式生成的文本要比有監(jiān)督生成的文本豐富性要好,有監(jiān)督生成的文本雖然從BLEU分?jǐn)?shù)來看分?jǐn)?shù)差不太多,但是從生成結(jié)果來看,在訓(xùn)練輪數(shù)較少的時候全是重復(fù)字母或者標(biāo)點符號,沒有意義,訓(xùn)練輪數(shù)增加后,文本生成中多樣性增加,但是沒有正確的英文單詞生成;無監(jiān)督學(xué)習(xí)形式生成的文本在訓(xùn)練輪數(shù)較少的時候,多樣性要比有監(jiān)督的訓(xùn)練好,但是還沒有生成正確的單詞,訓(xùn)練輪數(shù)增加,正確的單詞數(shù)也隨即增加。經(jīng)過增加訓(xùn)練輪數(shù)發(fā)現(xiàn)模型在300輪次左右達(dá)到穩(wěn)定狀態(tài),但在訓(xùn)練輪次達(dá)到500、1000輪時模型效果沒有較大的改善,且訓(xùn)練時間增加。

      總體上來說,相比于原模型,改進(jìn)后的模型不管是在收斂速度還是在訓(xùn)練結(jié)果上都要更加優(yōu)越,有著不錯的提升。

      4 結(jié)束語

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

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

      猜你喜歡
      神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)函數(shù)
      二次函數(shù)
      第3講 “函數(shù)”復(fù)習(xí)精講
      分?jǐn)?shù)的由來
      二次函數(shù)
      無限循環(huán)小數(shù)化為分?jǐn)?shù)的反思
      函數(shù)備考精講
      神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      可怕的分?jǐn)?shù)
      算分?jǐn)?shù)
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
      重型機械(2016年1期)2016-03-01 03:42:04
      西城区| 沿河| 芜湖市| 扎囊县| 平谷区| 五台县| 格尔木市| 象山县| 禹城市| 屏边| 榕江县| 溧水县| 灵丘县| 原平市| 玉田县| 民权县| 股票| 土默特右旗| 九寨沟县| 浦县| 泽州县| 小金县| 拉萨市| 长阳| 石泉县| 阿拉善盟| 广德县| 丰宁| 永清县| 宁蒗| 高要市| 灵武市| 嘉善县| 高州市| 曲麻莱县| 漠河县| 乌审旗| 桃园县| 枣庄市| 罗定市| 中阳县|