宋文浩
(諸城市實驗中學(xué),山東濰坊,261000)
神經(jīng)網(wǎng)絡(luò)的研究在機器學(xué)習(xí)中具有重要的意義。人工神經(jīng)網(wǎng)絡(luò)以其特有的優(yōu)越性,成為研究的熱點。神經(jīng)網(wǎng)絡(luò)的特點可以從三個方面來介紹:第一,人工神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)能力。對于圖像識別問題,只需要將圖片及其對應(yīng)類別輸入神經(jīng)網(wǎng)絡(luò),不需要構(gòu)造復(fù)雜的組合特征,神經(jīng)網(wǎng)絡(luò)可以通過強大的自學(xué)習(xí)能力捕捉特征之間的關(guān)聯(lián),實現(xiàn)圖像識別功能。第二,人工神經(jīng)網(wǎng)絡(luò)的聯(lián)想存儲功能。第三,人工神經(jīng)網(wǎng)絡(luò)的高速優(yōu)化能力。對于機器學(xué)習(xí)問題來說,復(fù)雜度越高的問題,尋找優(yōu)化解的計算量往往會越大。而設(shè)計好的反饋型人工神經(jīng)網(wǎng)絡(luò),則能夠充分利用計算機高速運算的能力,能夠大大縮短尋找優(yōu)化解的時間。
娛樂文章按體裁能分成七類:資訊熱點,電影電視劇報道評論,人物深扒,組圖盤點,明星寫真,行業(yè)報道,機場圖。本文根據(jù)娛樂文章的文本信息構(gòu)建神經(jīng)網(wǎng)絡(luò),將文章進行多分類。
娛樂新聞數(shù)據(jù)集包含了7個特征:
名詞 涵義 解釋資訊熱點普通資訊/即時熱點/回應(yīng)/聲明/快訊/突發(fā)/明星偷拍/明星評論1.重大娛樂事件,比如明星的生老病死等,先發(fā)簡短的快訊;2.核心當(dāng)事人的發(fā)聲;3.常規(guī)的娛樂資訊、微博上的明星吃喝拉撒等日常;4.針對明星本人、明星事件或行為發(fā)表的觀點評論;5.娛樂狗仔偷拍的明星男女密會、私下行程等。1.電影前期宣傳及上映后的影視評論類;2.電視劇內(nèi)容宣傳評論,演員角色分析等3.綜藝欄目的宣傳介紹,嘉賓言行評論、看點指南等;4.音樂劇、音樂制作人、歌手唱片評論等內(nèi)容。人物深扒 人物深扒/人物專訪電影電視劇報道評論電影/電視/綜藝劇情分析報道/音樂評論1.深挖人物生平、不為人知的故事,與他人的關(guān)系類;2.聚焦影視劇作品或人物上,進行單獨一對一的訪談類;組圖盤點 以圖片為主 根據(jù)一個線索進行同類主題延伸,盤點類似的人、事、作品明星寫真 明星寫真/街拍 明星的宣傳硬照、高品質(zhì)的圖片行業(yè)報道 行業(yè)報道或分析對產(chǎn)業(yè)現(xiàn)狀分析、幕后揭秘、未來預(yù)測、公司相關(guān)且?guī)в忻黠@的行業(yè)觀察和前沿報道的內(nèi)容,側(cè)重于數(shù)據(jù)分析和圖標(biāo)展現(xiàn)機場圖 明星現(xiàn)身機場 明星現(xiàn)身機場的照片等
通常,在工程實踐中,拿到的實際數(shù)據(jù)往往存在以下問題:數(shù)據(jù)缺失、數(shù)據(jù)重復(fù)、數(shù)據(jù)冗余等。這就要求我們在將數(shù)據(jù)喂入模型開始訓(xùn)練之前,針對現(xiàn)有數(shù)據(jù)存在的問題進行特定的處理,即數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理要具有針對性,對于不同類型的數(shù)據(jù)以及不同類型的數(shù)據(jù)問題,采取的預(yù)處理方式也不同。我們的娛樂新聞數(shù)據(jù)集的預(yù)處理一共包含分詞,去停用詞和計算TF-IDF三個步驟。對訓(xùn)練數(shù)據(jù)進行整體分析,抽取出正文和標(biāo)簽部分作為輸入。對測試數(shù)據(jù)做相同處理,抽取出測試數(shù)據(jù)的真實標(biāo)簽和正文內(nèi)容。
1.2.1 去停用詞
停用詞包括標(biāo)點、數(shù)字、單字等對于分析文本內(nèi)容貢獻很小的詞語以及其它一些無意義的詞。這些詞(如“你我他”)往往無法表示文本的特征,對于模型的訓(xùn)練幫助不大,應(yīng)當(dāng)從文本中清除掉。本文用到的是哈工大的停用詞表。將文章中的詞與停用詞表中的詞作比較,如果在表中出現(xiàn)該詞,就將其刪除,如果沒有出現(xiàn),就跳過。
1.2.2 分詞
文本分詞是文檔處理中的一個必不可少的操作,因為后續(xù)的操作需要用文檔中的詞來表征這篇文檔的內(nèi)容。本文中對文本進行分詞步驟如下:
(1)構(gòu)造詞典
(2)分詞操作
目前主要用來構(gòu)造詞典的方法是字典樹。分詞主要采用的有正/反/雙向最大匹配以及語言模型和最短路徑等算法。
我們使用的是結(jié)巴分詞程序包。
1.2.3 tf-idf指標(biāo)
tf-idf(term frequency-inverse document frequency)又稱之逆文檔頻率,是一種統(tǒng)計學(xué)上對詞出現(xiàn)的頻繁程度的一種量化指標(biāo)。用于衡量一個單詞在一篇文章中或者在一個大型的語料庫中的重要程度,詞語的重要性和詞語在一篇文檔中出現(xiàn)的次數(shù)有著正相關(guān)關(guān)系,但和整個語料庫中該次出現(xiàn)的頻率有著負(fù)相關(guān)關(guān)系。通俗地說,就是一個詞在某篇文章中出現(xiàn)的次數(shù)越高,而在這一堆文章中的其他文章中出現(xiàn)越少,它就更能表征這篇文章的內(nèi)容。
詞頻(TF)指的是一個給定的詞語在某篇文章中出現(xiàn)的次數(shù),為了防止文章過長導(dǎo)致頻率偏向長文章,這個出現(xiàn)的次數(shù)一般會采用某種算法進行歸一化操作(通常采用該次出現(xiàn)的頻數(shù)/該篇文檔的總詞數(shù))。TF(W)=在某一類中詞條W出現(xiàn)的次數(shù)除以該類中所有的詞條數(shù)目。
IDF的計算方法是由語料庫中文檔的總數(shù)除上出現(xiàn)該詞語的文檔數(shù),將結(jié)果再取對數(shù)。IDF=log(語料庫的文檔總數(shù)除以包含詞條w的文檔數(shù)+1),分母之所以要加1,是為了避免分母為0 IDF=log(語料庫的文檔總數(shù)包含詞條w的文檔數(shù)+1),分母之所以要加1,是為了避免分母為0。
最終輸入模型的即每篇文章的TF-IDF值。
為了模型的訓(xùn)練與模型的性能檢驗,我們需要把數(shù)據(jù)集分為訓(xùn)練集和測試集兩部分。數(shù)據(jù)集共包含9000+訓(xùn)練數(shù)據(jù),2000+測試數(shù)據(jù)。
2.1.1 基本原理
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):一個經(jīng)典的神經(jīng)網(wǎng)絡(luò)包含三個層次。紅色的是輸入層,綠色的是輸出層,紫色的是中間層(也叫隱藏層)。輸入層有3個輸入單元,隱藏層有4個單元,輸出層有2個單元。如圖1所示。
圖1
神經(jīng)元結(jié)構(gòu)如圖2所示。
一個神經(jīng)元一般由輸入z和輸出a兩個函數(shù)組成。每個神經(jīng)元和其他的每個神經(jīng)元都具有一個連接權(quán)重,它們各自的權(quán)重通常是一些隨機值。對于一個神經(jīng)元,將所有對應(yīng)的權(quán)重和上一層的輸出a相乘,然后,把這些值相加。然后運用激活函數(shù)對這個值進行非線性變換,這個激活函數(shù)的輸出成為這個神經(jīng)元的最后的輸出。Z=n0*w0+n1w1+n2w2+b.激活函數(shù)常用sigmoid函數(shù):sigmoid函數(shù)的輸出介于0~1之間,它是人工神經(jīng)網(wǎng)絡(luò)中比較常用的一種激活函數(shù)。
圖2
神經(jīng)網(wǎng)絡(luò)(感知機)算法:訓(xùn)練的目的是求出最適權(quán)重(即W)與最適b。為描述預(yù)測模型的準(zhǔn)確度,在此引入了損失函數(shù)。求最優(yōu)解的的過程就是求損失函數(shù)最小的過程。公式如下:
2.1.2 前向傳播算法
神經(jīng)網(wǎng)絡(luò)的前向傳播算法,在神經(jīng)網(wǎng)絡(luò)中,下一層的輸入是通過上一層結(jié)點進行卷積運算(加權(quán)運算),并且加上bias偏置項,最后再通過一個非線性函數(shù)進行非線性變換而得到。這里的非線性函數(shù)也就是激活函數(shù),常見的激活函數(shù)包括ReLu, sigmoid等。這里得到的結(jié)果就是本層結(jié)點的輸出,也是下一層的輸入。重復(fù)以上過程,進行一層層的運算,直到網(wǎng)絡(luò)最后一層,得到輸出層結(jié)果。
不管維度多高,前向傳播每層進行的計算過程都可以用如下公式表示:
上述公式中,l表示網(wǎng)絡(luò)層數(shù),*表示向量運算,W為權(quán)重,b為偏置,σ表示激活函數(shù)。本文采取ReLu作為激活函數(shù)。
2.1.3 反向傳播算法
網(wǎng)絡(luò)初始訓(xùn)練時采用的隨機初始權(quán)重得到的輸出結(jié)果和實際值之間肯定存在很大的偏差,因此,需要更新網(wǎng)絡(luò)中每一層的權(quán)重值,優(yōu)化網(wǎng)絡(luò)的預(yù)測準(zhǔn)確率,此時需要使用反向傳播算法。
假設(shè)前向傳播算法計算得到的輸出值為yk,yk表示輸出層輸出的對第k個結(jié)果的預(yù)測,而第k個結(jié)果的真實值記為tk,定義損失函數(shù)如下:
反向傳播算法也就是采用梯度下降的方法對參數(shù)W和偏置b進行迭代優(yōu)化,再梯度下降過程中需要計算誤差函數(shù)分別對網(wǎng)絡(luò)中每一層的參數(shù)W和b的偏導(dǎo)數(shù)。從而找到梯度下降最快的方向(即損失函數(shù)下降最快的方向),從而優(yōu)化算法模型。
神經(jīng)網(wǎng)絡(luò)是根據(jù)網(wǎng)絡(luò)深度進行劃分,工作原理主要包括前向傳播和反向傳播。通常的神經(jīng)網(wǎng)絡(luò)包括輸入層,隱藏層,和輸出層。隱藏層的深度往往遠(yuǎn)遠(yuǎn)大于1。我們通過輸入特征,進行前向傳播,然后計算出輸出誤差(真實值和計算值之間的誤差)。反向傳播算法的目的即通過得到的輸出誤差,不斷的迭代,從而更新網(wǎng)絡(luò)的權(quán)重,不斷的減小訓(xùn)練誤差,達到最小化模型誤差的目的。從而提高網(wǎng)絡(luò)預(yù)測的準(zhǔn)確率和泛化能力。
2.1.4 過擬合問題
過擬合,就是擬合函數(shù)需要顧忌每一個點,對訓(xùn)練模型的一些噪音或者離群點也做出了擬合,最終形成的擬合函數(shù)對測試集數(shù)據(jù)擬合的有所欠缺,導(dǎo)致預(yù)測結(jié)果波動很大。可以很明顯地看到,模型在訓(xùn)練集上效果很好,但是在測試集上效果很差。這會導(dǎo)致模型泛化能力弱,達不到預(yù)期的結(jié)果。針對神經(jīng)網(wǎng)絡(luò)的過擬合問題,通常采用隨機失活部分神經(jīng)元(dropout)的方法進行解決。即,簡化了神經(jīng)網(wǎng)絡(luò)的模型,避免模型過于復(fù)雜而導(dǎo)致過擬合問題。本文中的模型也采用了dropout方法來降低過擬合。
構(gòu)建了結(jié)構(gòu)為:64個神經(jīng)元的Dense層->0.2Dropout層->7個神經(jīng)元的Dense層的神經(jīng)網(wǎng)絡(luò),采用SGD算法,設(shè)置了10個epoch,batch size為128。在訓(xùn)練集上達到80.89%的準(zhǔn)確率,在測試集上達到了73.27%的準(zhǔn)確率,如圖3所示。
圖3
本項目根據(jù)具體的娛樂新聞分類數(shù)據(jù),在該數(shù)據(jù)上探索了神經(jīng)網(wǎng)絡(luò)算法。構(gòu)建了結(jié)構(gòu)為:64個神經(jīng)元的Dense層->0.2Dropout層->7個神經(jīng)元的Dense層的神經(jīng)網(wǎng)絡(luò),采用SGD算法,設(shè)置了10個epoch,batch size為128。在訓(xùn)練集上達到80.89%的準(zhǔn)確率,在測試集上達到了73.27%的準(zhǔn)確率。表現(xiàn)出了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法的優(yōu)異性。