基于C語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā)說(shuō)明書(shū)_第1頁(yè)
基于C語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā)說(shuō)明書(shū)_第2頁(yè)
基于C語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā)說(shuō)明書(shū)_第3頁(yè)
基于C語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā)說(shuō)明書(shū)_第4頁(yè)
基于C語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本科學(xué)生畢業(yè)設(shè)計(jì) 基于 C 語(yǔ)言的 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)程序開(kāi)發(fā) 系部名稱: 汽車與交通工程學(xué)院 專業(yè)班級(jí): 車輛 07 11 班 學(xué)生姓名: 指導(dǎo)教師: 職 稱: 實(shí)驗(yàn)師 黑 龍 江 工 程 學(xué) 院 二 一一年六月 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) I 摘 要 人工神經(jīng)網(wǎng)絡(luò)理論是新近發(fā)展起來(lái)的交叉學(xué)科,采用物理器件或計(jì) 算機(jī)軟硬件模擬生物體中神經(jīng)細(xì)胞的某些結(jié)構(gòu)與功能,進(jìn)而將其應(yīng)用于工程領(lǐng)域,尤其適合高度復(fù)雜的非線性動(dòng)力學(xué)系統(tǒng)仿真。人工神經(jīng)網(wǎng)絡(luò)已經(jīng)在組合優(yōu)化、模式識(shí)別、圖象處理、自動(dòng)控制、信號(hào)處理、機(jī)器人和人工智能等領(lǐng)域得到廣泛應(yīng)用,尤其在工程領(lǐng)域逐漸受到廣泛重視。人工神經(jīng)網(wǎng)絡(luò)用于非線性動(dòng)力學(xué)系統(tǒng)研究,近來(lái)在汽車動(dòng)力學(xué)建模與仿真領(lǐng)域也引起了極大關(guān)注。 許多工業(yè)生產(chǎn)過(guò)程存在時(shí)滯和大時(shí)間常數(shù) , 控制難度較大 , 傳統(tǒng)的控制策略對(duì)此類控制問(wèn)題很難取得滿意的效果。為了解決這類問(wèn)題 , 預(yù)測(cè)控制應(yīng)運(yùn)而生。預(yù)測(cè)控制是一種基于模型的控 制策略。反向傳播 (BP) 神經(jīng)網(wǎng)絡(luò)是當(dāng)前應(yīng)用最為廣泛的一種神經(jīng)網(wǎng)絡(luò) , 它結(jié)構(gòu)簡(jiǎn)單 , 工作狀態(tài)穩(wěn)定 , 并且已有大量提高網(wǎng)絡(luò)訓(xùn)練速度的改進(jìn)算法。 關(guān)鍵字 : BP 神經(jīng)網(wǎng)絡(luò);應(yīng)用; C 語(yǔ)言 ;汽車保有量;預(yù)測(cè) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) II ABSTRACT Artificial neural network theory is newly developed the interdisciplinary, adopting physical device or computer hardware and software simulation of the nerve cells in biological structure and function, and then some of its application in engineering field, especially suitable for highly complex nonlinear dynamic system simulation. Artificial neural network has been in the combinatorial optimization, pattern recognition, image processing, automatic control, signal processing, robot, and artificial intelligence and other areas to be wide ly applied, especially in engineering areas has been gradually paid more attention . Artificial neural network for nonlinear dynamic system research in automotive dynamics, recently modeling and simulation field also get great attention. Many industrial production process exist time delay and large time constant, bigger control difficulty, traditional control strategies on such controlling problems is difficult to obtain satisfactory results. In order to solve this kind of problem, predictive control arises at the historic moment. Predictive control is a model based control strategy. Back propagation (BP) neural network is currently the most widely used neural network, it is simple in structure, work, and a large number of stable status network algorithm are proposed to increase training speed. Key words: BP neural network; Application; C language; Auto possession; Prediction 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 目 錄 摘要 . I ABSTRACT .II 第 1 章 緒論 . 1 1.1 人工神經(jīng)網(wǎng)絡(luò) 的發(fā)展歷史 . 1 1.2 人工神經(jīng)網(wǎng)絡(luò)的特性 . 2 1.3 BP 神經(jīng)網(wǎng)絡(luò) . 3 第 2 章 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)基本原理 . 5 2.1 生物神經(jīng) 元模型 . 5 2.2 人工神經(jīng)元模型 . 6 2.3 人工神經(jīng)網(wǎng)絡(luò)模型 . 10 2.4 人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí) . 11 2.5 本章小結(jié) . 12 第 3 章 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及數(shù)學(xué)模型 . 13 3.1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) . 13 3.2 BP 神經(jīng)元 . 14 3.3 BP 網(wǎng)絡(luò) . 15 3.3.1 正向傳播 . 15 3.3.2 反向傳播 . 16 3.4 本章小結(jié) . 18 第 4 章 BP 網(wǎng)絡(luò)的自學(xué)習(xí)與預(yù)測(cè)編程 . 19 4.1 BP 網(wǎng)絡(luò)的學(xué)習(xí)與預(yù)測(cè)神經(jīng)編程 . 19 4.2 輸入模式順傳播 . 19 4.3 輸出誤差的逆?zhèn)鞑?. 21 4.4 循環(huán)記憶訓(xùn)練 . 24 4.5 學(xué)習(xí)結(jié)果的判別 . 27 4.6 對(duì)數(shù)據(jù)的預(yù)測(cè)程序編寫(xiě) . 32 4.7 本章小結(jié) . 36 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 第五章 BP 神經(jīng)網(wǎng)絡(luò)在汽車保有量預(yù)測(cè)中 的應(yīng)用 . 37 5.1 汽車保有量預(yù)測(cè)的意義 . 37 5.2 基于 BP 神經(jīng)網(wǎng)絡(luò)的汽車保有量預(yù)測(cè)模型 . 37 5.2.1 汽車保有量主要影響因素分析 . 37 5.2.2 汽車保有量預(yù)測(cè)模型 . 37 5.2.3 實(shí)例分析 . 38 5.3 本章小結(jié) . 43 結(jié)論 . 44 參 考文獻(xiàn) . 45 致謝 . 46 附錄 . 47 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 1 第 1章 緒 論 1.1 人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史 人工神經(jīng)網(wǎng)絡(luò)早期的研究工作應(yīng)追溯至本世紀(jì) 40 年代。下面以時(shí)間順序,以著名的人物或某一方面突出的研究成果為線索,簡(jiǎn)要介紹人工神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史。 1943 年,心理學(xué)家 WMcculloch 和數(shù)理邏輯學(xué)家 WPitts 在分析、總結(jié)神經(jīng)元基本特性的基礎(chǔ)上首先提出神經(jīng)元的數(shù)學(xué)模型。此模型沿用至今,并且直接影響著這一領(lǐng)域研究的進(jìn)展。因而,他們兩人可稱為人工神經(jīng)網(wǎng)絡(luò)研究的先驅(qū)。 1945 年馮 諾依曼領(lǐng)導(dǎo)的設(shè)計(jì)小組試制成功存儲(chǔ)程序式電子計(jì)算機(jī),標(biāo)志著電子計(jì)算機(jī)時(shí)代的開(kāi)始。 1948 年,他在研究工作中比較了人腦結(jié)構(gòu)與存儲(chǔ)程序式計(jì)算機(jī)的根本區(qū)別,提出了以簡(jiǎn)單神經(jīng)元構(gòu)成的再生自動(dòng)機(jī)網(wǎng)絡(luò)結(jié)構(gòu)。但是,由于指令存儲(chǔ)式計(jì)算機(jī)技術(shù)的發(fā)展非常迅速,迫使他放棄了神經(jīng)網(wǎng)絡(luò)研究的新途徑,繼續(xù)投身于指令存儲(chǔ) 式計(jì)算機(jī)技術(shù)的研究,并在此領(lǐng)域作出了巨大貢獻(xiàn)。雖然,馮 諾依曼的名字是與普通計(jì)算機(jī)聯(lián)系在一起的,但他也是人工神經(jīng)網(wǎng)絡(luò)研究的先驅(qū)之一。 50 年代末, FRosenblatt 設(shè)計(jì)制作了 “感知機(jī) ”,它是一種多層的神經(jīng)網(wǎng)絡(luò)。這項(xiàng)工作首次把人工神經(jīng)網(wǎng)絡(luò)的研究從理論探討付諸工程實(shí)踐。當(dāng)時(shí),世界上許多實(shí)驗(yàn)室仿效制作感知機(jī),分別應(yīng)用于文字識(shí)別、聲音識(shí)別、聲納信號(hào)識(shí)別以及學(xué)習(xí)記憶問(wèn)題的研究。然而,這次人工神經(jīng)網(wǎng)絡(luò)的研究高潮未能持續(xù)很久,許多人陸續(xù)放棄了這方面的研究工作,這是因?yàn)楫?dāng)時(shí)數(shù)字計(jì)算機(jī)的發(fā)展處于全盛時(shí)期,許多人誤 以為數(shù)字計(jì)算機(jī)可以解決人工智能、模式識(shí)別、專家系統(tǒng)等方面的一切問(wèn)題,使感知機(jī)的工作得不到重視;其次,當(dāng)時(shí)的電子技術(shù)工藝水平比較落后,主要的元件是電子管或晶體管,利用它們制作的神經(jīng)網(wǎng)絡(luò)體積龐大,價(jià)格昂貴,要制作在規(guī)模上與真實(shí)的神經(jīng)網(wǎng)絡(luò)相似是完全不可能的;另外,在 1968 年一本名為感知機(jī)的著作中指出線性感知機(jī)功能是有限的,它不能解決如異或這樣的基本問(wèn)題,而且多層網(wǎng)絡(luò)還不能找到有效的計(jì)算方法,這些論點(diǎn)促使大批研究人員對(duì)于人工神經(jīng)網(wǎng)絡(luò)的前景失去信心。 60 年代末期,人工神經(jīng)網(wǎng)絡(luò)的研究進(jìn)入了低潮。 另外,在 60 年代初期, Widrow 提出了自適應(yīng)線性元件網(wǎng)絡(luò),這是一種連續(xù)取值的線性加權(quán)求和閾值網(wǎng)絡(luò)。后來(lái),在此基礎(chǔ)上發(fā)展了非線性多層自適應(yīng)網(wǎng)絡(luò)。黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 2 當(dāng)時(shí),這些工作雖未標(biāo)出神經(jīng)網(wǎng)絡(luò)的名稱,而實(shí)際上就是一種人工神經(jīng)網(wǎng)絡(luò)模型。 隨著人們對(duì)感知機(jī)興趣的衰退,神經(jīng)網(wǎng)絡(luò)的研究沉寂了相當(dāng)長(zhǎng)的時(shí)間。 80年代初期,模擬與數(shù)字混合的 超大規(guī)模集成電路 制作技術(shù)提高到新的水平,完全付諸實(shí)用化,此外,數(shù)字計(jì)算 機(jī)的發(fā)展在若干應(yīng)用領(lǐng)域遇到困難。這一背景預(yù)示,向人工神經(jīng)網(wǎng)絡(luò)尋求出路的時(shí)機(jī)已經(jīng)成熟。 美國(guó) 的物理學(xué)家 Hopfield 于 1982 年和 1984 年在美國(guó)科學(xué)院院刊上發(fā)表了兩篇關(guān)于人工神經(jīng)網(wǎng)絡(luò)研究的論文,引起了巨大的反響。人們重新認(rèn)識(shí)到神經(jīng)網(wǎng)絡(luò)的威力以及付諸應(yīng)用的現(xiàn)實(shí)性。隨即,一大批學(xué)者和研究人員圍繞著 Hopfield 提出的方法展開(kāi)了進(jìn)一步的工作,形成了 80 年代中期以來(lái)人工神經(jīng)網(wǎng)絡(luò)的研究 熱潮。 1.2 人工神經(jīng)網(wǎng)絡(luò)的特性 思維學(xué)普遍認(rèn)為,人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。 邏輯性的思維是指根據(jù)邏輯規(guī)則進(jìn)行推理的過(guò)程;它先將信息化成概念,并用符號(hào)表示,然后,根據(jù)符號(hào)運(yùn)算按串行模式進(jìn)行邏輯推理;這一過(guò)程可以寫(xiě)成串行的指令,讓計(jì)算機(jī)執(zhí)行。然而,直觀性的思維是將分布式存儲(chǔ)的信息綜合起來(lái),結(jié)果是忽然間產(chǎn)生想法或解決問(wèn)題的辦法。這種思維方式的根本之點(diǎn)在于以下兩點(diǎn) : 1 信息是通過(guò)神經(jīng)元上的興奮模式分布儲(chǔ)在網(wǎng)絡(luò)上 ; 2 信息處理是通過(guò)神經(jīng)元之間同時(shí)相互 作用的動(dòng)態(tài)過(guò)程來(lái)完成的。 人工神經(jīng)網(wǎng)絡(luò)具有初步的自適應(yīng)與自組織能力。在學(xué)習(xí)或訓(xùn)練過(guò)程中改變突觸權(quán)重值,以適應(yīng)周圍環(huán)境的要求。同一網(wǎng)絡(luò)因?qū)W習(xí)方式及內(nèi)容不同可具有不同的功能。人工神經(jīng)網(wǎng)絡(luò)是一個(gè)具有學(xué)習(xí)能力的系統(tǒng),可以發(fā)展知識(shí),以致超過(guò)設(shè)計(jì)者原有的知識(shí)水平。通常,它的學(xué)習(xí)訓(xùn)練方式可分為兩種,一種是有監(jiān)督或稱有導(dǎo)師的學(xué)習(xí),這時(shí)利用給定的樣本標(biāo)準(zhǔn)進(jìn)行分類或模仿;另一種是無(wú)監(jiān)督學(xué)習(xí)或稱無(wú)導(dǎo)師學(xué)習(xí),這時(shí),只規(guī)定學(xué)習(xí)方式或某些規(guī)則,則具體的學(xué)習(xí)內(nèi)容隨系統(tǒng)所處環(huán)境 (即輸入信號(hào)情況)而異,系統(tǒng)可以自動(dòng)發(fā)現(xiàn)環(huán)境特征和規(guī)律 性,具有更近似人腦的功能。 神經(jīng)網(wǎng)絡(luò)的研究?jī)?nèi)容相當(dāng)廣泛,反映了多學(xué)科交叉技術(shù)領(lǐng)域的特點(diǎn)。目前,主要的研究工作集中在以下幾個(gè)方面: 1 生物原型研究。從生理學(xué)、心理學(xué)、解剖學(xué)、腦科學(xué)、病理學(xué)等生物科學(xué)方面研究神經(jīng)細(xì)胞、神經(jīng)網(wǎng)絡(luò)、神經(jīng)系統(tǒng)的生物原型結(jié)構(gòu)及其功能機(jī)理。 2 建立理論模型。根據(jù)生物原型的研究,建立神經(jīng)元、神經(jīng)網(wǎng)絡(luò)的理論模黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 3 型。其中包括概念模型、知識(shí)模型、物理化學(xué)模型、數(shù)學(xué)模型等。 3 網(wǎng)絡(luò)模型 與算法研究。在理論模型研究的基礎(chǔ)上構(gòu)作具體的 神經(jīng)網(wǎng)絡(luò)模型 ,以實(shí)現(xiàn)計(jì)算機(jī)饃擬或準(zhǔn)備制作硬件,包括 網(wǎng)絡(luò)學(xué)習(xí) 算法的研究。這方面的工作也稱為技術(shù)模型研究。 4 人工神經(jīng)網(wǎng)絡(luò)應(yīng)用系統(tǒng)。在網(wǎng)絡(luò)模型與算法研究的基礎(chǔ)上,利用人工神經(jīng)網(wǎng) 絡(luò)組成實(shí)際的應(yīng)用系統(tǒng),例如,完成某種信號(hào)處理或 模式識(shí)別 的功能、構(gòu)作專家系統(tǒng)、制成機(jī)器人等等。 縱觀當(dāng)代新興科學(xué)技術(shù)的發(fā)展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學(xué)技術(shù)領(lǐng)域的進(jìn)程中歷經(jīng)了崎嶇不平的道路。我們也會(huì)看到,探索人腦功能和神經(jīng)網(wǎng)絡(luò)的研究將伴隨著重重困難的克服而日新月異。 1.3 BP 神經(jīng)網(wǎng)絡(luò) 在人工神經(jīng)網(wǎng)絡(luò)發(fā)展歷史中,很長(zhǎng)一段時(shí)間里沒(méi)有找到隱層的連接 權(quán)值調(diào)整問(wèn)題的有效算法。直到誤差 反向傳播算法 ( BP 算法)的提出,成功地解決了求解非線性連續(xù)函數(shù)的 多層前饋神經(jīng)網(wǎng)絡(luò) 權(quán)重調(diào)整問(wèn)題。 BP (Back Propagation)神經(jīng)網(wǎng)絡(luò),即誤差反傳誤差反向傳播算法的學(xué)習(xí)過(guò)程,由信息的正向傳播 和誤差的反向傳播兩個(gè)過(guò)程組成。輸入層各神經(jīng)元負(fù)責(zé)接收來(lái)自外界的輸入信息,并傳遞給中間層各神經(jīng)元;中間層是內(nèi)部信息處理層,負(fù)責(zé)信息變換,根據(jù)信息變化能力的需求,中間層可以設(shè)計(jì)為單隱層或者多隱層結(jié)構(gòu);最后一個(gè)隱層傳遞到輸出層各神經(jīng)元的信息,經(jīng)進(jìn)一步處理后,完成一次學(xué)習(xí)的正向傳播處理過(guò)程,由輸出層向外界輸出信息處理結(jié)果。當(dāng)實(shí)際輸出與期望輸出不符時(shí),進(jìn)入誤差的反向傳播階段。誤差通過(guò)輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、輸入層逐層反傳。周而復(fù)始的信息正向傳播和誤差反向傳播過(guò)程,是各層權(quán)值不斷調(diào)整的過(guò)程,也 是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過(guò)程,此過(guò)程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或者預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。 首先,由于學(xué)習(xí)速率是固定的,因此網(wǎng)絡(luò)的收斂速度慢,需要較長(zhǎng)的訓(xùn)練時(shí)間。對(duì)于一些復(fù)雜問(wèn)題, BP 算法需要的訓(xùn)練時(shí)間可能非常長(zhǎng),這主要是由于學(xué)習(xí)速率太小造成的,可采用變化的學(xué)習(xí)速率或自適應(yīng)的學(xué)習(xí)速率加以改進(jìn)。 其次, BP 算法可以使權(quán)值收斂到某個(gè)值,但并不保證其為誤差平面的全局最小值,這是因?yàn)椴捎锰荻认陆捣赡墚a(chǎn)生一個(gè)局部最小值。對(duì)于這個(gè)問(wèn)題,可以采用附加動(dòng)量法來(lái)解決。 再次,網(wǎng)絡(luò)隱含層的層 數(shù)和單元數(shù)的選擇尚無(wú)理論上的指導(dǎo),一般是根據(jù)經(jīng)黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 4 驗(yàn)或者通過(guò)反復(fù)實(shí)驗(yàn)確定。因此,網(wǎng)絡(luò)往往存在很大的冗余性,在一定程度上也增加了網(wǎng)絡(luò)學(xué)習(xí)的負(fù)擔(dān)。 最后,網(wǎng)絡(luò)的學(xué)習(xí)和記憶具有不穩(wěn)定性。也就是說(shuō),如果增加了學(xué)習(xí)樣本,訓(xùn)練好的網(wǎng)絡(luò)就需要從頭開(kāi)始訓(xùn)練,對(duì)于以前的權(quán)值和閾值是沒(méi)有記憶的。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 5 第 2章 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)基本原理 2.1 生物神經(jīng)元模型 人工神經(jīng)網(wǎng)絡(luò)是參照生物神經(jīng)網(wǎng)絡(luò)發(fā)展起來(lái)的,為了學(xué)習(xí)和研究人工神經(jīng)網(wǎng)絡(luò),了解生物神經(jīng)網(wǎng)絡(luò)的基本原理是很必 要的。人腦神經(jīng)系統(tǒng)的基本單元是神經(jīng)細(xì)胞,即生物神經(jīng)元。人腦神經(jīng)系統(tǒng)約由 1110個(gè)神經(jīng)元構(gòu)成,每個(gè)神經(jīng)元與約 410個(gè)其他神經(jīng)元連接。神經(jīng)細(xì)胞與人體中其他細(xì)胞的關(guān)鍵區(qū)別在于,神經(jīng)網(wǎng)絡(luò)具有產(chǎn)生、處理和傳遞信號(hào)的能力。一個(gè)神經(jīng)元的構(gòu)造如圖 2.1 所示,主要包括細(xì)胞體、樹(shù)突和軸突。 圖 2.1 生物神經(jīng)元示意圖 細(xì)胞體是由細(xì)胞核、細(xì)胞質(zhì)、細(xì)胞膜等組成。在高等動(dòng)物的神經(jīng)細(xì)胞,除了特殊的無(wú) “軸突 ”神經(jīng)元外,一般每個(gè)神經(jīng)元從細(xì)胞體伸 出一根粗細(xì)均勻、表面光滑的突起,長(zhǎng)度從幾微米到 1m左右,稱為軸突,它的功能是傳出從細(xì)胞體來(lái)的神經(jīng)信息。從細(xì)胞體延伸出像樹(shù)枝一樣向四處分散開(kāi)來(lái)的許多突起,稱之為樹(shù)突,其作用是感受其他神經(jīng)元的傳遞信號(hào)。軸突末端有許多細(xì)的分枝,稱之為神經(jīng)末梢,每一根神經(jīng)末梢可以與其他神經(jīng)元連接,其連接的末端稱之為突觸。神經(jīng)元黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 6 之間的連接是靠突觸實(shí)現(xiàn)的,主要有:軸突與樹(shù)突、軸突與細(xì)胞體、軸突與軸突、樹(shù)突與樹(shù)突等連接形式。 神經(jīng)細(xì)胞單元的信息是寬度和幅度都相同的脈沖串,若某個(gè)神經(jīng)細(xì)胞興奮,其軸突輸出的脈沖串的頻率就高;若某個(gè)神經(jīng)細(xì)胞抑 制,其軸突輸出的脈沖串的頻率就低,甚至無(wú)脈沖發(fā)出。根據(jù)突觸對(duì)下一個(gè)神經(jīng)細(xì)胞的功能活動(dòng)的影響,突觸又可分為興奮性的和抑制性的兩種。興奮性的突觸可能引起下一個(gè)神經(jīng)細(xì)胞興奮,抑制性的突觸使下一個(gè)神經(jīng)細(xì)胞抑制。 神經(jīng)細(xì)胞的細(xì)胞膜將細(xì)胞體內(nèi)外分開(kāi),從而使細(xì)胞體內(nèi)外有不同的電位,一般內(nèi)部電位比外部低,其內(nèi)外電位差稱之為膜電位。突觸使神經(jīng)細(xì)胞的膜電位發(fā)生變化,且電位的變化是可以累加的,該神經(jīng)細(xì)胞膜電位是它所有突觸產(chǎn)生的電位總和,當(dāng)該神經(jīng)細(xì)胞的膜電位升高到超過(guò)一個(gè)閾值時(shí),會(huì)產(chǎn)生一個(gè)脈沖,從而總和的膜電位直接影響該神經(jīng)細(xì)胞興 奮發(fā)放的脈沖數(shù)。突觸傳遞信息需要一定的延遲,對(duì)溫血?jiǎng)游?,延遲時(shí)間為 0.3ms1.0ms。一般每個(gè)神經(jīng)細(xì)胞的軸突大約連接 100 1000 個(gè)其他神經(jīng)細(xì)胞。神經(jīng)細(xì)胞的信息就這樣從一個(gè)神經(jīng)細(xì)胞傳到另一個(gè)神經(jīng)細(xì)胞,且這種傳播是正向的,不允許逆向傳播。 2.2 人工神經(jīng)元模型 人工神經(jīng)網(wǎng)絡(luò)是在現(xiàn)代神經(jīng)生物學(xué)研究基礎(chǔ)上提出的模擬生物過(guò)程,反映人腦某些特性的一種計(jì)算結(jié)構(gòu)。它不是人腦神經(jīng)系統(tǒng)的真實(shí)描寫(xiě),而只是它的某種抽象、簡(jiǎn)化和模擬。根據(jù)前面對(duì)生物神經(jīng)網(wǎng)絡(luò)的介紹可知,神經(jīng)元及其突觸是神經(jīng)網(wǎng)絡(luò)的基本器件。因此,模擬生 物神經(jīng)網(wǎng)絡(luò)應(yīng)首先模擬生物神經(jīng)元。在人工神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元常被稱為 “處理單元 ”,有時(shí)從網(wǎng)絡(luò)的觀點(diǎn)出發(fā)常把它稱為 “節(jié)點(diǎn) ”。人工神經(jīng)元是對(duì)生物神經(jīng)元的一種形式化描述,它對(duì)生物神經(jīng)元的信息處理過(guò)程進(jìn)行抽象,并用數(shù)學(xué)語(yǔ)言予以描述;對(duì)生物神經(jīng)元的結(jié)構(gòu)和功能進(jìn)行模擬,并用模型圖予以表達(dá)。 目前人們提出的神經(jīng)元模型己有很多,其中最早提出且影響最大的,是 1943年心理學(xué)和數(shù)學(xué)家在分析總結(jié)神經(jīng)元基本特性的基礎(chǔ)上首先提出的 M-P 模型。該模型經(jīng)過(guò)不斷改進(jìn)后,形成目前廣泛應(yīng)用的神經(jīng)元模型形式。關(guān)于神經(jīng)元的信息處理機(jī)制,該模型在簡(jiǎn)化 的基礎(chǔ)上提出以下 6 點(diǎn)假定進(jìn)行描述: 1 每個(gè)神經(jīng)元都是一個(gè)多輸入單輸出的信息處理單元; 2 神經(jīng)元輸入分興奮性輸入和抑制性輸入兩種類型; 3 神經(jīng)元具有空間整合特性和閡值特性; 4 神經(jīng)元輸入與輸出間有固定的時(shí)滯,主要取決于突觸延擱; 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 7 5 忽略時(shí)間整合作用和不應(yīng)期; 6 神經(jīng)元本身是非時(shí)變的,即其突觸時(shí)延和突觸強(qiáng)度均為常數(shù)。 顯然,上述假定是對(duì)生物神經(jīng)元信息處理過(guò)程的簡(jiǎn)化和概括,它清晰地述了生物神經(jīng)元信息處理的點(diǎn),而且便于進(jìn)行形式化表上述假定,可用圖 2.2 中的神元模型示意圖進(jìn)行圖解表示。 圖 2.2 神經(jīng)元模型示意圖 圖 2.2 表明,如生物神經(jīng)元有許多激勵(lì)輸入一樣,人工神經(jīng)元也應(yīng)該有許多的輸入信號(hào) (圖中每個(gè)輸入的大小用確定數(shù)值 Xi 表示 ),它們同時(shí)輸人神經(jīng)元 k。生物神經(jīng)元具有不同的突觸性質(zhì)和突觸強(qiáng)度,其對(duì)輸入的影響是使有些輸入在神經(jīng)元產(chǎn)生脈沖輸出過(guò)程中所起的作用比另外一些輸入更為重要?;締卧纳窠?jīng)元模型包括三個(gè)基本要素:一組求和函數(shù) (對(duì)應(yīng)于生物神經(jīng)元的突觸 )連接強(qiáng)度由各連接上的權(quán)值表示,權(quán)值為正表示啟動(dòng),為負(fù)表示抑制;一個(gè)求和單元 用于求取 各輸入信號(hào)的加權(quán)和 (線性組合 );一個(gè)非線性啟動(dòng)函數(shù) 起非線性映射作用并將神經(jīng)元輸出幅度限制在一定范圍內(nèi) (一般限制在 (0, l)或 (-1, +l)之間 )。此外還有一個(gè)閾值 k(或偏置 ),見(jiàn)圖 2.3。 圖 2.3 基本神經(jīng)元模型 以上作用可分別以數(shù)學(xué)表達(dá)式表達(dá)出來(lái): 1, , )pk i j j k k k k kju w x v u y v ( 式中: 1 2 px x x, , . , 為輸入信號(hào), k 1 k 2 k pw w w, , . ,為神經(jīng)元 k 的權(quán)值, ku . Y )(f k ky ij 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 8 ku 為線性組合結(jié)果, k 為閾值, f(.)為啟動(dòng)函數(shù),為神經(jīng)元 k 的輸出。若把輸入的維數(shù)增加一維,增加一個(gè)新的連接,輸入為 x。 =-1(或 +1),權(quán)值為 0kw = k (或- k ),則可把閾值 k 包括進(jìn)去。例如 0, ( )pk k j j k kju w x y v 啟動(dòng)函數(shù) f ()可以有以下幾種形式: 閾值型變換函數(shù) (圖 2.4),單極性函數(shù)用下式定義: 1 ( 0 )()0 ( 0 )xfxx 具有這一作用方式的神經(jīng)元稱為閾值型神經(jīng)元,是神經(jīng)元模型中最簡(jiǎn)單的一種,經(jīng)典的 M-P 模型就屬于這一類。 圖 2.4 閾值 型變換函數(shù) ( 2)非線性變換函數(shù) 非線性變換函數(shù)為實(shí)數(shù)域 R 到 0, l閉集的非減連續(xù)函數(shù),代表了狀態(tài)連續(xù)型神經(jīng)元模型。最常用的非線性變換函數(shù)是單極性的 Sigmoid 函數(shù)曲線,簡(jiǎn)稱 S型函數(shù) (圖 2.5),其特點(diǎn)是函數(shù)本身及其導(dǎo)數(shù)都是連續(xù)的,因而在處理上十分方便。單極性 S 型函數(shù)定義如下: 1() 1 xfx e 有時(shí)也常采用雙極性 S 型函數(shù)等形式 1 1 -1 0 0 F(x) F(x) x x ( 2.1) ( 2.2) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 9 21( ) 111xxxefx ee ( 3)非線性變換函數(shù) 該函數(shù)的特點(diǎn)是神經(jīng)元的輸入與輸出在一定區(qū)間內(nèi)滿足線性關(guān)系。由于具有分段線性的特點(diǎn),因而在實(shí)現(xiàn)上比較簡(jiǎn)單。這類函數(shù)也稱為偽線性函數(shù),單極性分段線性變換函數(shù)的表達(dá)式如下: 式中, c 為線段的斜率,如圖 2.6。 圖 2.5 S 型變換函數(shù) 圖 2.6 分段線性變換函數(shù) ( 4)概率型變換函數(shù) 采用概率型變換函數(shù)的神經(jīng)元模型其輸入與輸出之間的關(guān)系是不確定的,需要一個(gè)隨機(jī)函數(shù)來(lái)描述其輸出狀態(tài)為 1 或?yàn)?0 的概率。設(shè)神經(jīng)元輸出為 1 的概率為 : 0 F(x) x x ( 2.3) ( 2.4) F(x) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 10 /1(1) 1xTP e 式中, T 稱為溫度參數(shù)。由于采用該變換函數(shù)的神經(jīng)元輸出狀態(tài)分布與熱力學(xué)中的玻爾茲曼分布相類似。 2.3 人工神經(jīng)網(wǎng)絡(luò)模型 神經(jīng)細(xì)胞是構(gòu)筑神經(jīng)系統(tǒng)和人腦的基本單元,它既具有結(jié)構(gòu)和功能的動(dòng)態(tài)特性,又具有時(shí)間和空間的動(dòng)態(tài)特性,其簡(jiǎn)單有序的編排構(gòu)成了復(fù)雜的大腦。神經(jīng)細(xì)胞之間的通信是通過(guò)其具有可塑性的突觸禍合實(shí)現(xiàn)的,這使它們成為一個(gè)的整體。人工神經(jīng)網(wǎng)絡(luò)就是通過(guò)對(duì)人腦的神經(jīng)細(xì)胞一一的建模和連接,來(lái)探索模擬人腦神經(jīng)系統(tǒng)功能的模型,其任務(wù)是具有學(xué)習(xí)、聯(lián)想、記憶和模式識(shí)別等信息處理功能的系統(tǒng)。 在各種智能信息處理模型中,人工神經(jīng)網(wǎng)絡(luò)是最具有大腦風(fēng)格的智能信息處理模型,許多網(wǎng)絡(luò)都能反映人腦功能的若干基本特性,但并非生物 系統(tǒng)的逼真描述,只是對(duì)其局部電路的某種模仿、簡(jiǎn)化和抽象。 大量神經(jīng)元組成龐大的神經(jīng)網(wǎng)絡(luò),才能實(shí)現(xiàn)對(duì)復(fù)雜信息的處理與存儲(chǔ),并表現(xiàn)出各種優(yōu)越的特性。神經(jīng)網(wǎng)絡(luò)的強(qiáng)大功能與其大規(guī)模并行互連、非線性處理以及互連結(jié)構(gòu)的可塑性密切相關(guān)。必須按一定規(guī)則將神經(jīng)元連接成神經(jīng)網(wǎng)絡(luò),并使網(wǎng)絡(luò)中各神經(jīng)元的連接權(quán)按一定規(guī)則變化。生物神經(jīng)網(wǎng)絡(luò)由數(shù)以億計(jì)的生物神經(jīng)元連接而戒,而人工神經(jīng)網(wǎng)絡(luò)限于物理實(shí)現(xiàn)的困難和為了計(jì)算簡(jiǎn)便,是由相對(duì)少量的神經(jīng)元按一定規(guī)律構(gòu)成的網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元常稱為節(jié)點(diǎn)或處理單元,每個(gè)節(jié)點(diǎn)均具有相同的結(jié)構(gòu),其動(dòng)作 在時(shí)間和空間上均同步。 人工神經(jīng)網(wǎng)絡(luò)的模型有很多種,可以按照不同的方法分類。其中常見(jiàn)的兩種分類方法是:按網(wǎng)絡(luò)連接的拓?fù)浣Y(jié)構(gòu)和按網(wǎng)絡(luò)內(nèi)部的信息流向分類。 ( 1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)類型 神經(jīng)元之間的連接方式不同,網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也不同。根據(jù)神經(jīng)元之間連接方式,可將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)分為層次型結(jié)構(gòu) (圖 2.7)、互連型結(jié)構(gòu) (圖 2.8)兩大類。 ( 2)根據(jù)神經(jīng)網(wǎng)絡(luò)內(nèi)部信息的傳遞方向,可分為前饋型、反饋型網(wǎng)絡(luò)兩種類型。 ( 2.5) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 11 圖 2.7 層次結(jié)構(gòu)示意圖 圖 2.8 互聯(lián)結(jié)構(gòu)示意圖 2.4 人工神經(jīng)網(wǎng)絡(luò) 的學(xué)習(xí) 學(xué)習(xí)定義為:根據(jù)與環(huán)境的相互作用而發(fā)生的行為改變,其結(jié)果導(dǎo)致對(duì)外界刺激產(chǎn)生反應(yīng)的新模式的建立。學(xué)習(xí)的過(guò)程離不開(kāi)訓(xùn)練,學(xué)習(xí)的過(guò)程就是一種經(jīng)過(guò)訓(xùn)練而使個(gè)體在行為上產(chǎn)生較為持久改變的過(guò)程。學(xué)習(xí)效果隨著訓(xùn)練量的增加而提高,這就是通過(guò)學(xué)習(xí)獲得的進(jìn)步。 關(guān)于學(xué)習(xí)的神經(jīng)機(jī)制,涉及神經(jīng)元如何分布、處理和存儲(chǔ)信息。這樣的問(wèn)題單用行為研究是不能回答的,必須把研究深入到細(xì)胞和分子水平。在大腦中,要建立功能性的神經(jīng)元連接,突觸形成是關(guān)鍵。神經(jīng)元之間的突觸聯(lián)系,其基本部分是先天就有的,但其他部分是由于學(xué)習(xí)過(guò)程中頻繁地給予刺激 而成長(zhǎng)起來(lái)的。突觸的形成、穩(wěn)定與修飾均與刺激有關(guān),隨著外界給予的刺激性質(zhì)不同,能形成和改變神經(jīng)元間的突觸聯(lián)系。 人工神經(jīng)網(wǎng)絡(luò)的功能特性由其連接的拓?fù)浣Y(jié)構(gòu)和突觸連接強(qiáng)度,即連接權(quán)值決定。神經(jīng)網(wǎng)絡(luò)全體連接權(quán)值的可用一個(gè)矩陣 W 表示,它的整體反映了神經(jīng)網(wǎng)絡(luò)對(duì)于所解決問(wèn)題的知識(shí)存儲(chǔ)。神經(jīng)網(wǎng)絡(luò)能夠通過(guò)對(duì)樣本的學(xué)習(xí)訓(xùn)練,不斷改變網(wǎng)絡(luò)的連接權(quán)值以及拓?fù)浣Y(jié)構(gòu),以使網(wǎng)絡(luò)的輸出不斷地接近期望的輸出。這一過(guò)黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 12 程稱為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)或訓(xùn)練,其本質(zhì)是可變權(quán)值的動(dòng)態(tài)調(diào)整。當(dāng)大量處理單元集體進(jìn)行權(quán)值調(diào)整時(shí),網(wǎng)絡(luò)就呈現(xiàn)出 “智能 ”特性。其中有意義 的信息就分布地存儲(chǔ)在調(diào)節(jié)后的權(quán)值矩陣中。 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法可以歸納為三類 :一是有導(dǎo)師學(xué)習(xí):學(xué)習(xí)模式采用的是糾錯(cuò)規(guī)則,學(xué)習(xí)訓(xùn)練過(guò)程中需要不斷地給網(wǎng)絡(luò)成對(duì)提供一個(gè)輸入模式和一個(gè)期望網(wǎng)絡(luò)正確輸出的模式,將神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出同期望輸出進(jìn)行比較,并按一定的規(guī)則調(diào)整權(quán)值。另類是無(wú)導(dǎo)師學(xué)習(xí):學(xué)習(xí)過(guò)程中,需要不斷地給網(wǎng)絡(luò)提供動(dòng)態(tài)輸入信息。網(wǎng)絡(luò)能根據(jù)特有的內(nèi)部結(jié)構(gòu)和學(xué)習(xí)規(guī)則,在輸入信息流中發(fā)現(xiàn)任何可能存在的模式和規(guī)律,同時(shí)能根據(jù)網(wǎng)絡(luò)的功能和輸入信息調(diào)整權(quán)值,使網(wǎng)絡(luò)能對(duì)屬于同一類的模式進(jìn)行自動(dòng)分類。第三類是灌輸式學(xué)習(xí):將網(wǎng)絡(luò) 設(shè)計(jì)成能記憶特別的例子,以后當(dāng)給定有關(guān)該例子的輸人信息時(shí),例子便被回憶起來(lái)。 2.5 本章小結(jié) 本章主要是對(duì)神經(jīng)網(wǎng)絡(luò)模型建立的基本闡述。是在生物神經(jīng)細(xì)胞的基礎(chǔ)上建立起來(lái)的。最重要的是神經(jīng)元得建立,然后是網(wǎng)絡(luò)模型的確定?,F(xiàn)在主要是 BP模型,為下面的設(shè)計(jì)做理論支持。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 13 第 3 章 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及數(shù)學(xué)模型 3.1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 目前國(guó)外在工程上獲得實(shí)際應(yīng)用的神經(jīng)元模型,大部分是 BP 網(wǎng)絡(luò)。這種網(wǎng)絡(luò)的可靠性及成熟性可以滿足工程應(yīng)用的要求。如圖 3.1 所示。 圖 3.1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖 在人工神經(jīng)網(wǎng)絡(luò)發(fā)展歷史中,很長(zhǎng)一段時(shí)間里沒(méi)有找到隱層的連接權(quán)值調(diào)整問(wèn)題的有效算法。直到誤差 反向傳播算法 ( BP 算法)的提出,成功地解決了求解非線性連續(xù)函數(shù)的 多層前饋神經(jīng)網(wǎng)絡(luò) 權(quán)重調(diào)整問(wèn)題。 BP (Back Propagation)神經(jīng)網(wǎng)絡(luò),即誤差反傳誤差反向傳播算法的學(xué)習(xí)過(guò)程,由信息的正向傳播和誤差的反向傳播兩個(gè)過(guò)程組成。輸入層各神經(jīng)元負(fù)責(zé)接收來(lái)自外界的輸入信息,并傳遞給中間層各神經(jīng)元;中間層是內(nèi)部信息處理層,負(fù)責(zé)信息變換,根據(jù)信息變化能力的需求,中間層可以設(shè)計(jì)為單隱層或者多隱層結(jié)構(gòu);最后一個(gè)隱層傳遞到輸出層各神經(jīng)元的信息,經(jīng)進(jìn)一步處理后,完成一次學(xué)習(xí)的正向傳播處理過(guò)程,由輸出層向外界輸出信息處理結(jié)果。當(dāng)實(shí)際輸出與期望輸出不符時(shí),進(jìn)入誤差的反向傳播階段。誤差通過(guò)輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、 輸入層逐層反傳。周而復(fù)始的信息正向傳播和誤差反向傳播過(guò)程,是各層權(quán)值不斷調(diào)整的過(guò)程,也是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過(guò)程,此過(guò)程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或者預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。 BP 神經(jīng)網(wǎng)絡(luò)模型 BP 網(wǎng)絡(luò)模型包括其輸入輸出模型、作用函數(shù)模型、誤差計(jì)算模型和自學(xué)習(xí)模型。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 14 3.2 BP 神經(jīng)元 圖 2.2 給出了第 j 個(gè)基本 BP 神經(jīng)元(節(jié)點(diǎn)),它只模仿了生物神經(jīng)元所具有的三個(gè)最基本也是最重要的功能:加權(quán)、求和與轉(zhuǎn)移。其中 x1、 x2x ix n 分別代表來(lái)自神經(jīng)元 1、 2in 的輸入; wj1、 wj2w jiw jn 則分別表示神經(jīng)元 1、2in 與第 j 個(gè)神經(jīng)元的連接強(qiáng)度,即權(quán)值; bj 為閾值; f(.)為傳遞函數(shù); yj 為第 j 個(gè)神經(jīng)元的輸出。 第 j 個(gè)神經(jīng)元的凈輸入值 Sj 為: jjijini bxwxw 1js 圖 3.2 BP 神經(jīng)元 其中: Tni xxxxX . 21 , . 21 jnjijjj wwwwW 若視 1x0 , jj bw 0 ,即令 x 及 jw 包括 ox 及 0jw ,則 Tnxxxxx . 210 , . 210 jnjijjj wwwwwwj 于是節(jié)點(diǎn) j 的凈輸入 Sj 可表示為: xwxwsjijinij 0 凈輸入 Sj 通過(guò)傳遞函數(shù)( Transfer Function) f()后,便得到第 j 個(gè)神經(jīng)元的輸出 yi: )()()( 0 xwFxwfsfy jijinijj ( 3.3) )(f 1xixnx ij jb js jy ( 3.2) ( 3.1) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 15 式中是單調(diào)上升函數(shù),而且必須是有界函數(shù),因?yàn)榧?xì)胞傳遞的信號(hào)不可能無(wú)限增加,必有一最大值。 3.3 BP 網(wǎng)絡(luò) BP 算法由數(shù)據(jù)流的前向計(jì)算(正向傳播)和誤差信號(hào)的反向傳播兩個(gè)過(guò)程構(gòu)成。正向傳播時(shí),傳播方向?yàn)檩斎雽?隱層 輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉(zhuǎn)向誤差信號(hào)的反向傳播流程。通過(guò)這兩個(gè)過(guò)程的交替進(jìn)行,在權(quán)矢量空間執(zhí)行誤差函數(shù)梯度下降策略,動(dòng)態(tài)迭 代搜索一組權(quán)矢量,使網(wǎng)絡(luò)誤差函數(shù)達(dá)到最小值,從而完成信息提取和記憶過(guò)程。 3.3.1 正向傳播 圖 3.3 三層神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu) 設(shè) BP 網(wǎng)絡(luò)的輸入層有 n 個(gè)節(jié)點(diǎn),隱層有 q 個(gè)節(jié)點(diǎn),輸出層有 m個(gè)節(jié)點(diǎn),輸入層與隱層之間的權(quán)值為 kiv ,隱層與輸出層之間的權(quán)值為 jkw ,如圖 3.3 所示。隱層的傳遞函數(shù)為 f1(),輸 出層的傳遞函數(shù)為 f2(),則隱層節(jié)點(diǎn)的輸出為(將閾值寫(xiě)入求和項(xiàng)中): )(01 ikjnik xvfz k=1, 2, q ( 3.4) 輸出層節(jié)點(diǎn)的輸出為: )(y 02j kjknk zwf j=1, 2, m ( 3.5) 1x . ix .nx n q m 1y 1z V my jy W kz qz . j 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 16 至此 B-P 網(wǎng)絡(luò)就完成了 n 維空間矢量對(duì) m維空間的近似映射。 3.3.2 反向 傳播 ( 1) 定義誤差函數(shù) 輸入 p 個(gè)學(xué)習(xí)樣本,用 x1,x2.xp 來(lái)表示。第 p 個(gè)樣本輸入到網(wǎng)絡(luò)后得到輸出pjy ( j=1, 2, m )。采用平方型誤差函數(shù),于是得到第 p 個(gè)樣本的誤差 Ep: 21 )(21pjpjmj ytp ( 3.6) 式中: pjt為期望輸出。 對(duì)于 p 個(gè)樣本,全局誤差為: ppppjpjmjpp EytE 11121 )( ( 3.7) ( 2) 輸出層權(quán)值的變化 采 用 累 計(jì) 誤 差 BP 算 法 調(diào) 整 jkw , 使 全 局 誤 差 E 變 小 , 即 : pp wEwEjkjkpjkw 1 )( ( 3.8) 式中: 學(xué)習(xí)率 定義誤差信號(hào)為: jjjpjp SySEE Syj ( 3.9) 其中第一項(xiàng): mj pjpjmj pjpjjjp ytytyyE 12121 )()( ( 3.10) 第二項(xiàng): )(2 jjj sfsy ( 3.11) 是輸出層傳遞函數(shù)的偏微分。 于是: 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 17 )()( 21yj jmjpjpj sfyt ( 3.12)kmj jpjpj zsfytkyjjkp zw 1 )(2)( ( 3.13) 于是輸出層各神經(jīng)元的權(quán)值調(diào)整公式為: kjmjpjpjppjk zfyt )( s)(w 211 ( 3.14) ( 3) 隱層權(quán)值的變化 )()(kjkjp11 EE pppppkjkj ( 3.15) 定義誤差信號(hào)為: kkxpk szzEsEp zk ( 3.16) 其中第一項(xiàng): kjk zyytytzE pjpjmjpjpjmj )()(21z121kp ( 3.17) 依鏈定理有: jkjkjkj wsfzsz )(syy 2j ( 3.18) 第二項(xiàng): )(1zk kksfs ( 3.19) 是隱層傳遞函數(shù)的偏微分。 于是: )()()( 12m1zk kjkjpjpjjsfwsfyt ( 3.20) 由鏈定理得:ikjkji xsfwsfytxEE pjpjmjzk )()()(ss 121kjpkjp kk ( 3.21) 從而得到隱層各神經(jīng)元的權(quán)值調(diào)整公式為: 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 18 ij xsfwsfyt kjkpjpjmj)()()( 121p1pkj ( 3.22) 3.4 本章小結(jié) 本章主要是對(duì) BP 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和數(shù)學(xué)模型進(jìn)行設(shè)計(jì), BP 神經(jīng)網(wǎng)絡(luò)是現(xiàn)在應(yīng)用最廣泛,也是現(xiàn)在最成熟的神經(jīng)網(wǎng)絡(luò),它有學(xué)習(xí)的能力。主要是對(duì)數(shù)據(jù)的正向傳播和誤差數(shù)據(jù)的反向傳播。查閱相關(guān)資料得出數(shù)學(xué)模型。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 19 第 4 章 BP 網(wǎng)絡(luò)的自學(xué)習(xí)與預(yù)測(cè)編程 4.1 BP 網(wǎng)絡(luò)的學(xué)習(xí)與預(yù)測(cè)神經(jīng)編程 BP 網(wǎng)是一種具有三層以上的多層神經(jīng)元網(wǎng)絡(luò),它的左、右各層之間各個(gè)神經(jīng)元實(shí)現(xiàn)全連接,即左層的每一個(gè)神經(jīng)元與右層的每個(gè)神經(jīng)元都有連接,而上下層各神經(jīng)元之間無(wú)連接。 BP 網(wǎng)絡(luò)按有教師學(xué)習(xí)方式進(jìn)行訓(xùn)練,當(dāng)一對(duì)學(xué)習(xí)模式提供給網(wǎng)絡(luò)后,其神經(jīng)元的啟動(dòng)值將從輸入層經(jīng)各中間層向輸出層傳播,在輸出層的各神經(jīng)元輸出對(duì)應(yīng)于輸入模式的網(wǎng)絡(luò)相應(yīng)。然后,將減少希望輸出與實(shí)際輸出誤差的原則,從輸出層經(jīng)各中間層、最后回到輸入層逐 層修正各連接權(quán)。由于這種修正過(guò)程是從輸出到輸入層逐層進(jìn)行的,所以稱它為 “誤差逆?zhèn)鞑ニ惴?”。隨著這種誤差逆?zhèn)鞑ビ?xùn)練的不斷 ,網(wǎng)絡(luò)對(duì)輸入模式回應(yīng)的正確率也不斷提高。 由于 BP 網(wǎng)絡(luò)有處于中間位置的隱含層,并有相應(yīng)的學(xué)習(xí)規(guī)則可循,可訓(xùn)練這種網(wǎng)絡(luò),使其具有對(duì)非線性模式的識(shí)別能力。特別是它的數(shù)學(xué)意義明確、步驟分明的學(xué)習(xí)算法,更使其具有廣泛的應(yīng)用前景。 BP 網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程主要由四部分組成: ( 1) 輸入模式順傳播(輸入模式由輸入層經(jīng)中間層向輸出層傳播計(jì)算); ( 2) 輸出誤差逆?zhèn)鞑ィㄝ敵龅恼`差由輸出層經(jīng)中間層傳向輸入層); ( 3) 循環(huán)記憶訓(xùn)練 (模式順傳播與誤差逆?zhèn)鞑サ挠?jì)算過(guò)程反復(fù)交替循環(huán)進(jìn)行); ( 4) 學(xué)習(xí)結(jié)果判別(判定全局誤差是否趨向極小值)。 4.2 輸入模式順傳播 這一過(guò)程主要是利用輸入模式求出它所對(duì)應(yīng)的實(shí)際輸出。 設(shè)輸入模式矢量為12A k k nkna a a , , . , ( k =1, 2, , m ; m 學(xué)習(xí)模式對(duì)數(shù), n輸入層單元個(gè)數(shù))。 與輸入模式相對(duì)應(yīng)的希望輸出為12k k kkqY y y y , , . , ( q 輸出層單元數(shù))。根據(jù) M-P 神經(jīng)元模型原理,計(jì)算中間層各神經(jīng)元的啟動(dòng)值: 1.nj ij i jis W a ( j =1, 2, , p ) ( 4.1) 式中:ijW輸入層至中間層的連接權(quán); 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 20 ij中間層單元的閾值; P 中間層單元數(shù)。 啟動(dòng)函數(shù)采用 S 型函數(shù),即 1() 1 e x p ( )fx x ( 4.2) 這里之所以選用 S 型函數(shù)作為 BP 網(wǎng)絡(luò)神經(jīng)元的啟動(dòng)函數(shù)是因?yàn)樗沁B續(xù)可分的,而且更接近于生物神經(jīng)元的信號(hào)輸出形式。 將上面的啟動(dòng)值代入啟動(dòng)函數(shù)中可以得到中間層 j 單元的 輸出值為: 11()1 e x p ( . )jj ni j i jib f sWa ( 4.3) 同理,可求出輸出端的啟動(dòng)值和輸出值: 設(shè)輸出層第 t 個(gè)單元的啟動(dòng)值為tl,則 1.pt jt j tjl V b r ( 4.4) 設(shè)輸出層 t 個(gè)單元的實(shí)際輸出值為tc,則 ()ttc f l ( t=1, 2, q ) 式中:jtV中間層至輸出層連接權(quán); t 輸出層單元閾值; f S 型啟動(dòng)函數(shù)。 利用以上各式就可以計(jì)算出一個(gè)輸入模式的順傳播過(guò)程。 void wforward() int j,i; float sum; for (i=0;iwHN;i+) sum=0.0; 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 21 for (j=0;jwIN;j+) sum+=wwji*wIVj; sum=sum-wsthi; wHVi=(float)(1.0f/(1.0f+exp(-sum); for (i=0;iwON;i+) sum=0.0; for (j=0;jwHN;j+) sum+=wvji*wHVj; sum=sum-wstoi; wOVi=(float)(1.0f/(1.0f+exp(-sum); 4.3 輸出誤差的逆?zhèn)鞑?在第一步的模式順傳播計(jì)算中得到了網(wǎng)絡(luò)的實(shí)際輸出值,當(dāng)這些實(shí)際的輸出值與希望的輸出值不一樣或者說(shuō)其誤差大于所限定的數(shù)值時(shí),就要對(duì)網(wǎng)絡(luò)進(jìn)行校正。 這里的校正是從后向前進(jìn)行的,所以叫作誤差逆?zhèn)鞑?,?jì)算時(shí)是從輸出層到中間層,再?gòu)闹虚g層到輸入層。 輸出層的校正誤差為: )1()( ktktktktkt cccyd ( 4.5) 式中: t =1, 2, , m kty 希望輸出; 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 22 ktc實(shí)際輸出; (.)f 對(duì)輸出層函數(shù)的導(dǎo)數(shù)。 中間層各單元的校正誤差為: )1(1jjqtktjtkj bbdve ( j =1, 2, , p k =1, 2, , m ) 對(duì)于輸出層至中間層連接權(quán)和輸出層閾值的校正量為 . kkjt t jV d b ( 4.6) . kttd ( 4.7) 其中, kjb中間層 j 單元的輸出; ktd輸出層的誤差校正。 j =1, 2, , p t =1, 2, , q k =1, 2, , m 中間層至輸入層的校正量為 .kkij j iW e a ( 4.8) . kjje ( 4.9) 式中: kje中間層 j 單元的校正誤差。 i =1, 2, , n 0 1(學(xué)習(xí)系數(shù))。 從這里可以 得出程序 : void wbackward() int j,i; float sum; for (i=0;iwON;i+) wdtoi=(wDi-wOVi)*wOVi*(1.0f-wOVi); for (i=0;iwHN;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 23 sum=0.0; for (j=0;jwON;j+) sum+=wdtoj*wvij; wdthi=sum*wHVi*(1.0f-wHVi); for (j=0;jwON;j+) for (i=0;iwHN;i+) sum=wdtoj*wHVi; wdvij=(float)(weta*sum+walpha*wdv1ij); wvij+=wdvij; wdv1ij=wdvij; wdstoj=(float)(-weta*wdtoj+walpha*wdsto1j); wstoj+=wdstoj; wdsto1j=wdstoj; for (j=0;jwHN;j+) for (i=0;iwIN;i+) sum=wdthj*wIVi; wdwij=(float)(weta*sum+walpha*wdw1ij); wwij+=wdwij; wdw1ij=wdwij; wdsthj=(float)(-weta*wdthj+walpha*wdsth1j); 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 24 wsthj+=wdsthj; wdsth1j=wdsthj; 4.4 循環(huán)記憶訓(xùn)練 為使網(wǎng)絡(luò)的輸出誤差趨于極小值,對(duì) BP 網(wǎng)絡(luò)輸入的每一組訓(xùn)練模式,一般要經(jīng)過(guò)數(shù)百次甚至上萬(wàn)次的循環(huán)記憶訓(xùn)練,才能使網(wǎng)絡(luò)記住這一模式。 這種循環(huán)記憶訓(xùn)練實(shí)際上就是反復(fù)重復(fù)上面介紹的輸入模式順傳播和輸出誤差逆?zhèn)鞑ミ^(guò)程。 流程圖如下: 圖 4.1 循環(huán)流程圖 由此流程圖得出 程序如下: 連接權(quán)及閾值初始化 計(jì)算中間層各單元的輸入、輸出 全部模式訓(xùn)練完 是 學(xué)習(xí)模式提供給網(wǎng)絡(luò) 計(jì)算輸出層各單元的輸入、輸出 計(jì)算輸出層各單 元的校正誤差 計(jì)算中間層各單元的校正誤差 調(diào)整中間層至輸出層之間的連接權(quán)及輸出層各單元的輸出閾值 調(diào)整輸入層至中間層之間的連接權(quán)及輸出層各單元的輸出閾值 更新學(xué)習(xí)輸入模式 更新學(xué)習(xí)次數(shù) 誤差 或?qū)W習(xí)次數(shù) N 學(xué)習(xí)結(jié)束 開(kāi) 始 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 25 void wTrain() int k,j,i,ct=0; float errwON; printf(n); printf(n); printf(It is time to training-!n); printf(n); printf(n); printf(This calculation needs about two minutes,n); printf(n); printf(n); printf(Please wait patiently!n); winitwt(); winput(); do for(i=0;iwON;i+) erri=0.0; for (k=0;kwPN;k+) for (i=0;iwIN;i+) wIVi=wIPik; for (i=0;iwON;i+) wDi=wDPik; 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 26 wforward(); for (i=0;iwON;i+) erri+=(wDi-wOVi)*(wDi-wOVi); wbackwd(); ct+; while (ctwSERROR); if (wfpwt=fopen(wszWt,w)=NULL) /*printf(Cant write Weight data file:%s!,wszWt);*/ exit(1); for (i=0;iwHN;i+) for (j=0;jwIN;j+) fprintf(wfpwt,%e,%e,%en,wwji,wdwji,wdw1ji); fprintf(wfpwt,%e,%e,%en,wsthi,wdsthi,wdsth1i); for (i=0;iwON;i+) for (j=0;jwHN;j+) fprintf(wfpwt,%e,%e,%en,wvji,wdvji,wdv1ji); fprintf(wfpwt,%e,%e,%en,wstoi,wdstoi,wdsto1i); 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 27 if (wfperr=fopen(wszerr,w)=NULL) /* printf(Cant write Weight data file:%s!,wszWt);*/ exit(1); for(i=0;iwON;i+) erri=erri/(wPN*wON); erri=(float)sqrt(erri); fprintf(wfperr,%en,erri); /*printf(循環(huán) %4d 次后 err%d為 : %en,ct,i,erri);*/ fclose(wfperr); fclose(wfpwt); 4.5 學(xué)習(xí)結(jié)果的判別 當(dāng)每次循環(huán)記憶訓(xùn)練結(jié)束后,都要進(jìn)行學(xué)習(xí)結(jié)果的判別。判別的目的主要是檢查輸出誤差是否已經(jīng)小到允許的程度。如果小到允許的程度,就可以結(jié)束這個(gè)學(xué)習(xí)過(guò)程,否則還要進(jìn)行循環(huán)訓(xùn)練。學(xué)習(xí)或者說(shuō)訓(xùn)練的過(guò)程是網(wǎng)絡(luò)全局誤差趨向于極小值的過(guò)程。 在網(wǎng)絡(luò)的學(xué)習(xí)階段,通過(guò)調(diào)整所有連接權(quán)和閾 值使系統(tǒng)的平均誤差 E 達(dá)到最小, 訓(xùn)練結(jié)束。 21)(21 kknktE ( 4.10) 式中: kt計(jì)算的輸出值 ; k 實(shí)際的輸出值 ; n樣本數(shù)。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 28 一些數(shù)據(jù)不止一個(gè)數(shù)量級(jí),存在奇異樣本數(shù)據(jù),訓(xùn)練前要對(duì)輸入?yún)?shù)進(jìn)行歸一化處理。歸一化處理 VC 程序如下: float wpfMap(float x,float m, float n, float h, float l) float wxmin=m, wxmax=n, wymin=h, wymax=l; float A,B,y; A=(wymax-wymin)/(wxmax-wxmin); B=(wxmax*wymin-wxmin*wymax)/(wxmax-wxmin); y=x*A+B; return (y); 所以對(duì)預(yù)測(cè)判斷的程序如下: void wTest() int k,j,i; float errwON; float x; /*printf(Testing-!n);*/ if (wfpwt=fopen(wszWt,r)=NULL) printf(Cant open Weight data file:%s!,wszWt); exit(1); for (i=0;iwHN;i+) for (j=0;jwIN;j+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 29 fscanf(wfpwt,%e,%e,%e,&wwji,&wdwji,&wdw1ji); fscanf(wfpwt,%e,%e,%e,&wsthi,&wdsthi,&wdsth1i); for (i=0;iwON;i+) for (j=0;jwHN;j+) fscanf(wfpwt,%e,%e,%e,&wvji,&wdvji,&wdv1ji); fscanf(wfpwt,%e,%e,%e,&wstoi,&wdstoi,&wdsto1i); fclose(wfpwt); if (wfpout=fopen(wszOut,w)=NULL) printf(Cant write output data file:%s!,wszOut); exit(1); if (wfptest=fopen(wszTest,r)=NULL) printf(Cant open test data file:%s!,wszTest); exit(1); if(wfparea=fopen(wszArea,r)=NULL) printf(cant open file %sn,wszArea); exit(1); for (i=0;iwIN+3;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 30 fscanf(wfparea,%f%f%f%f,&wxmini,&wxmaxi,&wymini,&wymaxi); for (i=0;iwTN;i+) for (j=0;jwIN;j+) float m=wxminj; float n=wxmaxj; float h=wyminj; float l=wymaxj; fscanf(wfptest,%e,&wITji); x=wITji; wITji=wpfMap(x,m,n,h,l); for(k=0;kwON;k+) float m=wxminwIN+k; float n=wxmaxwIN+k; float h=wyminwIN+k; float l=wymaxwIN+k; fscanf(wfptest,%e,&wDTki); x=wDTki; wDTki=wpfMap(x,m,n,h,l); for (i=0;iwON;i+) erri=0.0; for (k=0;kwTN;k+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 31 for (i=0;iwIN;i+) wIVi=wITik; for (i=0;iwON;i+) wDi=wDTik; wforward(); for (i=0;iwON;i+) float m=wxminwIN+i; float n=wxmaxwIN+i; float h=wyminwIN+i; float l=wymaxwIN+i; x=wOVi; wOVi=wpbMap(x,m,n,h,l); x=wDi; wDi=wpbMap(x,m,n,h,l); erri+=(wDi-wOVi)*(wDi-wOVi); fprintf(wfpout,%8.2ft,wOVi); fprintf(wfpout,%8.2ft,wDi); fprintf(wfpout,%10.4ft,(wDi-wOVi)/wDi); fprintf(wfpout,n); if (wfperr=fopen(wszerr,w)=NULL) /* printf(Cant write Weight data file:%s!,wszWt);*/ 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 32 exit(1); for(i=0;iwON;i+) erri=erri/(wPN*wON); erri=(float)sqrt(erri); fprintf(wfperr,%en,erri); /*printf(循環(huán) %4d 次后 err%d為 : %en,ct,i,erri);*/ fclose(wfperr); fclose(wfptest); fclose(wfparea); fclose(wfpout); 4.6 對(duì)數(shù)據(jù)的預(yù)測(cè)程序編寫(xiě) 最后的預(yù)測(cè)程序就是對(duì)前面訓(xùn)練好的網(wǎng)絡(luò)的實(shí)現(xiàn),先把調(diào)整好的閾值和權(quán)值送進(jìn)檔,然后把要預(yù)測(cè)的數(shù)據(jù)放進(jìn)預(yù)測(cè)檔中進(jìn)行正向的順序運(yùn)算,最后得出預(yù)測(cè)數(shù)據(jù)。得到如下程序 : void wpre() int k,j,i; float errwON; float x; /*printf(predicting-!n);*/ if (wfpwt=fopen(wszWt,r)=NULL) printf(Cant open Weight data file:%s!,wszWt); exit(1); /read the satisfied wt value for (i=0;iwHN;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 33 for (j=0;jwIN;j+) fscanf(wfpwt,%e,%e,%e,&wwji,&wdwji,&wdw1ji); fscanf(wfpwt,%e,%e,%e,&wsthi,&wdsthi,&wdsth1i); for (i=0;iwON;i+) for (j=0;jwHN;j+) fscanf(wfpwt,%e,%e,%e,&wvji,&wdvji,&wdv1ji); fscanf(wfpwt,%e,%e,%e,&wstoi,&wdstoi,&wdsto1i); fclose(wfpwt); if (wfpout1=fopen(wszOut1,w)=NULL) printf(Cant write output data file:%s!,wszOut1); exit(1); if (wfppre=fopen(wszpre,r)=NULL) printf(Cant open pre data file:%s!,wszpre);/wszTest); exit(1); if(wfparea=fopen(wszArea,r)=NULL) printf(cant open file %sn,wszArea); exit(1); for (i=0;iwIN+3;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 34 fscanf(wfparea,%f%f%f%f,&wxmini,&wxmaxi,&wymini,&wymaxi); for (i=0;iwPREN;i+) for (j=0;jwIN;j+) float m=wxminj; float n=wxmaxj; float h=wyminj; float l=wymaxj; fscanf(wfppre,%e,&wITji); x=wITji; wITji=wpfMap(x,m,n,h,l); for(k=0;kwON;k+) float m=wxminwIN+k; float n=wxmaxwIN+k; float h=wyminwIN+k; float l=wymaxwIN+k; fscanf(wfppre,%e,&wDTki); x=wDTki; wDTki=wpfMap(x,m,n,h,l); for (i=0;iwON;i+) erri=0.0; for (k=0;kwPREN;k+) for (i=0;iwIN;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 35 wIVi=wITik; for (i=0;iwON;i+) wDi=wDTik; wforward(); for (i=0;iwON;i+) float m=wxminwIN+i; float n=wxmaxwIN+i; float h=wyminwIN+i; float l=wymaxwIN+i; x=wOVi; wOVi=wpbMap(x,m,n,h,l); x=wDi; wDi=wpbMap(x,m,n,h,l); erri+=(wDi-wOVi)*(wDi-wOVi); fprintf(wfpout1,%8.2ft,wOVi); printf(%8.2f,wOVi); fprintf(wfpout1,%8.2ft,wDi); printf(%8.2f,wDi); fprintf(wfpout1,%10.4ft,(wDi-wOVi)/wDi); printf(%8.2f,(wDi-wOVi)/wDi); fprintf(wfpout1,n); if (wfperr=fopen(wszerr,w)=NULL) /* printf(Cant write Weight data file:%s!,wszWt);*/ exit(1); for(i=0;iwON;i+) 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 36 erri=erri/(wPN*wON); erri=(float)sqrt(erri); fprintf(wfperr,%en,erri); /*printf(循環(huán) %4d 次后 err%d為 : %en,ct,i,erri);*/ fclose(wfperr); fclose(wfppre); fclose(wfparea); fclose(wfpout1); 4.7 本章小結(jié) 本章主要是對(duì)前面說(shuō)建立的 BP 網(wǎng)絡(luò)進(jìn)程程序的編寫(xiě),包括網(wǎng)絡(luò)的正向訓(xùn)練程序,網(wǎng)絡(luò)的誤差傳播程序,訓(xùn)練循環(huán)程序,結(jié)果判斷程序和預(yù)測(cè)程序。 特別是對(duì)數(shù)據(jù)歸一化的處理,在程序中起了很重要的作用。 黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 37 第五章 BP 神經(jīng)網(wǎng)絡(luò)在汽車 保有量預(yù)測(cè)中的應(yīng)用 5.1 汽車保有量預(yù)測(cè)的意義 在城市道路交通規(guī)劃中 , 汽車保有量預(yù)測(cè)是規(guī)劃過(guò)程中一項(xiàng)基礎(chǔ)工作??茖W(xué)準(zhǔn)確地把握未來(lái)城市汽車發(fā)展保有量對(duì)做好交通流生成預(yù)測(cè) , 宏觀上把握路網(wǎng)容量供需關(guān)系和道路交通流的分布分配 , 構(gòu)建完善的路網(wǎng)規(guī)劃具有十分重要的意義。傳統(tǒng)的汽車保有量預(yù)測(cè)方法主要有外推法 ,因果法 , 判斷分析法等?,F(xiàn)行的預(yù)測(cè)方法雖各有其優(yōu)點(diǎn) , 但大多存在數(shù)據(jù)擬合度不高 , 外推性不強(qiáng) , 預(yù)測(cè)結(jié)果與實(shí)際情況有較大偏差等問(wèn)題。為此 , 采用 BP神經(jīng)網(wǎng)絡(luò)分析構(gòu)造了汽車保有量預(yù)測(cè)模型 , 將原來(lái)有較多的 輸入變量群進(jìn)行主成分分析 , 利用線性變換得到一組個(gè)數(shù)較少的、彼此不相關(guān)的新輸入變量 , 再用新輸入變量作為 BP神經(jīng)網(wǎng)絡(luò)的輸入 , 從而簡(jiǎn)化了輸入變量 , 提高了神經(jīng)網(wǎng)絡(luò)性能。還利用實(shí)際數(shù)據(jù)對(duì)某市汽車保有量進(jìn)行了預(yù)測(cè)。 5.2 基于 BP神經(jīng)網(wǎng)絡(luò)的汽車保有量預(yù)測(cè)模型 5.2.1 汽車保有量主要影響因素分析 決定某一城市的汽車保有量相關(guān)影響因素很多 , 其中最主要的是城市人口及城市社會(huì)經(jīng)濟(jì)發(fā)展水平。城市人口增多 , 人們的出行量就會(huì)增多 , 對(duì)汽車特別是客車的需求就會(huì)越大 , 因而必然導(dǎo)致保有量的增長(zhǎng) , 以滿足需求。 經(jīng)濟(jì)是交通的源需求 , 城市經(jīng)濟(jì)發(fā)展水平可以從多項(xiàng)指標(biāo)上反映出來(lái) , 如國(guó)內(nèi)生產(chǎn)總值、人均國(guó)內(nèi)生產(chǎn)總值、工業(yè)總產(chǎn)值、城市的財(cái)政收入、城市居民人均生活費(fèi)收入與支出等。任何一個(gè)城市汽車保有量都與這些經(jīng)濟(jì)發(fā)展指標(biāo)相關(guān) , 并受其制約 , 特別在經(jīng)濟(jì)發(fā)展階段 , 經(jīng)濟(jì)水平是決定汽車保有量最主要的方面。在綜合考慮影響汽車保有量的諸多因素 , 本文選取人口、 GDP、人均 GDP、工業(yè)總產(chǎn)值、財(cái)政收入、居民年均收入、居民年均支出等 7 個(gè)因素作為影響指標(biāo) 。 5.2.2 汽車保有量預(yù)測(cè)模型 以 7個(gè)因素為輸入因子的 BP 神經(jīng)網(wǎng)絡(luò)模擬 。由于理論上已經(jīng)證明了三層網(wǎng)絡(luò)模型對(duì)于非線性系統(tǒng)具有較好的建模能力 , 因此 , 任一連續(xù)函數(shù)或映射均可由1 個(gè)三層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。在構(gòu)建汽車保有量預(yù)測(cè)神經(jīng)網(wǎng)絡(luò)模型 , 網(wǎng)絡(luò)層數(shù)的選擇上 , 選用三層網(wǎng)絡(luò)結(jié)構(gòu) , 即 1 個(gè)輸入層 , 1 個(gè)隱含層 , 1 個(gè)輸出層 , 由于輸入層與輸出層神經(jīng)元個(gè)數(shù)的增加會(huì)增加網(wǎng)絡(luò)的表達(dá)能力 , 同時(shí)還會(huì)增加其收斂速度和黑龍江工程學(xué)院本 科生畢業(yè)設(shè)計(jì) 38 噪聲干擾 , 為使模型既具有理論價(jià)值又有可操作性 , 在綜合考慮汽車保有量影響因素的條件下 , 將 7個(gè)因素作為輸入層 , 輸入層有 7個(gè)神經(jīng)元 , 隱層有 10個(gè)神經(jīng)元 , 輸出層有 1 個(gè)神經(jīng) 元 , 輸出層為預(yù)測(cè)目標(biāo)變量 , 即汽車保有量。 5.2.3 實(shí)例分析 下面以表 5.1 所列的某城市汽車保有量歷史數(shù)據(jù)為例闡述本文的預(yù)測(cè)方法。 表 5.1 某城市汽車保有量歷史數(shù)據(jù) 汽車保有量影響因素的有人口、 GDP、人均 GDP、工業(yè)總產(chǎn)值、財(cái)政收入、居民年均收入、居民年均支出等 7 個(gè)因素分別為 x 1、 x 2、 x 3、 x 4、 x 5、 x 6、 x 7汽車保有量隨年份的變化。 步驟如下所示: ( 1)打開(kāi) VC 進(jìn)行程序調(diào)試和鏈接,如圖 5.1 所示。 圖 5.1 調(diào)試后的界面 年 份 人口 /萬(wàn)人 GDP /萬(wàn)元 人均GDP/元 工業(yè)總產(chǎn)值 /萬(wàn)元 財(cái)政收入 /萬(wàn)元 居民年均收入 /元 居民年均支出 /元 汽車保有量/veh 1990 87.9 306867 1652 409349 45494 1149 1023 58041 1991 89.5 358603 1917 446049 49499 1281 1202 59621 1992 90.2 437264 2321 539506 56619 1544 1413 62713 1993 91.2 627291 3296 711990 71964 1981 1782 67725 1994 92.8 851636 4419 903052 85157 2735 2372 68930 1995 93.9 962001 4946 931036 95395 3008 2785 69802 1996 96.3 1137364 5762 1060061 133880 3934 3171 71311 1997 98.6 1280130 6388 1211278 154249 4335 3398 73521 1998 101.8 1430164 6977 1403100 173219 4739 3674 76308 1999 104.9 15642

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論