陳春玲,陳 紅,余 瀚
(南京郵電大學(xué) 計算機學(xué)院,江蘇 南京 210003)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,移動終端和智能手機的普及使得用戶能夠更加快速方便地獲取信息,同時人們對移動網(wǎng)絡(luò)服務(wù)的質(zhì)量要求也越來越高。傳統(tǒng)模式只是通過簡單的局部數(shù)據(jù)來對移動用戶的行為進行建模分析,其準(zhǔn)確度和可信度較差,導(dǎo)致開發(fā)出的移動應(yīng)用只能滿足少數(shù)用戶的行為習(xí)慣,而無法根據(jù)不同的移動用戶的行為習(xí)慣來實現(xiàn)個性化的服務(wù)[1]。因此,尋求一種優(yōu)質(zhì)的網(wǎng)絡(luò)預(yù)測模型具有重要的研究意義。
BP(back propagation)神經(jīng)網(wǎng)絡(luò)作為一種單向傳播的多層前向網(wǎng)絡(luò),其主要目的是反復(fù)修正權(quán)值和閾值,使得誤差函數(shù)達(dá)到最小值。由于BP神經(jīng)網(wǎng)絡(luò)具有獨特的非線性映射能力和很強的自適應(yīng)能力,通常被作為建模的有效工具,因此,文中采用BP神經(jīng)網(wǎng)絡(luò)模型對移動用戶行為進行預(yù)測分析。但該模型也有收斂速度慢、預(yù)測精度不高、易陷入局部極值等缺點[2]。針對這些問題,提出了很多改進方法。例如,文獻(xiàn)[3]通過采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,并通過“試錯法”確定神經(jīng)元數(shù),該算法能達(dá)到預(yù)設(shè)目標(biāo)的次數(shù)更多,實現(xiàn)全局最優(yōu),但是穩(wěn)定性不高。文獻(xiàn)[4]采用改進的PSO(particle swarm optimization)算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,在該算法中粒子群采用改進自適應(yīng)慣性權(quán)重和改進自適應(yīng)加速因子來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型初始時的權(quán)值和閾值,改進算法明顯提高了模型的收斂速度,但是后期陷入局部極值的問題仍未得到解決。文獻(xiàn)[5]基于改進粒子群算法和BP神經(jīng)網(wǎng)絡(luò)算法構(gòu)建了網(wǎng)絡(luò)輿情預(yù)測模型,該模型在預(yù)測性能上有一定的優(yōu)越性,但在效率上處于劣勢。
在此基礎(chǔ)上,文中采用基于改進的PSO算法和GA(genetic algorithm)算法的BP神經(jīng)網(wǎng)絡(luò)模型對移動用戶行為進行預(yù)測,并通過實驗對算法性能進行驗證。
BP神經(jīng)網(wǎng)絡(luò)(back propagation neural network)[6]是一種具有三層或三層以上的通過權(quán)值連接的網(wǎng)絡(luò),包含輸入層、隱含層和輸出層。隱含層又有單層和多層之分,上下層之間的節(jié)點通過權(quán)值相互連接,而同一層之間的節(jié)點無連接。隱含層與輸出層中的各節(jié)點均有一個權(quán)值和閾值[7]。訓(xùn)練的過程是通過誤差信號調(diào)節(jié)網(wǎng)絡(luò)的連接權(quán)值和閾值,這個調(diào)節(jié)過程是反復(fù)進行的,直到訓(xùn)練次數(shù)達(dá)到最大值或者誤差達(dá)到要求的精度,則訓(xùn)練結(jié)束,即找到全局最優(yōu)解[8]。
文中采用多隱層BP神經(jīng)網(wǎng)絡(luò)進行設(shè)計[9]。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對移動用戶行為進行預(yù)測的實質(zhì)是利用移動用戶的行為參數(shù)(通話行為和網(wǎng)絡(luò)行為)構(gòu)成的樣本數(shù)據(jù)作為輸入值,通過隱含層不斷地學(xué)習(xí)、判斷、更新,從輸出層得到移動用戶當(dāng)前的操作行為的預(yù)測結(jié)果,并及時做出決策。步驟如下:
(1)采集用戶真實行為數(shù)據(jù)作為樣本數(shù)據(jù),將樣本數(shù)據(jù)分為兩部分,一部分作為訓(xùn)練數(shù)據(jù),一部分作為測試數(shù)據(jù);
(2)數(shù)據(jù)預(yù)處理;
(3)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的隱層數(shù),迭代次數(shù),目標(biāo)函數(shù);
(4)使用訓(xùn)練數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型;
(5)用測試數(shù)據(jù)測試訓(xùn)練后網(wǎng)絡(luò)模型;
(6)分析預(yù)測數(shù)據(jù)與期望數(shù)據(jù)之間的誤差。
BP網(wǎng)絡(luò)預(yù)測模型見圖1。
圖1 BP網(wǎng)絡(luò)預(yù)測模型
粒子群算法(particle swarm: optimization,PSO)[10]是一種智能優(yōu)化算法,通過模擬鳥類的覓食過程實現(xiàn)尋優(yōu)。作為一種高效并行優(yōu)化算法,可用于解決大量非線性、不可微的復(fù)雜優(yōu)化命題,且具有實現(xiàn)簡單、容易理解、收斂速度較快等優(yōu)點[11]。同其他群體智能優(yōu)化算法一樣,PSO算法容易產(chǎn)生早收斂、全局收斂性能差的問題[12]。原因是在粒子尋優(yōu)過程中,速度更新公式會對尋優(yōu)結(jié)果產(chǎn)生直接的影響,速度較大可以增加算法的全局搜索能力,速度較小可以增加算法的局部搜索能力,如何平衡PSO算法全局和局部搜索能力是PSO算法改進的核心。為進一步提高PSO算法的全局搜索能力,避免陷入局部最優(yōu)解,同時又不錯過全局最優(yōu)解,文中提出對慣性權(quán)重進行非線遞減的優(yōu)化公式。改進后的算法減弱了粒子優(yōu)化早期和后期變化不穩(wěn)定的問題,防止搜索過程中引起強烈振蕩,從而提高了PSO算法的性能。
(1)
其中,ωmax和ωmin分別為最大和最小權(quán)重;λ為控制因子,控制慣性權(quán)重和加速因子同時變化引起的振蕩;t為當(dāng)前迭代次數(shù);s為最大迭代次數(shù)。
遺傳算法(genetic algorithm,GA)[13]是通過模擬自然界中生物進化規(guī)則而實現(xiàn)的一種搜索算法,具有操作簡便、非線性、全局尋優(yōu)以及并行性好等優(yōu)點[14]。文中引入遺傳算法的交叉、變異操作來增加優(yōu)化后期粒子的多樣性,從而擴大粒子搜索空間,防止陷入局部最優(yōu)解。
交叉操作是產(chǎn)生新個體的重要操作,在二進制編碼過程中,使用單點交叉法[15],從兩個雙親子串中隨機選擇一點k作為交叉點,通過復(fù)制交叉點產(chǎn)生兩個新的后代,每個后代的第k位從它的某個雙親的第k位復(fù)制得來,交叉點在第k位進行交叉操作的方法為:
(2)
變異操作是維持種群的多樣性和提高算法局部尋優(yōu)能力的重要手段。依據(jù)變異概率將個體編碼串中的某些基因值用其他基因值來替換,從而形成一個新的個體。對于變異方式,文中采用單點變異[16]。
交叉概率pc和變異概率pm對遺傳算法的優(yōu)化性能起著重要的作用。為了避免種群發(fā)散和陷入局部極值,概率采用自適應(yīng)變化[17]的遺傳概率,在保證種群多樣性的情況下不破壞適應(yīng)度值高的種群。當(dāng)種群在進化過程中由于陷入局部搜索空間而不能跳出時,可通過增加pm來擺脫這種情況,當(dāng)種群在解空間比較分散時,pc和pm可適當(dāng)減小。
(3)
(4)
文中利用PSO算法收斂較快和GA算法全局搜索能力較強兩方面的優(yōu)勢來彌補BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的不足。本質(zhì)上是將BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差作為PSO算法和GA算法的待優(yōu)化目標(biāo)函數(shù),通過不斷地評價粒子的適應(yīng)度值來更新并尋找最優(yōu)粒子所在的位置,直到達(dá)到預(yù)設(shè)的最大迭代次數(shù)或最小誤差,最后將得到的最優(yōu)值作為BP神經(jīng)網(wǎng)絡(luò)的較優(yōu)初始連接權(quán)值和閾值,從而提高該預(yù)測模型的收斂速度和準(zhǔn)確性。
(1)確定BP網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),初始化PSO維度、速度、位置、慣性權(quán)重、學(xué)習(xí)因子、最大迭代次數(shù)等參數(shù)。
(2)根據(jù)適應(yīng)度函數(shù)計算每個粒子的適應(yīng)度值,將粒子當(dāng)前所處的位置當(dāng)作自身最優(yōu)位置pib,將初始種群中粒子最優(yōu)位置當(dāng)作全局最優(yōu)位置pgb。適應(yīng)度函數(shù)為:
f(Xi)=E(Xi)-1
(5)
其中,E(Xi)見式8
(3)按以下公式更新每個粒子的速度和位置。
(6)
(7)
其中,r1,r2為0~1之間的隨機數(shù);c1,c2為學(xué)習(xí)因子;n為粒子數(shù);d為解空間維度。
(4)更新粒子群算法的慣性權(quán)重ω(同式1),隨著算法迭代次數(shù)的非線性變化結(jié)果為:
其中,最大權(quán)重ωmax=0.9;最小權(quán)重ωmin=0.1;λ為控制因子,控制慣性權(quán)重和加速因子同時變化引起的振蕩,為了保證在整個搜索過程中輸出誤差平穩(wěn)遞減,λ通常取3。
(5)再次計算粒子適應(yīng)度值,根據(jù)交叉、變異規(guī)則選擇適當(dāng)?shù)牧W舆M行交叉、變異操作,更新種群。
(6)重復(fù)步驟2~5,采用改進的PSO算法和GA算法的交叉、變異操作優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,直至達(dá)到預(yù)設(shè)的目標(biāo),則停止搜索,將優(yōu)化后的權(quán)值和閾值作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的初始權(quán)值和閾值。
(7)進行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練,通過公式計算誤差,直至達(dá)到預(yù)設(shè)的最大訓(xùn)練次數(shù)或者滿足最小誤差,訓(xùn)練結(jié)束。
(8)
(9)
(8)將優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)用于對移動用戶的行為預(yù)測。
數(shù)據(jù)來源:徐州移動分公司2017年第一季度鼓樓區(qū)4G移動用戶數(shù)據(jù)。
數(shù)據(jù)處理:對數(shù)據(jù)進行提煉、轉(zhuǎn)換,獲取該區(qū)域1 000名4G用戶的行為特征,主要分為兩類,即通話行為和網(wǎng)絡(luò)行為。通話行為分為:通話時長、通話次數(shù)、短呼次數(shù)、長呼次數(shù)、漫游(主叫或被叫)呼叫次數(shù)、周末或工作日呼叫次數(shù)、短信收發(fā)條數(shù)等。網(wǎng)絡(luò)行為分為:視頻聊天時長、網(wǎng)上購物次數(shù)、網(wǎng)頁瀏覽頻率等,所有的行為屬性為數(shù)值性屬性。
參數(shù)設(shè)置:BP神經(jīng)網(wǎng)絡(luò)采用多隱層網(wǎng)絡(luò)結(jié)構(gòu),隱含層傳遞函數(shù)設(shè)置為“l(fā)ogsig”,輸出層函數(shù)選用purelin,迭代數(shù)取100,訓(xùn)練目標(biāo)1.0e-005。遺傳參數(shù)設(shè)置為:種群規(guī)模40,進化代數(shù)100,交叉概率0.7,變異概率0.01。粒子群算法參數(shù)設(shè)為:種群規(guī)模40,進化代數(shù)100,加速因子c1=c2=2,粒子最大速度vmax=0.5,慣性權(quán)重取值區(qū)間[0.2,0.9]。
(10)
(11)
(12)
(13)
在Matlab2011a環(huán)境下,使用Matlab語言編程,構(gòu)建三種預(yù)測模型,即:BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型(BP)、基于標(biāo)準(zhǔn)PSO算法的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型(PSO-BP)和基于改進的PSO算法和GA算法的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型(IPSO-GA-BP)。通過這三種模型分別對移動用戶行為進行預(yù)測。
采用Matlab進行實驗仿真,對徐州移動分公司提供的測試數(shù)據(jù)進行預(yù)處理,得到符合模型要求的數(shù)據(jù)類型,然后輸入到基于Matlab實現(xiàn)的BP神經(jīng)網(wǎng)絡(luò)移動用戶行為分析模型中,最后得出輸出的移動用戶操作行為和實際移動用戶操作行為的結(jié)果。圖2~4是將測試數(shù)據(jù)分別輸入到BP、PSO-BP和IPSO-GA-BP得到的預(yù)測結(jié)果。圖5是三種網(wǎng)絡(luò)預(yù)測模型的輸出與實際用戶行為值的誤差對比圖。表1是三種模型的誤差指標(biāo)比對。
圖2 BP網(wǎng)絡(luò)模型預(yù)測輸出
圖3 PSO-BP網(wǎng)絡(luò)模型預(yù)測輸出
圖4 IPSO-GA-BP網(wǎng)絡(luò)模型預(yù)測輸出
圖5 三種網(wǎng)絡(luò)模型預(yù)測誤差
算法MSEEMSEerr BP0.000 117 5330.010 841 2790.000 127PSO-BP1.49E-050.003 860 0520.000 016IPSO-GA-BP0.000 0030.001 732 0510.000 003
通過仿真結(jié)果,對比圖2~4可知,基于BP神經(jīng)網(wǎng)絡(luò)算法的網(wǎng)絡(luò)預(yù)測模型輸出擬合度最差,其次是PSO-BP網(wǎng)絡(luò)預(yù)測模型。從圖4可明顯看出,基于IPSO-GA-BP算法的網(wǎng)絡(luò)預(yù)測模型的預(yù)測結(jié)果更接近目標(biāo)值,原因是IPSO-GA-BP算法融合了IPSO算法和GA算法的優(yōu)勢,彌補了BP神經(jīng)網(wǎng)絡(luò)算法易陷入局部極值、收斂速度慢、尋優(yōu)精度低的缺陷。從圖5和表1可知,IPSO-GA-BP算法比BP算法和PSO-BP算法更穩(wěn)定、可靠。因此,文中提出的IPSO-GA-BP算法的網(wǎng)絡(luò)預(yù)測模型在預(yù)測移動用戶行為的準(zhǔn)確性和可靠性方面具有較高的應(yīng)用價值。
采用BP神經(jīng)網(wǎng)絡(luò)模型對移動用戶行為進行預(yù)測,針對BP神經(jīng)網(wǎng)絡(luò)算法存在易陷入局部最優(yōu)解、尋優(yōu)精度低、收斂速度慢的問題,提出一種基于改進的PSO算法和GA算法的BP神經(jīng)網(wǎng)絡(luò)混合算法,即IPSO-GA-BP算法。該算法在BP神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ)上融合了PSO算法和GA算法的優(yōu)勢,仿真結(jié)果表明,算法在對移動用戶行為預(yù)測的精確度和穩(wěn)定性上均有所提高。