摘 要:神經(jīng)網(wǎng)絡算法是深度學習研究的重點,遺傳算法是一種自適應優(yōu)化搜索算法,模擬退火算法是尋找最優(yōu)解的算法,本文主要分析了神經(jīng)網(wǎng)絡,遺傳算法和模擬退火算法的特點和缺陷,研究BP神經(jīng)網(wǎng)絡和遺傳模擬退火算法相結合的技術,從發(fā)揮算法的優(yōu)點基礎上,提出了一個基于模擬退火遺傳算法的BP神經(jīng)網(wǎng)絡模型,并應用于某觀影俱樂部,作為新電影上映預測和用戶推薦,實驗結果表明:該算法在收斂性和準確率上都有較好的效果。
關鍵詞:BP神經(jīng)網(wǎng)絡;模擬退火;遺傳算法;收斂
中圖分類號:TP391 文獻標識碼:A
文章編號:2096-1472(2018)-07-36-03
1 引言(Introduction)
神經(jīng)網(wǎng)絡作為人工智能的重要組成部分,一直是神經(jīng)科學、認知科學、行為科學、計算機科學等關注的焦點。自AlphaGo擊敗職業(yè)圍棋選手,第一次戰(zhàn)勝人類圍棋冠軍以來,人類再次掀起了研究機器學習,深度學習的熱潮。神經(jīng)網(wǎng)絡作為深度學習的基本模型,吸引了大批研究人員的注意,在神經(jīng)網(wǎng)絡的理論模型,開發(fā)工具,學習算法等方面經(jīng)過多年研究,在語音識別,圖像識別,非線性預測模型,模式識別等方面取得令人矚目的成就。我們國家決定從今年開始大力發(fā)展基于大數(shù)據(jù)的人工智能,即機器學習和深度學習。
人工神經(jīng)網(wǎng)絡[1]是能模擬和反映人腦部分特征的一種仿真信息處理系統(tǒng),該系統(tǒng)基于模仿人腦系統(tǒng)的結構和功能而設計。從神經(jīng)網(wǎng)絡建?;蛏窠?jīng)網(wǎng)絡學習預測的角度分析,神經(jīng)網(wǎng)絡都必須包含神經(jīng)網(wǎng)絡拓撲結構[2],即學習模型,神經(jīng)元特征函數(shù)和目標函數(shù),機器學習算法,存在對訓練樣本要求高,數(shù)據(jù)量要求大的困難,而對于小數(shù)據(jù)訓練樣本則容易導致誤差大,預測精度低等局限性。
遺傳算法[3,4]GA是一種仿生算法,該算法模擬生物在自然環(huán)境中的遺傳和進化過程而形成的一種自適應全局優(yōu)化概率搜索算法。遺傳算法以求得最適應環(huán)境個體為目的,從任意一個初始群體出發(fā),經(jīng)過選擇、交叉、變異操作來產(chǎn)生一個更適應環(huán)境的新的個體,經(jīng)過多次迭代,使得新群體進化到搜索空間中越來越好的區(qū)域,經(jīng)過一代代的進化,最后收斂到一群最適應環(huán)境的個體,求得最優(yōu)解。
模擬退火算法[4]SA從設定一個較高溫度開始,伴隨溫度參數(shù)的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函數(shù)的全局最優(yōu)解的過程。
由于BP神經(jīng)網(wǎng)絡易于陷入局部極小值,收斂速度慢等問題[2,5],采用梯度下降尋優(yōu)迭代次數(shù)多,效率低下,而GA和SA都是基于概率分布機制的優(yōu)化算法,兩者結合,使用SA可以避免GA早熟問題,從而增強全局和局部搜索能力,本文在此基礎上提出模擬退火遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡算法,并建立模型用于預測。
2 基于遺傳模擬退火的BP神經(jīng)網(wǎng)絡(BP neural network based on genetic simulated annealing algorithm)
2.1 遺傳模擬退火算法
遺傳模擬退火算法是將遺傳算法和模擬退火算法相結合,模擬退火算法具有較強的全局搜索能力尋得最優(yōu)解的效率高,并能使搜索過程避免陷入局部最優(yōu)解,但模擬退火算法對全局解空間了解不多。而遺傳算法的局部搜索能力較差,易于陷入局部最優(yōu)解,但把握搜索過程的總體能力較強,遺傳模擬退火算法以提高算法效率為目的,結合了遺傳算法和模擬退火算法的優(yōu)點。
遺傳模擬算法[3]從一組隨機產(chǎn)生的初始解開始進行全局最優(yōu)解的搜索過程,該過程正好符合反向神經(jīng)網(wǎng)絡解空間最優(yōu)值的搜尋,通過選擇、交叉、變異等遺傳操作產(chǎn)生一組新的個體,熱后對所產(chǎn)生的各個個體進行模擬退火過程,類似隨機梯度下降法,以其結果作為下一代群體中的個體。
2.2 BP神經(jīng)網(wǎng)絡
BP神經(jīng)網(wǎng)絡[6,7],也叫反向傳播神經(jīng)網(wǎng)絡,按反向誤差傳播算法訓練權重和閾值的多層神經(jīng)網(wǎng)絡,采用梯度下降算法作為優(yōu)化函數(shù),對權重和閾值的誤差求導,獲得新的權值和閾值來跟新整個神經(jīng)網(wǎng)絡的權值和閾值,以求得全局最小值。誤差計算通常用LSM[8]公式,計算如下:
其中,outputs是神經(jīng)網(wǎng)絡輸出集合,D是所有訓練樣本的集合,tkd是和訓練樣本d對應的第k個真實值,okd是與訓練樣例d對應的第k個輸出值。這個函數(shù)的解空間有對應無數(shù)函數(shù),構成了一個搜索誤差曲面[8],需要在這個解空間上找到這個曲面上的最小值點即最優(yōu)解。問題轉化為在曲面空間求極值,為了保證能找到最小值,確保算法快速收斂,優(yōu)化效率提升,合適的學習步長是一個重要參數(shù),不宜太大也不宜太小。
2.3 基于遺傳模擬退火的BP神經(jīng)網(wǎng)絡
利用模擬退火算法[3]優(yōu)化遺傳算法并利用遺傳算法的全局尋優(yōu)搜索功能,獲得每一次的最優(yōu)種群(權重和閾值),接著利用BP的局部尋優(yōu)特征反向尋得最優(yōu)值[9]。
3 基于遺傳模擬退火的BP神經(jīng)網(wǎng)絡算法及模型(The BP neural network algorithm and model based on genetic simulated annealing algorithms)
3.1 數(shù)據(jù)模型
假設輸入節(jié)點為三個i1、i2、i3,隱藏節(jié)點為兩個h1、h2,輸出節(jié)點為一個o的三次神經(jīng)網(wǎng)絡,隨機生成初始BP神經(jīng)網(wǎng)絡權值和閾值。
為了使用遺傳模擬退火對BP神經(jīng)網(wǎng)絡的權值和閾值進行訓練優(yōu)化,根據(jù)任務,可以建立以下四元組:
Q是一個權值W的矩陣,其原始值隨機生成;
T是一個閾值的矩陣,原始值隨機生成;
X是一個w*t的矩陣,對應輸入層到第一個隱藏層的閾值矩陣,獲知第一個隱藏層到第二個隱藏層的閾值矩陣……
設計輸出誤差作為目標函數(shù):,算法求解的過程就是利用模擬退火算法尋求最優(yōu)解的過程。
3.2 算法
Begin
While不滿足性能要求do
Temp=10;
‘產(chǎn)生初始任務集;
∑=(I,Q,T,X);
TA={I,R[1..n]};
當temp==1循環(huán)
i=crossover(i);對樣本進行交叉運算
i=mutation(i);樣本進行變異運算
‘根據(jù)目標函數(shù)對每個個體進行模擬退火即選擇;
;目標函數(shù)
如果(?di<0)
則采用新方案
否則{計算prob=exp;
隨機產(chǎn)生一個rand(0 如果(prob 否則放棄新方案; } temp=temp*a; BP神經(jīng)網(wǎng)絡算法訓練 end; 3.3 算法分析 該算法的優(yōu)化過程是基于對目標函數(shù)的最小化過程,?di的最小化過程模擬自然界的退火過程,由一個逐步冷卻的溫度temp來控制,一個冷卻機制Tempi+1=α*tempi,α稱為冷卻率,0<α<1,此處α用作神經(jīng)網(wǎng)絡的步長,步長的大小影響最小化的過程,模擬退火算法易于避免陷入局部最優(yōu),結合遺產(chǎn)算法全局搜索提高算法效率。 K是玻爾茲曼常數(shù),temp也可以看成是一個常數(shù)。 3.4 數(shù)據(jù)模型 首先需要一個強大的數(shù)據(jù)銀行來建立模型,這些數(shù)據(jù)從MovieLens提供的數(shù)據(jù)庫獲得[10],這些數(shù)據(jù)包括六個csv文件,一個影評文件,包括userId、movieId、rating、timestamp;一個標簽文件,包括userId、movieId、tag、timestamp;一個電影文件,包括movieId、title、genres;一個鏈接文件(電影來源),包括movieId、imdbId、tmdbId;兩個標記相關性文件,包括movieId、tagId、relevance、tagId、tag。這些數(shù)據(jù)顯示每個觀眾觀影信息及影評,本文的目標是利用遺傳模擬退火的BP神經(jīng)網(wǎng)絡模型,對這些數(shù)據(jù)建立模型,通過對模型的訓練進行預測。 預測某觀影俱樂部中的n位會員對于某部電影的評分范圍,首先對電影tag和分類數(shù)據(jù)進行匯總處理,得到電影的特征(電影類型和n個最高的tag),計算電影A與某個用戶曾經(jīng)看過所有電影的相似度以相似度最高的影片的評分,作為評分。實驗數(shù)據(jù)描述見表1。 3.5 實驗結果與分析 通過特征提取降維操作,得到核心屬性為五個(A1,A2,A3,A4,A5),見表2。 采用十折交叉選取數(shù)據(jù)進行實驗[11],該實驗預測某一影片的評分,loss是損失函數(shù)的大小,val_loss是validation_loss,指驗證集的loss,均方誤差。并通過Keras搭建神經(jīng)網(wǎng)絡仿真平臺獲得以下實驗結果[12]。 從圖1可以看出,基于模擬退火的BP神經(jīng)網(wǎng)絡有較好的收斂性,在迭代20次左右算法趨于收斂。收斂速度快,無鋸齒現(xiàn)象。 從圖2可以看出,系統(tǒng)的預測值和真實值之間的比較,通過調參后預測值可以更接近真實值。 4 結論(Conclusion) 傳統(tǒng)的神經(jīng)網(wǎng)絡存在收斂效果差,易于陷入局部最小值等問題[13],在本文中引入遺傳算法和模擬退火算法,模擬退火符合隨機梯度下降優(yōu)化算法需求,能提高收斂速度和減少迭代次數(shù),提高算法效率,遺傳算法是一種全局搜索優(yōu)化算法,能改進傳統(tǒng)神經(jīng)網(wǎng)絡陷入局部最優(yōu)解的問題,從而提高算法的效率。本算法結合遺傳算法和模擬退火算法,使得傳統(tǒng)BP神經(jīng)網(wǎng)絡算法在經(jīng)過遺傳模擬退火算法優(yōu)化后不僅提高了收斂速度[14],而且提高了預測精度。 參考文獻(References) [1] Lin Guangfeng,Caixia Fan,Hong Zhu,et al.Visual feature coding based on heterogeneous structure fusion for image classification[J].information Fusion,2017(36):275-283. [2] 王崇駿,于汶滌,陳兆乾,等.一種基于遺傳算法的BP神經(jīng)網(wǎng)絡算法及其應用[J].南京大學學報自然科學版,2003,5:1-4. [3] 蔣美云.遺傳模擬退火算法在云調度中的應用研究[J].計算機與現(xiàn)代化,2013(13):3-4. [4] 何炎祥,陳莘萌.Agent和多Agent系統(tǒng)的設計與應用[M].武漢大學學術叢書:64-70. [5] F Guzmán,S Joty,L Màrquez,et al.Machine translation evaluation with neural networks[J].Computer Speech & Language[J].2017(45):180-200. [6] 劉浩然,趙翠香,李軒,等.一種基于改進遺傳算法的神經(jīng)網(wǎng)絡優(yōu)化算法研究[J].儀器儀表學報,2016,37(7):1573-1580. [7] 高玉明,張仁津.基于遺傳算法和BP神經(jīng)網(wǎng)絡的房價預測分析[J].計算機工程,2014,40(4):187-191. [8] 曾小華,李廣含,宋大鳳,等.基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡側翻預警算法[J].華南理工大學學報自然科學版,2017,45(2):30-38. [9] 何濤,張洪偉,鄒書蓉.特征提取與多目標機器學習研究及應用[J],四川理工學院學報(自然科學版)2013(1):30-35. [10] MR Mahdiani.A Modified Neural Network Model for Predicting the Crude Oil Price[J].Intellectual Economics,2017:22-30. [11] https://www.superdatascience.com. [12] AJD Silva.WRD Oliveira Comments on "Quantum artificial neural networks with applications"[J].Information Sciences,2016,370-371:120-122. [13] JürgenSchmidhuber.Deep Learning in neural networks:An overview[J].Neural Nerworks,2015(61):85-117. [14] 王倩,王瑩,邱繼勤.基于灰色GM(1,1)和BP神經(jīng)網(wǎng)絡的房價預測[J].時代金融,2012(36):332-333. 作者簡介: 蔣美云(1977-),女,碩士,講師.研究領域:人工智能,機器學習,深度學習.