專利名稱:一種基于bp神經(jīng)網(wǎng)絡(luò)的預測裝置及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及數(shù)據(jù)挖掘技術(shù)領(lǐng)域。
背景技術(shù):
一、數(shù)據(jù)挖掘技術(shù)
隨著存儲設(shè)備和數(shù)據(jù)庫技術(shù)的發(fā)展,數(shù)據(jù)的存儲已經(jīng)不是問題,相反,人們已經(jīng)開始感到被大量的數(shù)據(jù)淹沒,因此,急需一種科學的方法將海量的數(shù)據(jù)轉(zhuǎn)化成對人們有實際意義的知識和規(guī)律,數(shù)據(jù)挖掘就是在這個背景下產(chǎn)生的技術(shù)。20世紀80年代末,數(shù)據(jù)挖掘作為新興的研究領(lǐng)域悄然出現(xiàn)。數(shù)據(jù)挖掘的研究目的是在大型數(shù)據(jù)集中發(fā)現(xiàn)那些隱藏的、人們感興趣的具有特定規(guī)律的信息。隨著數(shù)據(jù)挖掘的發(fā)展,這種技術(shù)被應用在商業(yè)管理、政府辦公、科學研究和工程開發(fā)等眾多的領(lǐng)域中。一般來說,基本的數(shù)據(jù)挖掘流程如下所示
⑴定義問題清晰地定義出業(yè)務(wù)問題,確定數(shù)據(jù)挖掘的目的。⑵數(shù)據(jù)準備數(shù)據(jù)準備包括選擇數(shù)據(jù)一在大型數(shù)據(jù)庫和數(shù)據(jù)倉庫目標中提取數(shù)據(jù)挖掘的目標數(shù)據(jù)集;數(shù)據(jù)預處理一進行數(shù)據(jù)再加工,包括檢查數(shù)據(jù)的完整性及數(shù)據(jù)的一致性、去噪聲,填補丟失的域,刪除無效數(shù)據(jù)等。⑶數(shù)據(jù)挖掘根據(jù)數(shù)據(jù)功能的類型和數(shù)據(jù)的特點選擇相應的算法,在凈化和轉(zhuǎn)換過的數(shù)據(jù)集上進行數(shù)據(jù)挖掘。⑷結(jié)果分析對數(shù)據(jù)挖掘的結(jié)果進行解釋和評價,轉(zhuǎn)換成為能夠最終被用戶理解的知識。(5)知識的運用將分析所得到的知識集成到業(yè)務(wù)信息系統(tǒng)的組織結(jié)構(gòu)中去。二、神經(jīng)網(wǎng)絡(luò)算法
近年來,神經(jīng)網(wǎng)絡(luò)被廣泛運用于時間序列分析和金融預報,這是因為神經(jīng)網(wǎng)絡(luò)具有非常強的非線性函數(shù)逼近能力,克服了傳統(tǒng)處理方法對于數(shù)據(jù)方面的缺陷,使之在預測領(lǐng)域得到成功的應用。神經(jīng)網(wǎng)絡(luò)是一種類似于大腦神經(jīng)突觸結(jié)構(gòu)并可以進行信息處理的數(shù)學模型,它是對人腦的抽象、簡化和模擬,反映了人腦的基本特性。神經(jīng)網(wǎng)絡(luò)(圖I)同時也是一種運算模型,由大量的節(jié)點(也稱為神經(jīng)元)和相互之間的加權(quán)連接構(gòu)成。每個節(jié)點代表一種特定的輸出函數(shù),稱為激勵函數(shù)(activationfunction)。每兩個節(jié)點間的連接都代表一個對于通過該連接信號的加權(quán)值,稱為權(quán)重(weight),這相當于神經(jīng)網(wǎng)絡(luò)的記憶。網(wǎng)絡(luò)的輸出則根據(jù)網(wǎng)絡(luò)的連接方式、權(quán)重值和激勵函數(shù)的不同而不同。而網(wǎng)絡(luò)自身通常都是對自然界某種算法或者函數(shù)的逼近,也可能是對一種邏輯策略的表達。神經(jīng)網(wǎng)絡(luò)主要解決數(shù)據(jù)挖掘的分類和回歸任務(wù),它可以找出輸入屬性和可預測屬性之間平滑連續(xù)的非線性關(guān)系。三、BP神經(jīng)網(wǎng)絡(luò)BP (Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡(luò),是目前應用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學習和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學方程。它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓撲結(jié)構(gòu)包括輸入層(input)、隱藏層(hide layer)和輸出層(output layer)。神經(jīng)網(wǎng)絡(luò)可以用作分類、聚類、預測等。神經(jīng)網(wǎng)絡(luò)需要有一定量的歷史數(shù)據(jù),通過歷史數(shù)據(jù)的訓練,網(wǎng)絡(luò)可以學習到數(shù)據(jù)中隱含的知識。在你的問題中,首先要找到某些問題 的一些特征,以及對應的評價數(shù)據(jù),用這些數(shù)據(jù)來訓練神經(jīng)網(wǎng)絡(luò)。 雖然BP網(wǎng)絡(luò)得到了廣泛的應用,但自身也存在一些缺陷和不足,主要包括以下幾個方面的問題。首先,由于學習速率是固定的,因此網(wǎng)絡(luò)的收斂速度慢,需要較長的訓練時間。對于一些復雜問題,BP算法需要的訓練時間可能非常長,這主要是由于學習速率太小造成的,可采用變化的學習速率或自適應的學習速率加以改進。其次,BP算法可以使權(quán)值收斂到某個值,但并不保證其為誤差平面的全局最小值,這是因為采用梯度下降法可能產(chǎn)生一個局部最小值。對于這個問題,可以采用附加動量法來解決。再次,網(wǎng)絡(luò)隱含層的層數(shù)和單元數(shù)的選擇尚無理論上的指導,一般是根據(jù)經(jīng)驗或者通過反復實驗確定。因此,網(wǎng)絡(luò)往往存在很大的冗余性,在一定程度上也增加了網(wǎng)絡(luò)學習的負擔。最后,網(wǎng)絡(luò)的學習和記憶具有不穩(wěn)定性。也就是說,如果增加了學習樣本,訓練好的網(wǎng)絡(luò)就需要從頭開始訓練,對于以前的權(quán)值和閾值是沒有記憶的。但是可以將預測、分類或聚類做的比較好的權(quán)值保存。回顧各種數(shù)據(jù)挖掘預測算法的發(fā)展,我們可以看到其推廣的瓶頸在于不同的算法需要不同的訓練數(shù)據(jù)格式和特殊化的參數(shù)設(shè)置,而且其預測過程往往需要人為干預和設(shè)定,預測時需要提供大量的輔佐數(shù)據(jù),預測結(jié)果也不夠直觀,這對于算法的推廣和使用均十分不利。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一類全新的、可自適應的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其改進了 BP神經(jīng)網(wǎng)絡(luò)算法,用以適應各種常見的預測模式,如天氣和交通情況的預測等。作為本發(fā)明的實施方式,提供一種可自適應的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,所述裝置包括數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元、初始化單元、學習單元、迭代預測單元和數(shù)據(jù)恢復單元,上述單元依次串行排列,其中,數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元和初始化單元用于準備基礎(chǔ)數(shù)據(jù)和參數(shù),以便裝置順利執(zhí)行;學習單元對原始數(shù)據(jù)進行訓練和學習,找出權(quán)值矩陣;迭代預測單元根據(jù)權(quán)值矩陣來推導預測結(jié)果;數(shù)據(jù)恢復單元將歸一化的預測結(jié)果恢復到原始值。更進一步,所述數(shù)據(jù)接收單元接收該預測裝置所必需的原始訓練數(shù)據(jù)和預測時長參數(shù),所述原始訓練數(shù)據(jù)為N*N行列式。所述數(shù)據(jù)預處理單元數(shù)據(jù)接收單元接收到的原始訓練數(shù)據(jù)進行自動的歸一化處理,并建立訓練樣本的輸入輸出矩陣。所述初始化單元初始化BP神經(jīng)網(wǎng)絡(luò)的各項參數(shù),所述參數(shù)包括學習速率、期望誤差最小值、慣性系數(shù)、最大訓練次數(shù)、隱藏單元和輸出單元各神經(jīng)元初值等。
在一個可選的實施方式中,所述學習單元對訓練樣本進行學習,通過學習的過程不斷調(diào)整隱藏單元和輸出單元的加權(quán)系數(shù),當誤差小于最小期望誤差或達到最大訓練次數(shù)時,學習過程結(jié)束,其目的是得到權(quán)值矩陣。所述迭代預測單元進行迭代預測,將學習單元最后的訓練樣本作為已知,通過學習到的各單元加權(quán)系數(shù)進行運算得出第一個預測結(jié)果,再以此預測結(jié)果作為已知并推算出下一個預測結(jié)果,以此類推,迭代完成所有預測,獲得預測結(jié)果。所述數(shù)據(jù)恢復單元將歸一形式的預測結(jié)果恢復成與原始訓練數(shù)據(jù)一致的數(shù)值范圍。一個具體的,非限制性的實施方式中,所述誤差計算函數(shù)為
若為輸出神經(jīng)元,則誤差Erri = Oi (I — Oi) (Ti — Oi),
Oi是輸出神經(jīng)元i的輸出, Ti是該輸出神經(jīng)元的實際值;
若為隱藏神經(jīng)元,則誤差Erri = Oi (I — Oi) Σ J-ErrjWij,
Oi是隱藏神經(jīng)元i的輸出,該神經(jīng)元有j個到下層的輸出,所述Arry是神經(jīng)元j的誤差,Wij是這兩個神經(jīng)元之間的權(quán)值。所述調(diào)整權(quán)值函數(shù)為Wij = Wij + I* Errj * Oi, I為學習速度。作為本發(fā)明的較優(yōu)選的實施方式中,所述數(shù)據(jù)接收單元接收的是天氣數(shù)據(jù),或者交通狀況數(shù)據(jù)。本發(fā)明還提供一種天氣預測設(shè)備,包括上述基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置。本發(fā)明提供的方法使用相對靈活的訓練數(shù)據(jù)格式,算法可自動進行歸一化、樣本建立等工作,避免了因數(shù)據(jù)格式混亂而導致的算法失效等問題;另外,預測不需要提供任何輔佐數(shù)據(jù),僅僅根據(jù)原始訓練數(shù)據(jù)即可進行多屬性的連續(xù)預測。且BP神經(jīng)網(wǎng)絡(luò)算法本身可適用于多種復雜情境,靈活性高。該裝置可自動判別原始訓練數(shù)據(jù)模式,并對其進行樣本建立和歸一化。預測方法使用迭代預測,不需要提供輔助數(shù)據(jù)完成預測。預測結(jié)果可恢復至與原始訓練數(shù)據(jù)相對應的數(shù)值范圍。BP神經(jīng)網(wǎng)絡(luò)算法可適用于各種復雜的情況,但其受數(shù)據(jù)形式的影響較大,且解釋結(jié)果較為困難,這種基于改進策略的BP神經(jīng)網(wǎng)絡(luò)預測裝置構(gòu)建方法可在很大程度上削弱人對數(shù)據(jù)的控制力,并將其用于多種環(huán)境下。
圖I為神經(jīng)網(wǎng)絡(luò)基本算法示意圖。圖2為本發(fā)明提供的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置的功能流程圖。
具體實施例方式以下結(jié)合具體的實施方式來描述本發(fā)明。在一個非限制性的實施方式中,在天氣預報方面,利用本發(fā)明的方法,只需提供一段時間內(nèi)的最高溫度、最低溫度等數(shù)字化的歷史數(shù)據(jù),就可以預測出未來的最高溫度和最低溫度等信息,而且在此過程中無需提供其它額外數(shù)據(jù)輔助,預測結(jié)果也能直觀體現(xiàn)。以溫度預測舉例,提供N行2列的氣溫信息,列屬性分別為最高溫度和最低溫度。裝置接收到此原始數(shù)據(jù)后開始進行預處理,即將N行2列的原始溫度數(shù)據(jù)歸一化為O到I之間的數(shù)值;然后自動建立訓練樣本的輸入輸出矩陣,即將第I到N-I條數(shù)據(jù)作為輸入矩陣,第2到N條數(shù)據(jù)作為輸出矩陣,至此數(shù)據(jù)的預處理階段完成。此后裝置進入算法學習階段,首先隨機初始化輸入層到隱藏層、隱藏層到輸出層的權(quán)值矩陣,然后計算隱藏層各神經(jīng)元、輸出層各神經(jīng)元的輸出,計算每個輸出神經(jīng)元和隱藏神經(jīng)元輸出的誤差(與實際數(shù)據(jù)比較),并反向傳播更新網(wǎng)絡(luò)中的權(quán)值,當誤差小于既定的期望誤差或訓練次數(shù)超過既定的最大訓練次數(shù)時完成算法學習階段的工作,記錄權(quán)值矩陣進入下一階段。
裝置進入迭代預測階段,首先,將訓練樣本的最后一條記錄作為已知條件,利用上一步得到的權(quán)值矩陣計算輸出,并將結(jié)果作為已知;然后利用已知數(shù)據(jù)迭代進行預測,得到從最后一條訓練數(shù)據(jù)開始到預測時長前一單位階段的預測結(jié)果,此時I條實際數(shù)據(jù)與n-1條預測數(shù)據(jù)在同一臨時結(jié)果集中;最后,利用上述臨時結(jié)果集中的數(shù)據(jù)和權(quán)值矩陣作為已知,計算得到所有的預測結(jié)果矩陣。得到預測結(jié)果矩陣之后,裝置進入最后反歸一化的階段,即將歸一化后的結(jié)果數(shù)據(jù)恢復成正常的溫度值。此裝置可以處理的數(shù)據(jù)需要滿足條件
1)所有屬性均可數(shù)值化;
2)歷史數(shù)據(jù)具有一定的時序性。為了更進一步公開本發(fā)明的技術(shù)方案,以下介紹本發(fā)明所提出的方法的理論基礎(chǔ)
定義 I :歸一化函數(shù)為R(i, j) = (r(i, j) - minv(j))/(maxv(j) - minv(j));
其中R(i,j)為i行j列的歸一結(jié)果,r(i,j)為第i行j列的歷史數(shù)據(jù),minv(j)為第j列的最小值,maxv(j)為第j列的最大值。定義2 :算法可根據(jù)神經(jīng)元類型的不同計算神經(jīng)元的輸出值
如果當前是隱藏神經(jīng)元,則采用tanh函數(shù)0 = (ea — e_a) / (ea + e_a);
如果當前是輸出神經(jīng)元,貝1J采用sigmoid函數(shù)0 = I / (I + ea);
其中a是輸入值,O是輸出值。定義3 :誤差計算函數(shù)為
如果當前是輸出神經(jīng)元=Erri = 0“1 — Oi) (Ti — Oi)
(Oi是輸出神經(jīng)元i的輸出,Ti是該輸出神經(jīng)元的實際值。)
如果當前是隱藏神經(jīng)元=Erri = Oi (I — Oi) Σ J-ErrjWij
(Oi是隱藏神經(jīng)元i的輸出,該神經(jīng)元有j個到下層的輸出。Arry是神經(jīng)元j的誤差,Wij是這兩個神經(jīng)元之間的權(quán)值。)
神經(jīng)網(wǎng)絡(luò)算法示意圖如圖2所示。定義4 :算法的調(diào)整權(quán)值函數(shù)為=Wij = Wij + I* Errj * Oi (I為學習速度。) 根據(jù)上述理論,另一個更為一般性的實施方式中,一種基于改進策略的BP神經(jīng)網(wǎng)絡(luò)預
測裝置構(gòu)建方法被提出,該裝置分為六個層次,分別是數(shù)據(jù)接收層、數(shù)據(jù)預處理層、算法初始化層、算法學習層、迭代預測層和數(shù)據(jù)恢復層。在一個非限制性的實施方式中,上述各層均使用相應的硬件或軟件單元來實現(xiàn),因此其也被稱為數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元、初始化單元、學習單元、迭代預測單元和數(shù)據(jù)恢復單元。其中數(shù)據(jù)接收層是算法外界參數(shù)的接受層;數(shù)據(jù)預處理層和算法初始化層用于準備基礎(chǔ)數(shù)據(jù)和參數(shù),以便算法順利執(zhí)行;算法學習層對原始數(shù)據(jù)進行訓練和學習,目的是找出權(quán)值矩陣;迭代預測層會根據(jù)訓練數(shù)據(jù)來推導預測結(jié)果;數(shù)據(jù)恢復層可將歸一化的預測結(jié)果恢復到原始值。更為詳細的實施方式中,對上述六個層次進行了如下非限制性的描述。數(shù)據(jù)接收層本層的主要功能是接收該預測裝置所必需的原始訓練數(shù)據(jù)和預測時長參數(shù)。其中原始訓練數(shù)據(jù)要以N*N (列為屬性,行與行之間存在時間關(guān)系)行列式的原始形式輸入到該裝置中作為原始訓練數(shù)據(jù),該數(shù)據(jù)不需要經(jīng)過任何特殊處理;預測時長的單位應與原始訓練數(shù)據(jù)采集時的時間單位基本保持一致,如天、小時、分鐘等等。數(shù)據(jù)預處理層本層的主要功能是將上層接收到的原始訓練數(shù)據(jù)進行自動的歸化處理,并建立訓練樣本的輸入輸出矩陣,整個過程無需人為干預和設(shè)定,由裝置自動判斷和處理。裝置會先獲得原始訓練數(shù)據(jù)的行數(shù)列數(shù),然后通過雙重循環(huán)來完成歸一化工作,之后再次利用雙重循環(huán)來建立樣本的輸入輸出矩陣。算法初始化層本層的主要功能是初始化BP神經(jīng)網(wǎng)絡(luò)算法的各項參數(shù),如學習速率、期望誤差最小值、慣性系數(shù)、最大訓練次數(shù)、隱藏層和輸出層各神經(jīng)元初值等。算法學習層本層的主要功能是利用算法對訓練樣本進行學習,通過學習的過程不斷調(diào)整隱藏層和輸出層的加權(quán)系數(shù),當誤差小于最小期望誤差或達到最大訓練次數(shù)時,學習過程結(jié)束。本層的最終目的是得到權(quán)值矩陣。迭代預測層本層的主要功能是根據(jù)算法學習的成果和訓練樣本進行迭代預測,該層的特點是將最后的訓練樣本作為已知,通過學習到的各層加權(quán)系數(shù)進行運算得出第一個預測結(jié)果,再以此預測結(jié)果作為已知并推算出下一個預測結(jié)果,以此類推,迭代完成所有預測。數(shù)據(jù)恢復層本層的主要功能是將歸一形式的預測結(jié)果恢復成與原始訓練數(shù)據(jù)一致的數(shù)值范圍,使預測結(jié)果具有實際意義。下面論述該裝置的實現(xiàn)方案
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)能學習和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學方程。它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)裝置拓撲結(jié)構(gòu)包括輸入層、隱藏層和輸出層。每個神經(jīng)元有一個或多個輸入但只有一個輸出,神經(jīng)網(wǎng)絡(luò)算法使用加權(quán)和(每個輸入值乘以與它關(guān)聯(lián)的權(quán)值,然后對乘積求和)的方法組合多個輸入值,然后根據(jù)神經(jīng)元類型的不同計算神經(jīng)元的輸出值(激活)
若是隱藏神經(jīng)元,則采用tanh函數(shù)0 = (ea — e_a) / (ea + e_a);
若是輸出神經(jīng)元,貝1J采用sigmoid函數(shù)0 = I / (I + ea);
其中a是輸入值,O是輸出值。圖I顯示了神經(jīng)元內(nèi)部進行組合和輸出的計算過程,即首先使用加權(quán)和的方法組合輸入值1、2和3,然后根據(jù)神經(jīng)元類型的不同選擇tanh或sigmoid函數(shù)得到輸出結(jié)果。最后計算每個輸出和隱藏神經(jīng)元計算輸出的誤差(與實際數(shù)據(jù)比較),反向傳播更新網(wǎng)絡(luò)中的權(quán)值,直到滿足算法的終止條件其中,誤差計算函數(shù)為
若為輸出神經(jīng)元=Erri = OiQ — Oi) (Ti — Oi)
(Oi是輸出神經(jīng)元i的輸出,Ti是該輸出神經(jīng)元的實際值。)
若為隱藏神經(jīng)元=Erri = Oi (I — Oi) Σ J-ErrjWij
CO1是隱藏神經(jīng)元i的輸出,該神經(jīng)元有j個到下層的輸出。Arry是神經(jīng)元j的誤差,Wij是這兩個神經(jīng)元之間的權(quán)值。)
調(diào)整權(quán)值函數(shù)為=Wij = Wij + I* Errj * Oi (I為學習速度。)
在改進的BP神經(jīng)網(wǎng)絡(luò)算法中,實現(xiàn)步驟如下
步驟I、接收原始訓練數(shù)據(jù)矩陣和訓練時長參數(shù),以天氣預測為例,原始數(shù)據(jù)可為連續(xù)幾日的最高溫度和最低溫度,預測時長為7天。步驟2、初始化數(shù)據(jù),包括設(shè)定學習速率、期望誤差、訓練的最大次數(shù)、慣性系數(shù)、隱含層和輸出層各神經(jīng)元輸出初值,根據(jù)原始數(shù)據(jù)動態(tài)得到矩陣行列數(shù)據(jù)PO。步驟3、獲取每列訓練數(shù)據(jù)的最大值maxv(j)與最小值minv(j)后對數(shù)據(jù)進行歸一化處理,使原始數(shù)據(jù)規(guī)范到O到I之間,歸一使用P (i, j) = (p0(i, j) - minv(j))/ (maxv(j)-minv(j));。其中p(i,j)為i行j列的歸一結(jié)果,p0(i,j)為第i行j列的歷史數(shù)據(jù),minv(j)為第j列的最小值,maxv(j)為第j列的最大值。步驟4、根據(jù)原始訓練數(shù)據(jù)得到訓練樣本的輸入矩陣和輸出矩陣。for i=l: count—sumCfor j = I:count_sumL-l
X(i, j)= p(j, i);
T(i, j) = p(j+l, i);
end
end
其中,count_sumC表示矩陣列的數(shù)量,count_sumL表示矩陣行的數(shù)量,X為輸入樣本,T為輸出樣本,P為歸一化后的訓練樣本。步驟5、隨機初始化權(quán)值矩陣wki和wij。其中,wki表示隱藏層到輸入層的權(quán)值矩陣,wij表示輸入層到隱藏層的權(quán)值矩陣。步驟6、計算隱藏層各神經(jīng)元、輸出層各神經(jīng)元的輸出,隱藏層輸出計算公式為0=(ea —e_a) / (ea +e_a),輸出層的輸出計算公式為0= I / (I + e_a)。其中a表示神經(jīng)元的輸入值。步驟7、計算每個輸出和隱藏神經(jīng)元計算輸出的誤差(與實際數(shù)據(jù)比較),反向傳播更新網(wǎng)絡(luò)中的權(quán)值。其中,誤差計算函數(shù)為
若為輸出神經(jīng)元=Erri = OiQ — Oi) (Ti — Oi)
(Oi是輸出神經(jīng)元i的輸出,Ti是該輸出神經(jīng)元的實際值。)
若為隱藏神經(jīng)元=Erri = Oi (I — Oi) Σ J-ErrjWij
(Oi是隱藏神經(jīng)元i的輸出,該神經(jīng)元有j個到下層的輸出。Errj是神經(jīng)元j的誤差,Wij是這兩個神經(jīng)元之間的權(quán)值。)
調(diào)整權(quán)值函數(shù)為=Wij = Wij + I* Errj * Oi (I為學習速度。)
步驟8、重復步驟6,直到滿足終止條件為止,該算法的終止條件為誤差小于期望誤差或訓練次數(shù)大于最大設(shè)定值。步驟9、根據(jù)訓練后得到的權(quán)值矩陣和訓練時的參數(shù),以最后一條實際數(shù)據(jù)作為初始輸入進行預測,再將預測結(jié)果作為下一天的實際數(shù)據(jù)再次進行預測,直到滿足預測天數(shù)參數(shù)。預測過程同步驟6。步驟10、將得到的預測結(jié)果矩陣進行恢復,即將歸一化后的值恢復到實際數(shù)值Res (i, j) =PredictRes (j, i) * (maxv (j) -minv (j)) +minv (j)。其中,PredictRes (j, i)表不未還原的預測結(jié)果,Res (i, j)表示已還原的預測結(jié)果?,F(xiàn)以溫度預測舉例,提供N行2列的氣溫信息,列屬性分別為最高溫度和最低溫度。裝置接收到此原始數(shù)據(jù)后開始進行預處理工作,即將N行2列的原始溫度數(shù)據(jù)利用公式 p(i,j) = (p0(i, j) - minv (j))/(maxv (j) - minv (j))歸一化為 0 到 I 之間的數(shù)值;然后自動建立訓練樣本的輸入輸出矩陣,即將第I到N-I條數(shù)據(jù)作為輸入矩陣,第2到N條數(shù)據(jù)作為輸出矩陣,至此數(shù)據(jù)的預處理階段完成。裝置進入算法學習階段,首先隨機初始化輸入層到隱藏層、隱藏層到輸出層的權(quán)值矩陣,然后利用公式0= (ea — e_a) / (ea + e_a)計算隱藏層各神經(jīng)元輸出,利用公式O=I / (I+ e_a)計算輸出層各神經(jīng)元的輸出,之后再計算每個輸出神經(jīng)元和隱藏神經(jīng)元輸出的誤差(與實際數(shù)據(jù)比較),并反向傳播更新網(wǎng)絡(luò)中的權(quán)值,當誤差小于既定的期望誤差或訓練次數(shù)超過既定的最大訓練次數(shù)時完成算法學習階段的工作,記錄權(quán)值矩陣進入下一階段。裝置進入迭代預測階段,首先,將訓練樣本的最后一條記錄作為已知條件,利用上一步得到的權(quán)值矩陣用公式O = (ea — e_a) / (ea + e_a)或O = I / (I + e_a)計算輸出,并將結(jié)果作為已知;然后利用已知數(shù)據(jù)迭代進行預測,得到從最后一條訓練數(shù)據(jù)開始到預測時長前一單位階段的預測結(jié)果,此時I條實際數(shù)據(jù)與η-I條預測數(shù)據(jù)在同一臨時結(jié)果集中;最后,利用上述臨時結(jié)果集中的數(shù)據(jù)和權(quán)值矩陣作為已知,計算得到所有的預測結(jié)果矩陣。得到預測結(jié)果矩陣之后,裝置進入最后反歸一化的階段,即將歸一化后的結(jié)果數(shù)據(jù)利用公式 Res (i, j) =PredictRes (j, i) * (maxv (j) -minv (j)) +minv (j)恢復成正常的溫度值。改進的BP神經(jīng)網(wǎng)絡(luò)的算法流程圖如圖2所示。本發(fā)明技術(shù)方案具有以下優(yōu)勢
BP神經(jīng)網(wǎng)絡(luò)算法本身可適用于多種復雜情境,靈活性高。該裝置使用的改進算法可自動判別原始訓練數(shù)據(jù)模式,并對其進行樣本建立和歸一化。預測方法使用迭代預測,不需要提供輔助數(shù)據(jù)完成預測。預測結(jié)果可恢復至與原始訓練數(shù)據(jù)相對應的數(shù)值范圍。
BP神經(jīng)網(wǎng)絡(luò)算法可適用于各種復雜的情況,但其受數(shù)據(jù)形式的影響較大,且解釋結(jié)果較為困難,這種基于改進策略的BP神經(jīng)網(wǎng)絡(luò)預測裝置構(gòu)建方法可在很大程度上削弱人對數(shù)據(jù)的控制力,并將其用于多種環(huán)境下。經(jīng)過 恢復的預測結(jié)果通過不同的工具和技術(shù)可衍生出多種結(jié)果形式,如折線圖、餅狀圖、柱狀圖等,甚至特殊領(lǐng)域的相關(guān)圖形,如交通流量圖、氣溫變化圖等。
權(quán)利要求
1.一種基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,所述裝置包括數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元、初始化單元、學習單元、迭代預測單元和數(shù)據(jù)恢復單元,其特征在于 上述單元依次串行排列, 其中,數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元和初始化單元用于準備基礎(chǔ)數(shù)據(jù)和參數(shù),以便裝置順利執(zhí)行; 學習單元對原始數(shù)據(jù)進行訓練和學習,找出權(quán)值矩陣; 迭代預測單元根據(jù)權(quán)值矩陣來推導預測結(jié)果; 數(shù)據(jù)恢復單元將歸一化的預測結(jié)果恢復到原始值。
2.如權(quán)利要求I所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述數(shù)據(jù)接收單元接收該預測裝置所必需的原始訓練數(shù)據(jù)和預測時長參數(shù),所述原始訓練數(shù)據(jù)為N*N行列式。
3.如權(quán)利要求2所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述數(shù)據(jù)預處理單元數(shù)據(jù)接收單元接收到的原始訓練數(shù)據(jù)進行自動的歸一化處理,并建立訓練樣本的輸入輸出矩陣。
4.如權(quán)利要求3所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述初始化單元初始化BP神經(jīng)網(wǎng)絡(luò)的各項參數(shù),所述參數(shù)包括學習速率、期望誤差最小值、慣性系數(shù)、最大訓練次數(shù)、隱藏單元和輸出單元各神經(jīng)元初值等。
5.如權(quán)利要求4所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述學習單元對訓練樣本進行學習,通過學習的過程不斷調(diào)整隱藏單元和輸出單元的加權(quán)系數(shù),當誤差小于最小期望誤差或達到最大訓練次數(shù)時,學習過程結(jié)束,其目的是得到權(quán)值矩陣。
6.如權(quán)利要求5所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述迭代預測單元進行迭代預測,將學習單元最后的訓練樣本作為已知,通過學習到的各單元加權(quán)系數(shù)進行運算得出第一個預測結(jié)果,再以此預測結(jié)果作為已知并推算出下一個預測結(jié)果,以此類推,迭代完成所有預測,獲得預測結(jié)果。
7.如權(quán)利要求6所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于 所述數(shù)據(jù)恢復單元將歸一形式的預測結(jié)果恢復成與原始訓練數(shù)據(jù)一致的數(shù)值范圍。
8.如權(quán)利要求7所述的基于BP神經(jīng)網(wǎng)絡(luò)的天氣預測方法,其特征在于 所述誤差計算函數(shù)為 若為輸出神經(jīng)元,則誤差Erri = Oi (I — Oi) (Ti — Oi), Oi是輸出神經(jīng)元i的輸出,Ti是該輸出神經(jīng)元的實際值; 若為隱藏神經(jīng)元,則誤差Erri = Oi (I — Oi) Σ J-ErrjWij, Oi是隱藏神經(jīng)元i的輸出,該神經(jīng)元有j個到下層的輸出,所述Errj是神經(jīng)元j的誤差,Wij是這兩個神經(jīng)元之間的權(quán)值; 所述調(diào)整權(quán)值函數(shù)為^ij = Wij + I* Errj * Oi, I為學習速度。
9.如權(quán)利要求1-8任意一項所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,其特征在于所述數(shù)據(jù)接收單元接收的是天氣數(shù)據(jù),或者交通狀況數(shù)據(jù)。
10.一種天氣預測設(shè)備,其特征在于,包括如權(quán)利要求1-8任意一項所述的基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置。
全文摘要
本發(fā)明公開了一種基于BP神經(jīng)網(wǎng)絡(luò)的預測裝置,所述裝置包括數(shù)據(jù)接收單元、數(shù)據(jù)預處理單元、初始化單元、學習單元、迭代預測單元和數(shù)據(jù)恢復單元,使用的改進算法可自動判別原始訓練數(shù)據(jù)模式,并對其進行樣本建立和歸一化。該裝置可適用于多種復雜情境,靈活性高,不需要提供輔助數(shù)據(jù)完成預測,預測結(jié)果可恢復至與原始訓練數(shù)據(jù)相對應的數(shù)值范圍。
文檔編號G06N3/02GK102622418SQ20121003924
公開日2012年8月1日 申請日期2012年2月21日 優(yōu)先權(quán)日2012年2月21日
發(fā)明者周林, 曹國良, 沈洪, 王汕汕, 馬楠 申請人:北京聯(lián)合大學