徐積微
摘要:為了讓機(jī)器在人機(jī)交互中更好地理解人類感情,減少人機(jī)交互的障礙,我通過文獻(xiàn)研究、實證研究、實驗等研究方法對于一種在Python和MATLAB環(huán)境下用CNN與BP神經(jīng)網(wǎng)絡(luò)進(jìn)行交互式情感分析的可行性進(jìn)行闡述并論證。在論文中我首先分析研究了他人對該領(lǐng)域的研究現(xiàn)狀、提出研究對象目前存在的問題,然后通過搭建模型,訓(xùn)練模型,實驗驗證,觀察分析等反復(fù)研究來分析問題,探究影響因素,找出原因,最后提出解決方案。研究結(jié)果顯示:在Python和MATLAB環(huán)境下基于CNN與BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析,是可行的。研究創(chuàng)新點,在Python和MATLAB環(huán)境下用CNN與BP神經(jīng)網(wǎng)絡(luò)不僅能對單句進(jìn)行文本和聲音兩方面的情感分析,還能整體把握對話的情感走向;另一方面,因為CNN更適合用于圖像識別,而句子在一定意義上是與圖片等價的,因此該方案可以達(dá)到更高的分析效率。
關(guān)鍵詞:Python;MATLAB;卷積神經(jīng)網(wǎng)絡(luò)(CNN);BP神經(jīng)網(wǎng)絡(luò);交互式情感分析
中圖分類號:TN911文獻(xiàn)標(biāo)識碼:A文章編號:1672-9129(2018)06-0035-03
Interactive Emotional Analysis Based on CNN and BP Neural Network
XU Jiwei*
(Nanyang No. 1 Middle School in Henan Province, Henan Nanyang, 473400, China)
Abstract:in order to make the machine better understand the human feelings in human-computer interaction and reduce the obstacles of human-computer interaction, Through literature research, empirical research, experiments and other research methods, I elaborated and demonstrated the feasibility of interactive emotional analysis using CNN and BP neural networks in Python and MATLAB environments. In the paper, I first analyzed and studied the current situation of other people's research in this field and put forward the problems existing in the research subjects. Then I analyzed the problems through repeated studies such as model construction, training model, experimental verification, observation and analysis, and explored the influencing factors. Find out why and finally propose a solution. The results show that interactive emotional analysis based on CNN and BP neural network is feasible in Python and MATLAB environments. Research innovation points, in the Python and MATLAB environment, CNN and BP neural networks can not only analyze the emotion of a single sentence in terms of text and sound, but also grasp the emotional direction of the dialogue as a whole; On the other hand, because CNN is more suitable for image recognition and sentences are equivalent to pictures in a certain sense, the scheme can achieve higher analysis efficiency.
Keywords:Python; MATLAB; Convolution neural network(CNN); BP neural network; Interactive Emotional Analysis
引用:徐積微. 基于CNN與BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析[J]. 數(shù)碼設(shè)計, 2018, 7(6): 35-37.
Cite:XU Jiwei. Interactive Emotional Analysis Based on CNN and BP Neural Network[J]. Peak Data Science, 2018, 7(6): 35-37.
引言
人機(jī)交互類似于人類交流,機(jī)器與人類在人機(jī)交互中表達(dá)情感的一個重要的作用也是通過情感告知對方其現(xiàn)在的狀態(tài),并讓對方能推斷出其之前交互的狀態(tài)及接下來行動的傾向性,由此可知情感也是人機(jī)交互的核心。有研究顯示“人類交流中80%的信息都是情感性的信息”,情感性的信息在人機(jī)交互中也有相當(dāng)重要的作用。所以我們在人機(jī)交互中做好交互式情感分析對于機(jī)器很好地理解人類情感和意圖、進(jìn)而做“情感表達(dá)”、“需求分析”、“深度用戶建模”“人性化交互體驗”有重要意義。同時,MATLAB高效的數(shù)值計算及符號計算功能,能使用戶從繁雜的數(shù)學(xué)運算分析中解脫出來;它完備的圖形處理功能,能夠?qū)崿F(xiàn)計算結(jié)果和編程的可視化;它友好的用戶界面及接近數(shù)學(xué)表達(dá)式的自然化語言,使得學(xué)者易于學(xué)習(xí)和掌握;它功能豐富的應(yīng)用工具箱(如信號處理工具箱、通信工具箱等) ,能夠為用戶提供大量方便實用的處理工具。而Python語言簡單易學(xué),速度快,功能強(qiáng)大,方便使用,性能穩(wěn)定且免費、開源等優(yōu)點。這些都使得在Python和MATLAB環(huán)境下用CNN和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行交互式情感分析的研究具有可行性。
1? 相關(guān)概念
人機(jī)交互是指人與計算機(jī)之間使用某種對話語言,以一定的交互方式,為完成確定任務(wù)的人與計算機(jī)之間的信息交換過程。(MBA智能百庫)
Python[1](英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/), 是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)程序設(shè)計語言。Python具有豐富和強(qiáng)大的庫。它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫。(搜狗百科)
MATLAB?[1]?是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進(jìn)行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案。(百度百科)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,對于大型圖像處理有出色表現(xiàn)。它包括卷積層(convolutional layer)和池化層(pooling layer)。卷積神經(jīng)網(wǎng)絡(luò)包括一維卷積神經(jīng)網(wǎng)絡(luò)、二維卷積神經(jīng)網(wǎng)絡(luò)以及三維卷積神經(jīng)網(wǎng)絡(luò)。一維卷積神經(jīng)網(wǎng)絡(luò)常應(yīng)用于序列類的數(shù)據(jù)處理;二維卷積神經(jīng)網(wǎng)絡(luò)常應(yīng)用于圖像類文本的識別;三維卷積神經(jīng)網(wǎng)絡(luò)主要應(yīng)用于醫(yī)學(xué)圖像以及視頻類數(shù)據(jù)識別。一般地,CNN的基本結(jié)構(gòu)包括兩層,其一為特征提取層,每個神經(jīng)元的輸入與前一層的局部接受域相連,并提取該局部的特征。一旦該局部特征被提取后,它與其它特征間的位置關(guān)系也隨之確定下來;其二是特征映射層,網(wǎng)絡(luò)的每個計算層由多個特征映射組成,每個特征映射是一個平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。此外,由于一個映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù)。卷積神經(jīng)網(wǎng)絡(luò)中的每一個卷積層都緊跟著一個用來求局部平均與二次提取的計算層,這種特有的兩次特征提取結(jié)構(gòu)減小了特征分辨率。(百度百科)
BP(back propagation)神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McClelland為首的科學(xué)家提出的概念,是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)。BP網(wǎng)絡(luò)是在輸入層與輸出層之間增加若干層(一層或多層)神經(jīng)元,這些神經(jīng)元稱為隱單元,它們與外界沒有直接的聯(lián)系,但其狀態(tài)的改變,則能影響輸入與輸出之間的關(guān)系,每一層可以有若干個節(jié)點。(搜狗百科)
本文在Python和MATLAB環(huán)境下用CNN和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行交互式情感分析是指使用數(shù)學(xué)軟件MATLAB中的DeepLearnToolbox-master工具包建立兩個CNN,并使用相關(guān)的文本語料庫或相關(guān)的語譜圖圖庫對其進(jìn)行訓(xùn)練和測試,使用Python語言搭建BP神經(jīng)網(wǎng)絡(luò)并對其進(jìn)行訓(xùn)練和測試,使用BP神經(jīng)網(wǎng)絡(luò)對前兩個CNN分析所得向量進(jìn)行進(jìn)一步的分析,從而得出交互式情感分析的結(jié)果(結(jié)果不僅要包含聊天對象的情緒信息,還要包含由對話歷史推導(dǎo)出的情緒走向)。
2? 研究現(xiàn)狀
在當(dāng)今的“大數(shù)據(jù)+深度模型”時代,人類對于深度學(xué)習(xí)在情感分析方面有著多種方法的綜合創(chuàng)新,例如有人使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和支持向量機(jī)進(jìn)行情感分析,有人使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行情感分析,有人使用LSTM結(jié)合句法分析樹進(jìn)行情感分析,還有人把多模態(tài)情感分析技術(shù)(文字、語音、圖像)加入到基于自然語言理解技術(shù)的人機(jī)交互系統(tǒng)中進(jìn)行情感分析。與此同時,人類在人機(jī)交互中語音及圖像的智能識別和理解方面取得了驚人的進(jìn)展,這有效推動了人機(jī)交互的發(fā)展。在基于深度學(xué)習(xí)的算法CNN和BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析的現(xiàn)有研究方面,國內(nèi)外許多專家學(xué)者已經(jīng)做了一些深入的探索,在一些權(quán)威的網(wǎng)站上有相關(guān)的論文,例如Xiang Zhang和Yann LeCun在《Text Understanding from Scratch》中,證明了CNN可以在沒有詞匯、短語、句子和其它任何人類語言知識的情況下,也能在文本理解上取得出色的表現(xiàn)。Yoon Kim在《Convolutional Neural Networks for Sentence Classification》中描述了將CNN用于文本分類任務(wù)的過程和結(jié)果,展示了卷積神經(jīng)網(wǎng)絡(luò)在自然語言處理方面的成績;同時也有研究顯示,CNN還可以用于語義分析、釋義檢測、語音識別等領(lǐng)域;3D CNN可以用于視頻分類,動作識別等領(lǐng)域;另外,還有一些研究者研究了基于BP神經(jīng)網(wǎng)絡(luò)情感分析及不同池化模型的卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)性能等等。這都為基于CNN和BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析的研究提供了科學(xué)依據(jù),也同樣是本研究的靈感來源。
3? 目前存在的問題
雖然機(jī)器在理解人類語言方面有所突破,但是機(jī)器在整體把握對方的情感以及應(yīng)對強(qiáng)烈情感所造成的語序混亂兩方面依然存在障礙。為了解決這個問題,我通過聽專題課,文獻(xiàn)研究,實證研究、實驗等研究方法確定研究方向——基于CNN與BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析,并對其可行性進(jìn)行闡述并論證。提出論文研究中目前存在的問題——如何在Python和MATLAB環(huán)境下用CNN和BP神經(jīng)網(wǎng)絡(luò)進(jìn)行交互式情感分析,從而在人機(jī)交互中,使機(jī)器能進(jìn)一步讀懂、聽懂人類,以期達(dá)到更好的人機(jī)交互效果?
4? 研究過程
為了嘗試解決情感分析目前存在的問題,驗證在Python和MATLAB環(huán)境下用CNN與BP神經(jīng)網(wǎng)絡(luò)進(jìn)行交互式情感分析的設(shè)想的可行性,我先反復(fù)認(rèn)真復(fù)習(xí)創(chuàng)新教育實驗室里的相關(guān)課程,同時使用萬方數(shù)據(jù),TensorFlow Playground等網(wǎng)站對CNN、Python、BP神經(jīng)網(wǎng)絡(luò)和MATLAB進(jìn)行學(xué)習(xí);然后在電腦上安裝相關(guān)軟件;然后學(xué)習(xí)使用MATLAB搭建CNN,使用Python搭建BP神經(jīng)網(wǎng)絡(luò)。繼而通過實驗驗證,觀察分析等反復(fù)研究來探索人機(jī)交互中的單句情感分析及其整體情感趨勢分析來探究影響因素,找出原因,最后提出解決方案。探索如何讓機(jī)器在人機(jī)交互中更好地理解人類感情,減少人機(jī)交互的障礙。
假設(shè)有MessNum次對話。
第一步,使用Python語言搭建一個BP神經(jīng)網(wǎng)絡(luò),使用MATLAB搭建第一個CNN并使用相關(guān)的文本語料庫對其進(jìn)行訓(xùn)練,使得該CNN能夠通過不同詞語的搭配來識別用戶的情緒,如語氣詞,否定詞的搭配等。這一CNN會輸出一個實數(shù)TextEmo∈(0, 1)。對n次對話會輸出n個這樣的實數(shù),這些實數(shù)構(gòu)成一個n維向量:
本向量將作為BP神經(jīng)網(wǎng)絡(luò)的輸入。
第二步,使用MATLAB建立另外一個CNN并使用相關(guān)的語譜圖圖庫對其進(jìn)行訓(xùn)練,使得該CNN能夠抽取語譜圖的局部特征,對語譜圖的每個部分根據(jù)情緒 賦上權(quán)值(0~1),最終得到一個一元函數(shù)f(t)。
對于一句時間為t0的話,得出結(jié)果。
最后對于第n次對話,同樣創(chuàng)建一個多維向量
本向量同樣作為BP神經(jīng)網(wǎng)絡(luò)的輸入。
第三步,將以上兩步得到的兩個向量分別作為矩陣SingleSen的兩個列
輸入到使用Python搭建的BP神經(jīng)網(wǎng)絡(luò)中,得到最終結(jié)果
a,b的意義如下(橫軸為a,縱軸為b)
技術(shù)細(xì)節(jié):在第一步中,通過中文切詞將句子分成小塊,以此類比圖像識別中的像素。卷積層使用的fliter是一個1*m矩陣,其中m根據(jù)要處理的句子長度的平均值確定。卷積層的輸出是句子成分關(guān)系(如主-謂,謂-賓,賓-賓補(bǔ)等)。切詞直接得到的結(jié)果是語義特征。將句子成分關(guān)系輸入一個BP神經(jīng)網(wǎng)絡(luò)直接得到一個打分,同時對語義特征進(jìn)行池化,除去不必要的虛詞,介詞等句子成分再將池化后的語義特征輸入BP神經(jīng)網(wǎng)絡(luò)得到打分,兩個打分的加權(quán)合即為最終結(jié)果。
在第二步和第三步中,先使用相關(guān)的API接口將音頻轉(zhuǎn)化為語譜圖,直接將語譜圖輸入CNN,通過多層的卷積和池化得到能概括語譜圖特征的片段,分析這些片段的情感特征。進(jìn)而得到最終結(jié)果。
例如,我們對人機(jī)交互中“我的錢包被偷了”這句話進(jìn)行情感分析,過程如下:
第一步:使用Python語言搭建一個BP神經(jīng)網(wǎng)絡(luò)并對其進(jìn)行訓(xùn)練和測試。
使用MATLAB搭建兩個CNN模型并使用相關(guān)的文本語料庫或相關(guān)的語譜圖圖庫分別對它們進(jìn)行訓(xùn)練和測試。
把含有“我的錢包被偷了”這句話的人機(jī)交互對話輸入兩個CNN,其中使用相關(guān)的文本語料庫對其進(jìn)行訓(xùn)練測試的CNN能夠通過不同詞語的搭配來識別用戶的情緒,這一CNN
會輸出一個實數(shù)TextEmo∈(0, 1)。對n次對話會輸出n個這樣的實數(shù),這些實數(shù)構(gòu)成一個n維向量:
(本向量將作為BP神經(jīng)網(wǎng)絡(luò)的輸入。)
第二步其中使用相關(guān)的語譜圖圖庫對其進(jìn)行訓(xùn)練測試的CNN能夠抽取語譜圖的局部特征,對語譜圖的每個部分根據(jù)情緒 賦上權(quán)值(0~1),最終得到一個一元函數(shù)f(t)。假設(shè)“我的錢包被偷了”這句話時間為t0的話,得出結(jié)果。
最后對于第n次對話,同樣創(chuàng)建一個多維向量
(本向量同樣作為BP神經(jīng)網(wǎng)絡(luò)的輸入。)
第三步,將以上兩部得到的兩個向量分別作為矩陣SingleSen的兩個列
輸入到使用Python搭建的BP神經(jīng)網(wǎng)絡(luò)中,得到最終結(jié)果
由以上研究可知,最終的輸出不僅包含聊天對象的情緒信息,還包含由對話歷史推導(dǎo)出的情緒走向,所以在Python和MATLAB環(huán)境下用CNN和BP神經(jīng)網(wǎng)絡(luò)指導(dǎo)機(jī)器,利用已知數(shù)據(jù)得出適當(dāng)?shù)哪P蛯换ナ角楦凶龀鲚^為正確的分析,從而達(dá)到更好的人機(jī)交互效果。
5? 影響因素及原因
由于深度學(xué)習(xí)發(fā)展歷程緩慢艱辛,基于CNN和BP神經(jīng)網(wǎng)絡(luò)的交互式情感分析的研究仍然處于〃襁褓〃階段,研究中我們?nèi)匀幻媾R諸如程序設(shè)計、理論、建模等一系列難題;而且要實現(xiàn)人性化交互體驗,需要一整套的情感系統(tǒng);而作為高中生的我來說,由于受知識面的限制,研究起來尤其障礙重重。鑒于以上三個方面的原因,我在研究實驗中深切體會到:
CNN和Bp神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練和測試,文本的中文詞切,語音語譜圖的生成研究中困難很多,極大地影響實驗效果
6? 解決方案
對于人機(jī)交互中的單句情感分析及其整體情感趨勢分析,我使用數(shù)學(xué)軟件MATLAB中的DeepLearnToolbox-master工具包建立CNN,并使用相關(guān)的文本語料庫或相關(guān)的語譜圖圖庫對其進(jìn)行訓(xùn)練,使用Python語言搭建BP神經(jīng)網(wǎng)絡(luò),對前兩個CNN分析所得向量進(jìn)行進(jìn)一步的分析得出結(jié)果。
本解決方案的創(chuàng)新之處在于將傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)在模式識別方面的優(yōu)勢與前沿的CNN“局部權(quán)值共享”的特點結(jié)合起來,并將問題分為兩個層次(單句情感分析,整體情感趨勢分析),采用兩種神經(jīng)網(wǎng)絡(luò)分別解決。本方案可以充分發(fā)揮兩種神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,達(dá)到質(zhì)量與效率的最優(yōu)化。
參考文獻(xiàn):
[1]????? 謝梁?魯穎?勞虹嵐.Keras快速上手[M]:基于Python的深度學(xué)習(xí)實戰(zhàn). 電子工業(yè)出版社2017年8月出版,978-7-121-31872-6
[2]????? Mengchen Liu, Jiaxin Shi, Zhen Li, Chongxuan Li, Jun Zhu, Shixia Liu?Towards Better Analysis of Deep Convolutional Neural Networks[J].IEEE Transactions on Visualization and Computer Graphics,2017,23(1):91-100
[3]????? 王盛玉;曾碧卿;胡翩翩;基于卷積神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化的中文情感分析[J].計算機(jī)工程,2017,08
[4]????? Shira0905.情感分析進(jìn)階-CNN[OL].(2017-12-08)[2018-08-05]簡書? - https://www.jianshu.com
[5]????? 鄧霖等竹間智能 自然語言與深度學(xué)習(xí)小組.深度學(xué)習(xí)在情感分析中的應(yīng)用.(2017-07-13)[2018-08-05]搜狐科技- https://it.sohu.com
[6]????? 魏秀參.解析卷積神經(jīng)網(wǎng)絡(luò)-深度學(xué)習(xí)實踐[OL].(2018-04-07 上傳)[2018- 08-05]中國軟件開發(fā)網(wǎng)- https://www.csdn.net
[7]????? Coursera吳恩達(dá) 卷積神經(jīng)網(wǎng)絡(luò)[OL](2018-7-23) [2018-08-05]知乎專欄 - https://zhuanlan.zhihu.com/... -
[8]????? 鄧霖等竹間智能 自然語言與深度學(xué)習(xí)小組.聊天中的情感分析有多難?[OL].(2017-06-06)[2018-08-05]知乎- https://www.zhihu.com
[9]????? 顏才炳 基于BP神經(jīng)網(wǎng)絡(luò)的語音情感識別算法的研究[D].武漢:武漢理工大學(xué),2009.