一種構(gòu)建情感分類模型的方法
【專利摘要】本發(fā)明提供了一種基于深度學(xué)習(xí)的概率生成模型深信度網(wǎng)絡(luò)的情感分類方法,技術(shù)方案為:堆疊多個玻爾茲曼機(jī)層,也就是這一層的輸出作為下一層的輸入。通過這種方式,就可以實(shí)現(xiàn)對輸入信息進(jìn)行分級表達(dá),逐層抽象了。含多隱層的多層感知器是其基礎(chǔ)的學(xué)習(xí)結(jié)構(gòu),通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。本方法屬于無監(jiān)督學(xué)習(xí),主要應(yīng)用的模型是深度置信網(wǎng)。本方法能夠讓機(jī)器更好地進(jìn)行特征抽象,從而提高情感分類的準(zhǔn)確性。
【專利說明】一種構(gòu)建情感分類模型的方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及信息機(jī)器學(xué)習(xí)領(lǐng)域,特別設(shè)計(jì)一種構(gòu)建概率生成模型的方法。
【背景技術(shù)】 [0002]隨著當(dāng)今網(wǎng)絡(luò)時代興起,用《紐約時報(bào)》的頭版把深度學(xué)習(xí)稱為人工智能革命性的一種新技術(shù)。有理由讓我們對深度學(xué)習(xí)進(jìn)一步深入了解,作為一個復(fù)雜的“機(jī)器學(xué)習(xí)”的算法,在識別音頻和圖像準(zhǔn)確率上,遠(yuǎn)遠(yuǎn)超過先前的技術(shù)。但也有充分的理由來懷疑這一觀點(diǎn)。雖然報(bào)道說,“深度學(xué)習(xí)讓機(jī)器執(zhí)行人類的活動,如看、聽和思考,可以模式識別提供了可能性,促進(jìn)了人工智能技術(shù)的進(jìn)步。”深度學(xué)習(xí)讓我們向真正的智能機(jī)時代的邁進(jìn),也只是一小步。與即時實(shí)際應(yīng)用相結(jié)合,深度學(xué)習(xí)是很重要的工作。
[0003]深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個新的領(lǐng)域,其動機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像,聲音和文本。深度學(xué)習(xí)是無監(jiān)督學(xué)習(xí)的一種。其概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習(xí)的概念由Hinton等人于2006年提出。
[0004]深入學(xué)習(xí)根源于傳統(tǒng)的“神經(jīng)網(wǎng)絡(luò)”,“神經(jīng)網(wǎng)絡(luò)”可以追溯到20世紀(jì)五十年代后期。當(dāng)時,弗蘭克.羅森布拉特試圖建立一種類似機(jī)械大腦的感知器,可以“感知,識別,記憶,像人的思維做出響應(yīng)的機(jī)器”。在一定范圍內(nèi)這個系統(tǒng)能夠識別一些基本的形狀,如三角形和正方形。人們對它的潛力寄予厚望。
[0005]但是測驗(yàn)最終以失敗告終,由馬文.明斯基和他的合作者西摩帕爾特在一本書中指出,羅森布拉特設(shè)計(jì)的原系統(tǒng)是非常有限制的,從字面上盲目進(jìn)行一些簡單的邏輯功能如“異或”。眾所周知,“神經(jīng)網(wǎng)絡(luò)”的魅力很快消失了。
[0006]然而,在上世紀(jì)八十年代中期,當(dāng)卡內(nèi)基-梅隆大學(xué)的教授杰夫?欣頓幫助構(gòu)建更復(fù)雜的虛擬神經(jīng)元網(wǎng)絡(luò),可以規(guī)避一些明斯基指出的難點(diǎn),羅森布拉特的又一個想法再度出現(xiàn)。韓丁引入一個“隱藏層”的概念,“隱藏層”神經(jīng)元允許新一代網(wǎng)絡(luò)有更復(fù)雜的學(xué)習(xí)功能(原始感知器無法處理的類似的異或功能)。然而新的模型也有嚴(yán)重的問題。訓(xùn)練時間長,學(xué)習(xí)緩慢,效率低下,神經(jīng)網(wǎng)絡(luò)又開始失寵。
[0007]然而,Hinton堅(jiān)持不懈,在2006年做出了重大改進(jìn),提出深度學(xué)習(xí),此項(xiàng)技術(shù)仍然被谷歌,微軟,和其他地方所應(yīng)用。一個典型的設(shè)置是這樣的:一臺電腦面臨著一個大的數(shù)據(jù)集,需要對這些數(shù)據(jù)進(jìn)行分類,這就像沒有沒有具體指令的情況下讓孩子對玩具進(jìn)行分類。孩子可能對它們的顏色,形狀或功能,或其他的方面進(jìn)行分類。機(jī)器學(xué)習(xí)者嘗試這樣做,例如數(shù)以百萬計(jì)的手寫體進(jìn)行大規(guī)模學(xué)習(xí),把這些手寫體數(shù)據(jù)相互對比,相似性的基礎(chǔ)上對他們“聚類”。深度學(xué)習(xí)的重要創(chuàng)新在于建立模型逐步學(xué)習(xí),試圖確定下來低層次的分類,然后再嘗試學(xué)習(xí)更高級別的分類。
[0008]深入學(xué)習(xí)擅長于這類問題,被稱為無監(jiān)督學(xué)習(xí)。在某些情況下,它的性能遠(yuǎn)遠(yuǎn)好過以前的技術(shù)。例如,它可以在一個新的語言對音節(jié)的學(xué)習(xí)識別優(yōu)于早期的系統(tǒng)。但它仍然不夠好,當(dāng)分類可能性的集合很大的情況下,在對象識別或分類情況下就顯得捉襟見肘了。大家常用的谷歌系統(tǒng),但它仍可以識別訓(xùn)練集不足六分之一的圖像,但是當(dāng)圖像旋轉(zhuǎn)或圖像中的元素進(jìn)行左右移動,給出的結(jié)果會更糟。
[0009]實(shí)際上,深入學(xué)習(xí)只是建設(shè)智能機(jī)器所面臨的巨大挑戰(zhàn)其中的一部分。這樣的技術(shù)缺乏因果關(guān)系的表示方法,可能面臨獲得抽象的概念的挑戰(zhàn),如“兄弟姐妹關(guān)系”或“共同指代”。他們沒有明了的方式進(jìn)行邏輯推理,和在整合抽象知識方面還有很長的路要走,如信息的對象是什么,信息歸什么類,以及如何使用信息。
[0010]基于深信度網(wǎng)絡(luò)提出非監(jiān)督貪心逐層訓(xùn)練算法,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結(jié)構(gòu)。此外卷積神經(jīng)網(wǎng)絡(luò)是第一個真正多層結(jié)構(gòu)學(xué)習(xí)算法,它利用空間相對關(guān)系減少參數(shù)數(shù)目以提高訓(xùn)練性能。
【發(fā)明內(nèi)容】
[0011]有鑒于此,本發(fā)明的目的在于提供一種構(gòu)建概率生成模型的方法,該方法能夠提高信息提取抽象計(jì)算的準(zhǔn)確性。
[0012]為實(shí)現(xiàn)上述目的,本發(fā)明提供的技術(shù)方案為:
[0013]一種構(gòu)建概情感分類模型的方法,該方法包括:
[0014]利用人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn),假設(shè)其輸出與輸入是相同的,然后訓(xùn)練調(diào)整其參數(shù),得到每一層中的權(quán)重。自然地,我們就得到了輸入的幾種不同表示,這些表示就是特征。自動編碼器就是一種盡可能復(fù)現(xiàn)輸入信號的神經(jīng)網(wǎng)絡(luò)。為了實(shí)現(xiàn)這種復(fù)現(xiàn),需要使用自動編碼器捕捉可以代表輸入數(shù)據(jù)的最重要的因素,找到可以代表原信息的主要成分。
[0015]當(dāng)?shù)玫搅说谝粚拥木幋a,然后需要使得重構(gòu)的誤差最小,就可以相信這個編碼就是原輸入信號的良好表達(dá)了,在這里我們假設(shè)它和原信號是一樣的。第二層和第一層的訓(xùn)練方式?jīng)]有差別,我們將第一層輸出的編碼當(dāng)成第二層的輸入信號,同樣最小化重構(gòu)誤差,就會得到第二層的參數(shù),并且得到第二層輸入的編碼。其他層使用同樣的方法依次進(jìn)行就可以了。
[0016]經(jīng)過上面的方法,就可以得到多層編碼。實(shí)驗(yàn)需要的層數(shù)目要根據(jù)自己實(shí)驗(yàn)具體效果調(diào)試。每一層都會得到原始輸入的不同的表達(dá),這里模擬人的視覺系統(tǒng)一樣。
[0017]目前它只是學(xué)習(xí)獲得了一個可以良好代表輸入的特征,這個特征可以最大程度上代表原輸入信號。那么,為了實(shí)現(xiàn)分類,我們就可以在自動編碼器的最頂?shù)木幋a層添加一個分類器如羅杰斯特回歸,然后通過標(biāo)準(zhǔn)的多層神經(jīng)網(wǎng)絡(luò)的監(jiān)督訓(xùn)練方法去訓(xùn)練。
[0018]也就是說,這時候,我們需要將最后層的特征編碼輸入到最后的分類器,通過有標(biāo)簽樣本,通過監(jiān)督學(xué)習(xí)進(jìn)行微調(diào)。把模型網(wǎng)絡(luò)被“限制”為一個可視層和一個隱層,層間存在連接,但層內(nèi)的單元間不存在連接。隱層單元被訓(xùn)練去捕捉在可視層表現(xiàn)出來的高階數(shù)據(jù)的相關(guān)性。
[0019]然后,不考慮最頂構(gòu)成一個聯(lián)想記憶的兩層,一個深信度網(wǎng)路的連接是通過自頂向下的生成權(quán)值來指導(dǎo)確定的,限制波爾茲曼機(jī)就像一個建筑塊一樣,它能易于連接權(quán)值的學(xué)習(xí)。最開始的時候,通過一個非監(jiān)督貪婪逐層方法去預(yù)訓(xùn)練獲得生成模型的權(quán)值,非監(jiān)督貪婪逐層方法被Hinton證明是有效的,并被其稱為對比分歧。
[0020]在這個訓(xùn)練階段,在可視層會產(chǎn)生一個向量V,通過它將值傳遞到隱層。反過來,可視層的輸入會被隨機(jī)的選擇,以嘗試去重構(gòu)原始的輸入信號。最后,這些新的可視的神經(jīng)元激活單元將前向傳遞重構(gòu)隱層激活單元,獲得h,在訓(xùn)練過程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取新的隱單元。執(zhí)行這種反復(fù)步驟叫做吉布斯采樣。這些后退和前進(jìn)的步驟就是我們熟悉的Gibbs采樣,而隱層激活單元和可視層輸入之間的相關(guān)性差別就作為權(quán)值更新的主要依據(jù)。
[0021]訓(xùn)練時間會顯著的減少,因?yàn)橹恍枰獑蝹€步驟就可以接近最大似然學(xué)習(xí)。增加進(jìn)網(wǎng)絡(luò)的每一層都會改進(jìn)訓(xùn)練數(shù)據(jù)的對數(shù)概率,我們可以理解為越來越接近真實(shí)表達(dá)。
【專利附圖】
【附圖說明】
[0022]圖1是深信度網(wǎng)絡(luò)Deep Belief Network不意圖;
[0023]圖2 是受限伯茲曼機(jī) Restricted Boltzmann Machine 不意圖;
[0024]圖3是本發(fā)明實(shí)施例構(gòu)建該方法的流程圖。
【具體實(shí)施方式】
[0025]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明所述方案作進(jìn)一步地詳細(xì)說明。[0026]給定評論語料集合中X=U1, X2,…,xN},任務(wù)為對這些文檔進(jìn)行情感分類,即把每一個評論都給出它的屬性(積極或消極)。其中每段評論都被表示為Xi=IXi3, Xi2,…,XiJ。同時目標(biāo)屬性也用向量表示為yi={l,-l},其中I表示積極,-1表示消極。假設(shè)目標(biāo)值向量集為Y=Iy1, y2,…,yN},目的是找出X到Y(jié)的映射函數(shù)。
[0027]我們使用深信度網(wǎng)絡(luò)作為深度模型對評論預(yù)料進(jìn)行訓(xùn)練,深信度網(wǎng)絡(luò)為一個多層模型,有一個輸入層為可見層,多個隱藏層如圖1,我們設(shè)定下列參數(shù):
[0028]v=h0:輸入層;
[0029]hi (i=l, 2,...K_l)=第 i 層隱藏層;
[0030]o=hK:輸出層;
[0031]hi:(i=l, - ,K) =Iv1 和 Iii 層之間的權(quán)重
[0032]bi:(i=l, - ,K):hjPhi+1 層之間的誤差
[0033]Ci:(i=l, - ,K) ZhjPtv1 層之間的誤差
[0034]其中兩層之間的激活函數(shù)為:
[0035]p(hi_ljS = I Ihi) = σ (bijS+ Σ JWijJhijj.) (I)
[0036]p(hijt = I Ihi^1) = σ (ci t+ Σ jWyU (2)
[0037]其中σ (X)為:
[0038]σ (X) = l/(l+e, (3)
[0039]盡管梯度下降算法能夠用來調(diào)優(yōu)網(wǎng)絡(luò)的權(quán)值,不過這種算法僅僅在初始權(quán)值比較接近一個不錯的解時效果才較好。這里使用一個多層的預(yù)訓(xùn)練模型來得到一個適當(dāng)?shù)某跏季W(wǎng)絡(luò)。從底端到頂端,通過把較低的一層看作可視層較高的一層看作隱藏層,每一對相鄰的層都可以看作是受限伯茲曼機(jī)。在這里的能量函數(shù)為:
[0040]E (v, h) = - Σ s,tvswstht_ Σ sbsvs- Σ tctht (4)
[0041]預(yù)訓(xùn)練的目標(biāo)是使得可生成訓(xùn)練集的概率最大化,每個網(wǎng)絡(luò)分配的訓(xùn)練集概率可以通過計(jì)算公式:
[0042]
【權(quán)利要求】
1.一種構(gòu)建學(xué)習(xí)模型的方法,其特征在于,該方法包括: 方法是利用人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn),人工神經(jīng)網(wǎng)絡(luò)本身就是具有層次結(jié)構(gòu)的系統(tǒng),如果給定一個神經(jīng)網(wǎng)絡(luò),我們假設(shè)其輸出與輸入是相同的,然后訓(xùn)練調(diào)整其參數(shù),得到每一層中的權(quán)重。自然地,我們就得到了輸入的幾種不同表示(每一層代表一種表示),這些表示就是特征。自動編碼器就是一種盡可能復(fù)現(xiàn)輸入信號的神經(jīng)網(wǎng)絡(luò)。為了實(shí)現(xiàn)這種復(fù)現(xiàn),自動編碼器就必須捕捉可以代表輸入數(shù)據(jù)的最重要的因素,找到可以代表原信息的主要成分。
2.根據(jù)權(quán)利要求1所述的構(gòu)建學(xué)習(xí)模型的方法,其特征在于,所述根據(jù)輸入得到編碼的方法為: 在一般的神經(jīng)網(wǎng)絡(luò)中,我們輸入的樣本是有標(biāo)簽的,即有輸入和目標(biāo)值的,這樣我們根據(jù)當(dāng)前輸出和目標(biāo)值之間的差去改變前面各層的參數(shù),直到收斂。但現(xiàn)在我們只有無標(biāo)簽數(shù)據(jù),所以,我們把輸入傳入一個編碼器,就會得到一個編碼,這個編碼也就是輸入的一個表示,那么我們?yōu)榱酥肋@個編碼表示的就是輸入,我們加一個解碼器,這時候就會輸出一個信息。如果輸出的這個信息和一開始的輸入信號比較接近,我們相信這個編碼是可靠的。所以,我們就通過調(diào)整編碼器和解碼器的參數(shù),使得重構(gòu)誤差最小,這時候我們就得到了輸入信號的第一個表示了,也就是編碼了。因?yàn)槭菬o標(biāo)簽數(shù)據(jù),所以誤差的來源就是直接重構(gòu)后與原輸入相比得到。
3.根據(jù)權(quán)利要求2所述的構(gòu)建學(xué)習(xí)模型的方法,其特征在于,通過編碼器產(chǎn)生特征,逐層訓(xùn)練; 根據(jù)上面就可以得到第一層的編碼,重構(gòu)的誤差最小讓我們相信這個編碼就是原輸入信號的良好表達(dá),在這里我們假設(shè)它和原信號是一樣的。第二層和第一層的訓(xùn)練方式就沒有差別了,我們將第一層輸出的編碼當(dāng)成第二層的輸入信號,同樣最小化重構(gòu)誤差,就會得到第二層的參數(shù),并且得到第二層輸入的編碼,也就是原輸入信息的第二個表達(dá)。其他層使用同樣的方法依次進(jìn)行。
4.根據(jù)權(quán)利要求3所述的構(gòu)建網(wǎng)絡(luò)的方法,其特征在于,配置有監(jiān)督的微調(diào); 經(jīng)過上面的方法,就可以得到多層編碼。實(shí)驗(yàn)需要的層數(shù)目要根據(jù)自己實(shí)驗(yàn)具體效果調(diào)試。目前它只是學(xué)習(xí)獲得了一個可以良好代表輸入的特征,這個特征可以最大程度上代表原輸入信號。那么,為了實(shí)現(xiàn)分類,我們就可以在自動編碼器的最頂?shù)木幋a層添加一個分類器如羅杰斯特回歸,然后通過標(biāo)準(zhǔn)的多層神經(jīng)網(wǎng)絡(luò)的監(jiān)督訓(xùn)練方法去訓(xùn)練。 也就是說,這時候,我們需要將最后層的特征編碼輸入到最后的分類器,通過有標(biāo)簽樣本,通過監(jiān)督學(xué)習(xí)進(jìn)行微調(diào)。
5.根據(jù)權(quán)利要求4所述的構(gòu)建網(wǎng)絡(luò)的方法,其特征在于,加入深信度網(wǎng)絡(luò); 深信度網(wǎng)絡(luò)由多個限制玻爾茲曼機(jī)層組成。這些網(wǎng)絡(luò)被“限制”為一個可視層和一個隱層,層間存在連接,但層內(nèi)的單元間不存在連接。隱層單元被訓(xùn)練去捕捉在可視層表現(xiàn)出來的高階數(shù)據(jù)的相關(guān)性。 首先,一個深信度網(wǎng)路的連接是通過自頂向下的生成權(quán)值來指導(dǎo)確定的,限制波爾茲曼機(jī)相比傳統(tǒng)和深度分層的sigmoid信念網(wǎng)絡(luò),它能易于連接權(quán)值的學(xué)習(xí)。 最開始的時候,通過一個非監(jiān)督貪婪逐層方法去預(yù)訓(xùn)練獲得生成模型的權(quán)值,在這個訓(xùn)練階段,在可視層會產(chǎn)生一個向量V,通過它將值傳遞到隱層。反過來,可視層的輸入會被隨機(jī)的選擇,以嘗試去重構(gòu)原始的輸入信號。最后,這些新的可視的神經(jīng)元激活單元將前向傳遞重構(gòu)隱層激活單元,獲得h,在訓(xùn)練過程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取新的隱單元。執(zhí)行這種反復(fù)步驟叫做Gibbs采樣。本專利中我們采用Gibbs采樣,而隱層激活單元和可視層輸入之間的相關(guān)性差別就作為權(quán)值更新的主要依據(jù)。 采用這樣的方法可以使得訓(xùn)練時間會顯著的減少,因?yàn)橹恍枰獑蝹€步驟就可以接近最大似然學(xué)習(xí)。增加進(jìn)網(wǎng)絡(luò)的每一層都會改進(jìn)訓(xùn)練數(shù)據(jù)的對數(shù)概率,我們可以理解為越來越接近能量的真實(shí)表達(dá)。
6.構(gòu)建深信度關(guān)系網(wǎng)絡(luò); 在最高兩層,權(quán)值被連接到一起,這樣更低層的輸出將會提供一個參考的線索或者關(guān)聯(lián)給頂層,這樣頂層就會將其聯(lián)系到它的記憶內(nèi)容。在預(yù)訓(xùn)練后,深信度網(wǎng)絡(luò)可以通過利用帶標(biāo)簽數(shù)據(jù)用BP算法去對判別性能做調(diào)整。在這里,一個標(biāo)簽集將被附加到頂層(推廣聯(lián)想記憶),通過一個自下向上的,學(xué)習(xí)到的識別權(quán)值獲得一個網(wǎng)絡(luò)的分類面。這個性能會比單純的BP算法訓(xùn)練的網(wǎng)絡(luò)好。深信度網(wǎng)絡(luò)的BP算法只需要對權(quán)值參數(shù)空間進(jìn)行一個局部的搜索,這相比前向神經(jīng)網(wǎng)絡(luò)來說,訓(xùn)練是要快的,而且收斂的時間也少。
7.根據(jù)權(quán)利要求6所述的構(gòu)建的方法,其特征在于,把自動編碼及加入深信度網(wǎng)絡(luò);底端到 為了達(dá)到更好的效果,可以把堆疊自動編碼器加入深信度網(wǎng)絡(luò),它是通過用堆疊自動編碼器來替換傳統(tǒng)深信度網(wǎng)絡(luò)里面的限制伯茲曼機(jī)。這就使得可以通過同樣的規(guī)則來訓(xùn)練產(chǎn)生深度多層神經(jīng)網(wǎng)絡(luò)架構(gòu),但它缺少層的參數(shù)化的嚴(yán)格要求。與DBNs不同,自動編碼器使用判別模型,這樣這個結(jié)構(gòu)就很難采樣輸入采樣空間,這就使得網(wǎng)絡(luò)更難捕捉它的內(nèi)部表達(dá)。但是,降噪自動編碼器卻能很好的避免這個問題,并且比傳統(tǒng)的DBNs更優(yōu)。訓(xùn)練單一的降噪自動編碼器的過程和RBMs訓(xùn)練生成模型的過程一樣。
8.添加關(guān)于情感文本處理的內(nèi)容。根據(jù)權(quán)利要求1~6所述的方法,對文本進(jìn)行情感分類,其特征在于,對文本進(jìn)行預(yù)處理; 首先對評論文檔進(jìn)行切分,然后去掉停用詞,并以向量的形式表示再分成兩個部分,訓(xùn)練集和測試集。其中訓(xùn)練集還可以再分為兩個部分,分別用來預(yù)訓(xùn)練和調(diào)優(yōu),使用上述模型。其中預(yù)訓(xùn)練是無監(jiān)督的,使用一種貪婪逐層算法來得到初始網(wǎng)絡(luò)。然后在調(diào)優(yōu)過程中把上一步得到網(wǎng)絡(luò)的參數(shù)通過BP算法進(jìn)行調(diào)整。
【文檔編號】G06F17/30GK103729459SQ201410012464
【公開日】2014年4月16日 申請日期:2014年1月10日 優(yōu)先權(quán)日:2014年1月10日
【發(fā)明者】周延泉 申請人:北京郵電大學(xué)