徐志陽(yáng) 張琪
【摘要】為了更加精準(zhǔn)地預(yù)測(cè)企業(yè)的最低安全庫(kù)存水平線,本文提出了利用模擬退火算法改進(jìn)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的設(shè)計(jì)思路。通過(guò)對(duì)A汽車(chē)企業(yè)配送中心的實(shí)際業(yè)務(wù)情況特定物料的安全庫(kù)存進(jìn)行研究,篩選出其中對(duì)安全庫(kù)存影響較大的五個(gè)因素。建立了基于SA-BP神經(jīng)網(wǎng)絡(luò)的安全庫(kù)存預(yù)測(cè)模型,并在模型仿真做出比對(duì)實(shí)驗(yàn)后采取分組實(shí)驗(yàn)交叉驗(yàn)證的方法,得出結(jié)論證明SA-BP神經(jīng)網(wǎng)絡(luò)模型在最小安全庫(kù)存預(yù)測(cè)上比BP神經(jīng)網(wǎng)絡(luò)具有更優(yōu)異的準(zhǔn)確性和高效性。 【關(guān)鍵詞】預(yù)測(cè) 安全庫(kù)存 BP神經(jīng)網(wǎng)絡(luò) 模擬退火算法 一、問(wèn)題的提出 在查閱大量的預(yù)測(cè)領(lǐng)域內(nèi)的相關(guān)文獻(xiàn)后發(fā)現(xiàn),隨著B(niǎo)P神經(jīng)網(wǎng)絡(luò)的現(xiàn)世與發(fā)展,其非凡的學(xué)習(xí)能力、非線性等特質(zhì)已經(jīng)漸漸地被挖掘成為安全庫(kù)存預(yù)測(cè)領(lǐng)域的實(shí)際應(yīng)用指導(dǎo)準(zhǔn)則。但通過(guò)一些專(zhuān)家學(xué)者的研究經(jīng)驗(yàn)來(lái)看,神經(jīng)網(wǎng)絡(luò)算法雖然可以較好的解決預(yù)測(cè)問(wèn)題,但由于容易陷入局部最小值和收斂速度的缺點(diǎn),真正應(yīng)用到企業(yè)后發(fā)現(xiàn)它的準(zhǔn)確性并不高。
為了嘗試解決這個(gè)問(wèn)題,首先,本文致力于通過(guò)對(duì)汽車(chē)配件供應(yīng)鏈現(xiàn)狀的研究,尋找影響汽車(chē)配件安全庫(kù)存的關(guān)鍵影響因素。根據(jù)實(shí)際的調(diào)研需求,對(duì)比國(guó)內(nèi)外安全庫(kù)存預(yù)測(cè)方案,選擇由模擬退火算法(sA)優(yōu)化神經(jīng)網(wǎng)絡(luò)的方式來(lái)建立預(yù)測(cè)模型,并通過(guò)模型的訓(xùn)練和測(cè)試結(jié)果來(lái)驗(yàn)證該模型的有效性。研究過(guò)程中發(fā)現(xiàn),通過(guò)sA算法具有可以改進(jìn)神經(jīng)網(wǎng)絡(luò)的參數(shù)從而有效避開(kāi)局部最小值,同時(shí)保持其快速收斂的特性。 二、影響因素分析 (二)庫(kù)存成本控制的關(guān)鍵因素 在目前國(guó)內(nèi)外對(duì)安全庫(kù)存的主要研究中,往往只考慮缺貨成本、需求頻率和提前期這幾個(gè)較為明顯的影響因素。而在實(shí)際運(yùn)營(yíng)過(guò)程中,依然有很多各式各樣的因子影響著安全庫(kù)存,并且具有強(qiáng)相關(guān)的非線性關(guān)系,而B(niǎo)P神經(jīng)網(wǎng)絡(luò)由于具有對(duì)非線性函數(shù)進(jìn)行任意n到m的映射關(guān)系,因此選擇神經(jīng)網(wǎng)絡(luò)能夠更好地預(yù)測(cè)企業(yè)的安全庫(kù)存。針對(duì)A企業(yè)的具體情況,本文選擇了采購(gòu)提前期、出庫(kù)頻率、缺貨成本、儲(chǔ)存成本、質(zhì)量等級(jí)等五個(gè)因素作為網(wǎng)絡(luò)的輸入,從而進(jìn)行安全庫(kù)存的模型預(yù)測(cè)。
對(duì)安全庫(kù)存影響因素和實(shí)際需求之間的相關(guān)性研究如表1所示。可以看出5個(gè)輸入層變量在相關(guān)性分析下有著很明顯的不相關(guān)性,因此可以考慮作為樣本數(shù)據(jù)來(lái)源。 三、安全庫(kù)存預(yù)測(cè)模型設(shè)計(jì) (一)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì) BP網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),是目前應(yīng)用最廣的一種神經(jīng)網(wǎng)絡(luò),BP網(wǎng)絡(luò)的模型結(jié)構(gòu)如圖1所示。BP網(wǎng)絡(luò)是一種具有三層或三層以上的神經(jīng)網(wǎng)絡(luò),包括輸入層、中間層(隱含層)和輸出層。上下層之間實(shí)現(xiàn)連接,而每層神經(jīng)元之間無(wú)連接。當(dāng)一對(duì)學(xué)習(xí)樣本提供給網(wǎng)絡(luò)后,神經(jīng)元的激活函數(shù)從輸入層經(jīng)個(gè)中間層向輸出層傳播,在輸出層的各神經(jīng)元獲得網(wǎng)絡(luò)輸入響應(yīng)。本文選擇最常用的激活函數(shù)為(0,1)即s型函數(shù),公式如下:
(二)隱含層節(jié)點(diǎn)數(shù)的確定
BP網(wǎng)絡(luò)隱含層的神經(jīng)元節(jié)點(diǎn)數(shù)的選擇對(duì)網(wǎng)絡(luò)的性能影響很大。確定最佳隱含層節(jié)點(diǎn)數(shù)的一個(gè)常用方法為試湊法。利用隱含層節(jié)點(diǎn)數(shù)的經(jīng)驗(yàn)公式,計(jì)算出隱含層節(jié)點(diǎn)數(shù)的粗略估計(jì)值,將其作為初始值,在此基礎(chǔ)上逐漸增加或減少隱含層節(jié)點(diǎn)數(shù),在同一樣本集內(nèi),設(shè)定同樣的目標(biāo)誤差,從中選取網(wǎng)絡(luò)性能較好且隱含層節(jié)點(diǎn)數(shù)較小的網(wǎng)絡(luò),該網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)即為所求。先設(shè)輸入神經(jīng)元個(gè)數(shù)m=5,對(duì)應(yīng)的輸出神經(jīng)元個(gè)數(shù)n=1,通過(guò)計(jì)算,得隱層數(shù)為3到13。隱含層節(jié)點(diǎn)數(shù)的設(shè)置對(duì)模型的效果非常重要,為了找出最優(yōu)個(gè)數(shù),本文分別嘗試將節(jié)點(diǎn)數(shù)設(shè)為3到13,每組都分別得到仿真結(jié)果。
實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)節(jié)點(diǎn)數(shù)為5時(shí),經(jīng)過(guò)4000次的訓(xùn)練后,仍達(dá)不到預(yù)測(cè)精度的要求,網(wǎng)絡(luò)性能無(wú)法達(dá)到應(yīng)用程度。而當(dāng)節(jié)點(diǎn)數(shù)為12時(shí),目標(biāo)誤差可以精確到適用范圍。在使用經(jīng)驗(yàn)法后可以發(fā)現(xiàn),大于10的隱含層節(jié)點(diǎn)數(shù),網(wǎng)絡(luò)雖然能夠達(dá)到設(shè)定的精度值,但這時(shí)增加節(jié)點(diǎn)數(shù),神經(jīng)網(wǎng)絡(luò)的性能改善程度很小,卻帶來(lái)了訓(xùn)練次數(shù)的翻倍增加,相應(yīng)的輸出能力變?nèi)?。因此,我們選擇10作為隱含層節(jié)點(diǎn)數(shù)。
(三)sA BP神經(jīng)網(wǎng)絡(luò)
基于模擬退火算法優(yōu)化的神經(jīng)網(wǎng)絡(luò),結(jié)合模擬退火算法的概率突跳特性與BP神經(jīng)網(wǎng)絡(luò)的非線性,用以解決在安全預(yù)測(cè)模型中,算法收斂速度慢,容易陷入局部極小值的問(wèn)題。采用模擬退火算法代替網(wǎng)絡(luò)的反向傳播過(guò)程,使得搜索點(diǎn)從一個(gè)初始點(diǎn)的溫度出發(fā),不斷迭代計(jì)算,逐步逼近最優(yōu)解,結(jié)合模擬退火算法的優(yōu)點(diǎn)來(lái)修正網(wǎng)絡(luò)的權(quán)值和閾值。
(1)誤差精確范圍。主要是依據(jù)問(wèn)題的要求來(lái)進(jìn)行設(shè)置。當(dāng)要求的精確度比較高時(shí),可以將該誤差設(shè)置成0.001,但是這種設(shè)置狀況下就不能確保很高的泛化能力。故在安全庫(kù)存的預(yù)測(cè)模型中設(shè)置了五個(gè)輸入值。設(shè)置誤差為0.01。
(2)模擬退火過(guò)程。對(duì)于初始對(duì)溫度的控制是一個(gè)難度比較大的過(guò)程。從概念上來(lái)看,初始溫度需要足夠高,才能更好地避開(kāi)局部誤差值。將溫度初始設(shè)置在使用sA算法時(shí)獲得的極小值的1000倍。
(四)sA BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果
通過(guò)Matlab單獨(dú)使用SA BP神經(jīng)網(wǎng)絡(luò)算法測(cè)試數(shù)據(jù)后,可以得出,當(dāng)?shù)螖?shù)達(dá)到2677次后,訓(xùn)練樣本的誤差接近0.01并趨于穩(wěn)定。
雖然在仿真實(shí)驗(yàn)中已經(jīng)可以看出該混合算法在安全庫(kù)存預(yù)測(cè)領(lǐng)域具有解決一定問(wèn)題的能力,但為了準(zhǔn)確、科學(xué)地分析sA BP神經(jīng)網(wǎng)絡(luò)庫(kù)存需求預(yù)測(cè)模型的可應(yīng)用性,還需做出數(shù)據(jù)上的比對(duì)才能得出結(jié)論。
(五)預(yù)測(cè)結(jié)果對(duì)比分析在BP神經(jīng)網(wǎng)絡(luò)模型多次實(shí)驗(yàn)中我們發(fā)現(xiàn)輸出結(jié)果容易出現(xiàn)一種誤差極值現(xiàn)象,從圖2上來(lái)看是這一波動(dòng)幅度較為劇烈。最大值可以達(dá)到5.24%,最小值卻只有0.64%。一個(gè)算法的優(yōu)化性能最主要的不是看其偶爾的顯著的優(yōu)化效果,更多時(shí)候相對(duì)穩(wěn)定的優(yōu)化效果更能體現(xiàn)出算法的實(shí)用意義。相比而言,SA BP模型經(jīng)過(guò)多次預(yù)測(cè)的平均誤差大多在1.68%左右穩(wěn)定波動(dòng)。算法改進(jìn)前后的誤差對(duì)比較為明顯,同時(shí),由于模擬退火算法自帶參數(shù)矯正的優(yōu)點(diǎn),改進(jìn)后的BP算法所受到樣本噪聲的影響也隨之變小了。
四、結(jié)論
一方面,BP神經(jīng)網(wǎng)絡(luò)是在預(yù)測(cè)領(lǐng)域中應(yīng)用最普遍的神經(jīng)網(wǎng)絡(luò)算法模型之一,該算法理論上有著和任意一個(gè)非線性函數(shù)擬合的能力,這使得該算法在應(yīng)用時(shí)具有良好的通用性,但是由于其是基于梯度下降的有教師學(xué)習(xí),所以應(yīng)用時(shí)容易陷于局部極小值并且具有收斂速度過(guò)慢,泛化能力弱等問(wèn)題。
另一方面,為了解決收斂速度這一問(wèn)題,本文提出了一種基于模擬退火算法的sA-BP混合算法,在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程中,其擁有可以加強(qiáng)動(dòng)態(tài)調(diào)整參數(shù)和不問(wèn)斷改善誤差收斂界限值的優(yōu)越性。由最后進(jìn)行的仿真對(duì)比實(shí)驗(yàn)表明,用該模型所得的測(cè)試結(jié)果平均誤差在要求的范圍之內(nèi)。改進(jìn)后的算法實(shí)現(xiàn)起來(lái)更為容易,其有效減少了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間,提高了網(wǎng)絡(luò)的整體收斂速度,實(shí)現(xiàn)了安全庫(kù)存預(yù)測(cè)對(duì)資源配置的科學(xué)性,從而更加合理的控制庫(kù)存成本,在應(yīng)用層面上也能夠促進(jìn)企業(yè)更好更快的發(fā)展。