亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于門控循環(huán)單元網(wǎng)絡(luò)的農(nóng)產(chǎn)品價(jià)格預(yù)測模型構(gòu)建

        2022-02-09 03:25:20王桂紅劉向鋒
        關(guān)鍵詞:大蒜個數(shù)神經(jīng)元

        王桂紅, 潘 棟, 劉向鋒

        (沈陽農(nóng)業(yè)大學(xué) 信息與電氣工程學(xué)院, 沈陽 110866)

        0 引 言

        隨著我國農(nóng)業(yè)現(xiàn)代化的發(fā)展和信息技術(shù)的進(jìn)步,利用農(nóng)產(chǎn)品市場交易過程中積累的歷史數(shù)據(jù)信息進(jìn)行短期價(jià)格預(yù)測對指導(dǎo)農(nóng)業(yè)生產(chǎn)、消費(fèi)具有重要意義。例如利用價(jià)格預(yù)測可以避免農(nóng)產(chǎn)品價(jià)格的劇烈波動導(dǎo)致市場供需失衡的問題[1]。傳統(tǒng)的預(yù)測模型有基于回歸分析法建立的回歸模型和基于時(shí)間序列法構(gòu)建的ARIMA模型[2],這類模型通常適用于平穩(wěn)的線性序列數(shù)據(jù),在處理復(fù)雜的非線性時(shí)序數(shù)據(jù)時(shí),預(yù)測值與真實(shí)值會有較大偏差。而神經(jīng)網(wǎng)絡(luò)具有良好的并行處理、自組織以及自調(diào)整性,其中門控循環(huán)單元網(wǎng)絡(luò)GRU(gate recurrent unit,GRU)引入了更新門和重置門的概念,這改變了循環(huán)神經(jīng)網(wǎng)絡(luò)中隱藏狀態(tài)的計(jì)算方式[3],因此基于GRU構(gòu)建的模型可以捕捉時(shí)間序列中時(shí)間步較大的依賴關(guān)系[4],更適合處理海量數(shù)據(jù)和非線性問題[5]。實(shí)驗(yàn)部分首先構(gòu)建數(shù)據(jù)集,再利用Dropout方法抑制過擬合模型,通過對比實(shí)驗(yàn)調(diào)節(jié)訓(xùn)練輪次、網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)等超參數(shù)。根據(jù)消融實(shí)驗(yàn)選擇合適的損失函數(shù)與優(yōu)化器,最終建立預(yù)測準(zhǔn)確率較高與效率最佳的預(yù)測模型。

        1 數(shù)據(jù)規(guī)范化

        1.1 規(guī)范名稱數(shù)據(jù)

        原始的農(nóng)產(chǎn)品信息通常是不規(guī)范的。本研究以大蒜為例,名稱包括紫皮大蒜、白皮大蒜、山東大蒜等,對于價(jià)格沒有顯著差別的同種產(chǎn)品,細(xì)分名稱類別對預(yù)測精度沒有提升,因而將名稱統(tǒng)稱為大蒜,批量修改數(shù)據(jù)表中名稱列的內(nèi)容:Update vegetable set name=“大蒜”。

        1.2 規(guī)范價(jià)格數(shù)據(jù)

        以大蒜的某條價(jià)格記錄為例,其字段為“3.3元/公斤”。因?yàn)閮r(jià)格預(yù)測需保留數(shù)字部分,剔除價(jià)格單位,所以從字段左側(cè)起,剔除每一個非數(shù)字的字符,“元/公斤”包含4個字符,需要執(zhí)行4次mysql的更新語句:

        Update vegetable set vegetable.price=left(vegetable.price, char_length(vegetable.price)-1)where right(vegetable.price,1)not in(′0′,′1′,′2′,′3′,′4′,′5′,′6′,′7′,′8′,′9′)。

        1.3 規(guī)范地區(qū)信息

        使用正則表達(dá)式解析農(nóng)產(chǎn)品產(chǎn)地信息中的字段,例如將“湖北省武漢市江岸區(qū)”劃分為省市區(qū)3級,第1級為湖北(省|自治區(qū)|直轄市),第2級為武漢(市|區(qū)|縣|自治州),第3級為江岸(區(qū)|鄉(xiāng)|鎮(zhèn))。正則表達(dá)式如下:

        (?〈Province〉[^省]+省|.+自治區(qū))(?〈City〉[^自治州]+自治州|[^市]+市|[^盟]+盟|[^地區(qū)]+地區(qū)|.+區(qū)劃)(?〈County〉[^市]+市|[^縣]+縣|[^旗]+旗|.+區(qū))?(?〈Town〉[^區(qū)]+區(qū)|.+鎮(zhèn))?(?〈Village〉.*)。

        1.4 農(nóng)產(chǎn)品時(shí)序數(shù)據(jù)預(yù)處理

        時(shí)間序列數(shù)據(jù)最關(guān)鍵的特征是序列性,價(jià)格數(shù)據(jù)隨著時(shí)間序列而變化。為保證數(shù)據(jù)的時(shí)序一致性,首先將數(shù)據(jù)表中的價(jià)格按時(shí)間先后進(jìn)行升序排列,在處理缺失數(shù)據(jù)時(shí),若缺失時(shí)間點(diǎn)較少,則使用該點(diǎn)附近的平均值作為該點(diǎn)的數(shù)據(jù)填充[6];若缺失時(shí)間點(diǎn)較為密集并且跨度較大,填充失去意義,則將缺失時(shí)間點(diǎn)剔除不作處理,對于重復(fù)數(shù)據(jù)則取均值進(jìn)行去重。

        通過對原始數(shù)據(jù)進(jìn)行線性變換,將價(jià)格特征數(shù)據(jù)縮放到[0,1][7-8],消除數(shù)據(jù)的量綱與大小帶來的影響。本研究使用的數(shù)據(jù)歸一化方法是最大最小標(biāo)準(zhǔn)化,公式如下:

        (1)

        式中:x′代表處理完成的數(shù)據(jù);x為當(dāng)前時(shí)刻該特征的真實(shí)值;xmax和xmin表示的是原始數(shù)據(jù)集在該時(shí)間區(qū)間內(nèi)的最大值和最小值[9]。在處理完成之后再對數(shù)據(jù)進(jìn)行反歸一化處理,將數(shù)據(jù)映射到原有數(shù)量級上,從而更直觀地反映數(shù)據(jù)變化情況。

        2 GRU價(jià)格預(yù)測

        2.1 基于GRU構(gòu)建價(jià)格預(yù)測模型

        2.1.1 構(gòu)建數(shù)據(jù)集

        經(jīng)過歸一化的數(shù)據(jù)需要劃分為訓(xùn)練集和驗(yàn)證集,為避免出現(xiàn)使用未來數(shù)據(jù)預(yù)測歷史數(shù)據(jù)的情況,本研究采用時(shí)間序列交叉驗(yàn)證法代替隨機(jī)樣本法來劃分訓(xùn)練集與驗(yàn)證集,也稱為滾動交叉驗(yàn)證[10]。

        首先定義變量Training set=dataset[:′2018′].iloc[:, 1∶2].values,把訓(xùn)練集通過日期索引獲取初始日期到2018年之間的大蒜價(jià)格數(shù)據(jù),再根據(jù)下標(biāo)來獲取第一列的數(shù)據(jù)作為訓(xùn)練集Training set,將2019年1月、2月的數(shù)據(jù)作為驗(yàn)證集Test set,訓(xùn)練集與驗(yàn)證集占比分別為70%和30%,它們均以Price這一列作為特征值[11]。

        以60個時(shí)間步為一個樣本,定義一個輸出為大蒜的預(yù)測價(jià)格,通過for循環(huán)用歸一化以后的數(shù)據(jù)來構(gòu)建序列數(shù)據(jù)集,參數(shù)為時(shí)間步和樣本數(shù)量[12],第一個參數(shù)為i-60,選取第一個維度的大蒜價(jià)格作為訓(xùn)練集的特征向量,再用數(shù)據(jù)集末尾最后的一個樣本作為驗(yàn)證集的特征向量。

        2.1.2 構(gòu)建初始模型

        GRU的網(wǎng)絡(luò)容量一般與網(wǎng)絡(luò)中可訓(xùn)練參數(shù)成正比,即神經(jīng)元數(shù)量和網(wǎng)絡(luò)層數(shù)越多,網(wǎng)絡(luò)的擬合能力越強(qiáng),但是存在著訓(xùn)練速度慢和過擬合的問題[13]。實(shí)驗(yàn)初始模型構(gòu)建如下:

        通過Sequential()創(chuàng)建GRU序列模型model_gru:model_gru = Sequential()。

        將模型增加GRU層, input_shape是序列長度,特征為1,驗(yàn)證設(shè)定激活函數(shù)為Tanh。加入全連接層:

        model_gru.add(GRU(48,return_sequences=True,input_shape=(x_train.shape[1],1), activation=′Tanh′))。

        再調(diào)用compile編譯模型, 優(yōu)化器Optimizer使用隨機(jī)梯度下降法SGD,設(shè)置學(xué)習(xí)率learning_rate為0.01,損失率decay為1e-7,沖量momentum為0.9,損失函數(shù)采用均方誤差MSE:

        model_gru.compile(optimizer=SGD(learning_rate=0.01, decay=1e-7, momentum=0.9), loss=′mse′)

        預(yù)測的是一個值,輸出層數(shù)為1: model_gru.add(Dense(1))。

        將驗(yàn)證集Training set作為參數(shù),最終通過預(yù)測函數(shù)得出預(yù)測值GRU_predict。

        2.1.3 模型優(yōu)化方法

        Dropout方法修改了訓(xùn)練中的學(xué)習(xí)過程, 通過禁止特征檢測器之間的相互作用,減輕了模型對于局部特征的依賴程度,同時(shí)也提高了模型的泛化能力,提升網(wǎng)絡(luò)的性能,避免了過擬合的情況[14]。

        將GRU網(wǎng)絡(luò)加上Dropout層,固定輸入輸出神經(jīng)元不變,通過model_gru.add(Dropout(0.2))來隨機(jī)刪除運(yùn)行時(shí)批次中的20%隱藏神經(jīng)元,減少隱藏層節(jié)點(diǎn)間的相互作用。

        2.2 GRU模型參數(shù)確定

        2.2.1 對比實(shí)驗(yàn)

        在分析數(shù)據(jù)量的大小與特征的基礎(chǔ)上,確定批次大小batch_size為32,將訓(xùn)練輪次、網(wǎng)絡(luò)層數(shù)等超參進(jìn)行組合,設(shè)計(jì)對比實(shí)驗(yàn),具體參數(shù)設(shè)置見表1。

        表1 參數(shù)名稱與參數(shù)值表

        使用fit函數(shù)訓(xùn)練模型,在GRU層與全連接層均為1,神經(jīng)元為48的情況下,不同訓(xùn)練輪次的運(yùn)行結(jié)果如圖2所示。

        (a) 50訓(xùn)練輪次損失(b) 100訓(xùn)練輪次損失(c) 200訓(xùn)練輪次損失(d)最優(yōu)訓(xùn)練輪次損失

        (a) 16個神經(jīng)元訓(xùn)練結(jié)果(b) 32個神經(jīng)元訓(xùn)練結(jié)果(c) 48個神經(jīng)元訓(xùn)練結(jié)果

        損失Loss為模型誤差,實(shí)驗(yàn)誤差率均以百分比衡量再化簡符號,例如9.95%的誤差定義為0.099 5。由圖1(a)、圖1(b)和圖1(c)可知,當(dāng)Epoch為50時(shí),誤差為0.099 5,當(dāng)Epoch為100時(shí),誤差為0.083 6,當(dāng)Epoch為200時(shí),誤差為0.086 4。因此確定最佳訓(xùn)練輪次為100,將模型按最佳輪次進(jìn)行迭代,如圖1(d)所示,最終誤差降到0.036 5。固定網(wǎng)絡(luò)層數(shù),組合不同神經(jīng)元個數(shù)的多次實(shí)驗(yàn),當(dāng)網(wǎng)絡(luò)層數(shù)均為1時(shí),實(shí)驗(yàn)結(jié)果見表2。

        表2 神經(jīng)元個數(shù)與損失值關(guān)系

        由表2可知,在保持訓(xùn)練輪次和模型層數(shù)不變的情況下,當(dāng)神經(jīng)元個數(shù)為16時(shí),誤差為0.084 5;當(dāng)神經(jīng)元個數(shù)為32時(shí),誤差為0.073 6;當(dāng)神經(jīng)元個數(shù)為48時(shí),誤差為0.081 4,即最佳神經(jīng)元個數(shù)為32。不同神經(jīng)元個數(shù)運(yùn)行的預(yù)測結(jié)果如圖3所示。

        運(yùn)行結(jié)果展示了真實(shí)價(jià)格與預(yù)測價(jià)格的走勢和對比情況,藍(lán)色折線為真實(shí)值,橙色折線為預(yù)測值。其中圖2(a)展示的是16個神經(jīng)元的訓(xùn)練結(jié)果,預(yù)測曲線較為平穩(wěn),在價(jià)格峰值和谷值時(shí),預(yù)測值與實(shí)際值差距較大,圖2(b)為32個神經(jīng)元的訓(xùn)練結(jié)果,預(yù)測值能準(zhǔn)確地描述出價(jià)格波動的情況,比圖2(c)的48個神經(jīng)元的預(yù)測結(jié)果更貼近真實(shí)值曲線。將GRU層數(shù)、全連接層數(shù)與神經(jīng)元個數(shù)進(jìn)行組合實(shí)驗(yàn),結(jié)果表明神經(jīng)元個數(shù)為32時(shí)模型精度最高。通過多次組合實(shí)驗(yàn),得出最佳超參數(shù)組合為:訓(xùn)練輪次100、GRU與全連接均為3層、神經(jīng)元個數(shù)為32。

        2.2.2 消融實(shí)驗(yàn)

        初始模型的優(yōu)化器使用的是SGD,即無動量的隨機(jī)梯度下降,指定了學(xué)習(xí)率和衰減值,SGD的高方差振蕩使網(wǎng)絡(luò)難以穩(wěn)定收斂。Adam在SGD的基礎(chǔ)上增加一階動量和二階動量[15],在迭代的過程中學(xué)習(xí)率可隨梯度的變化而動態(tài)調(diào)整。通過優(yōu)化相關(guān)方向的訓(xùn)練和弱化無關(guān)方向的振蕩,將更新向量的分量添加到當(dāng)前更新向量,達(dá)到加速訓(xùn)練的效果。因此,將優(yōu)化器更換為Adam來研究動量對于網(wǎng)絡(luò)的影響。

        初始模型使用的激活函數(shù)為Tanh,在訓(xùn)練時(shí)出現(xiàn)端值并趨于飽和時(shí)會導(dǎo)致訓(xùn)練速度減慢,將激活函數(shù)更換為非飽和激活函數(shù)Relu來研究減輕梯度消失對模型的影響。

        使用已確定的超參數(shù)再對優(yōu)化器和激活函數(shù)進(jìn)行組合,設(shè)計(jì)消融實(shí)驗(yàn),各參考設(shè)置見表3。

        表3 優(yōu)化器與激活函數(shù)組合表

        通過更換優(yōu)化器和激活函數(shù)完成消融實(shí)驗(yàn),實(shí)驗(yàn)誤差率如圖3所示。實(shí)驗(yàn)組的誤差率分別為:0.058 3,0.047 6,0.055 3,0.043 5,其中實(shí)驗(yàn)4組的誤差率最小為0.043 5。

        圖3 實(shí)驗(yàn)誤差率

        圖4顯示了實(shí)驗(yàn)的運(yùn)行耗時(shí),4組實(shí)驗(yàn)運(yùn)行時(shí)間分別為:14.8,12.5,13.6,10.8 min。其中第4組運(yùn)行時(shí)間最短,為10.8 min。模型預(yù)測數(shù)據(jù)的準(zhǔn)確程度如圖5所示。

        圖4 實(shí)驗(yàn)運(yùn)行時(shí)間

        (a) 實(shí)驗(yàn)1組(b) 實(shí)驗(yàn)2組(c) 實(shí)驗(yàn)3組(d) 實(shí)驗(yàn)4組

        從圖5可以看出,預(yù)測價(jià)格和真實(shí)值大多集中在3元到4.5元之間。圖5(a)的實(shí)驗(yàn)1組中預(yù)測曲線整體符合真實(shí)價(jià)格走勢情況,但當(dāng)價(jià)格劇烈波動產(chǎn)生極大值與極小值時(shí),預(yù)測曲線表現(xiàn)得不夠明顯;圖5(b)的實(shí)驗(yàn)2組與1組的前期預(yù)測曲線較為接近,但2組的預(yù)測值偏高,后期預(yù)測值更接近真實(shí)值;圖5(c)的實(shí)驗(yàn)3組整體預(yù)測值偏低,偏離實(shí)際值的峰值曲線較多,比較符合價(jià)格下跌的曲線;圖5(d)的實(shí)驗(yàn)4組不論是價(jià)格上升還是下降,預(yù)測曲線都較好地描述了價(jià)格波動的特征。實(shí)驗(yàn)表明實(shí)驗(yàn)4組的預(yù)測效果最好,即在增加動量和使用非飽和激活函數(shù)并且減輕梯度消失的情況下,模型的準(zhǔn)確度較高。因此,模型的優(yōu)化器應(yīng)選擇Adam,激活函數(shù)選擇Relu。

        3 結(jié) 語

        通過對比實(shí)驗(yàn)與消融實(shí)驗(yàn)對初始模型進(jìn)行調(diào)節(jié)優(yōu)化,最終預(yù)測模型的結(jié)構(gòu)與相關(guān)參數(shù)如下:神經(jīng)網(wǎng)絡(luò)使用GRU、訓(xùn)練輪次為100次、GRU層數(shù)和全連接層數(shù)均為3層、神經(jīng)元個數(shù)為32個,優(yōu)化器使用Adam,激活函數(shù)選取Relu。最優(yōu)超參的GRU模型預(yù)測準(zhǔn)確率較高并且運(yùn)行耗時(shí)短。本研究搭建的最佳預(yù)測模型的普適性強(qiáng),將大蒜的價(jià)格時(shí)序數(shù)據(jù)替換為其他農(nóng)產(chǎn)品的價(jià)格時(shí)序數(shù)據(jù),亦可做出相應(yīng)的短期價(jià)格預(yù)測。

        猜你喜歡
        大蒜個數(shù)神經(jīng)元
        《從光子到神經(jīng)元》書評
        自然雜志(2021年6期)2021-12-23 08:24:46
        種植大蒜要注意啥
        怎樣數(shù)出小正方體的個數(shù)
        等腰三角形個數(shù)探索
        怎樣數(shù)出小木塊的個數(shù)
        大蒜養(yǎng)生法
        金橋(2018年1期)2018-09-28 02:24:48
        怎樣數(shù)出小正方體的個數(shù)
        種大蒜
        躍動的神經(jīng)元——波蘭Brain Embassy聯(lián)合辦公
        防病抑咳話大蒜
        海峽姐妹(2018年5期)2018-05-14 07:37:15
        岛国精品一区二区三区| 欧美激情一区二区三区| 国产性生大片免费观看性| 最新国产日韩AV线| 免费无码肉片在线观看| 国产成人福利在线视频不卡| 午夜视频一区二区在线观看| 亚洲天堂av中文字幕在线观看| 在线看无码的免费网站| 特级婬片国产高清视频| 精品无码久久久九九九AV| 国产女主播强伦视频网站| 五月婷婷开心六月激情| 欧美激情一区二区三区| 亚洲天堂2017无码中文| 亚洲免费观看一区二区三区| 中文字幕文字幕一区二区| 国产自国产自愉自愉免费24区 | 欧美性生交大片免费看app麻豆| 青青草视频免费观看| 无码Av在线一区二区三区| 国产精品丝袜美女久久| 无码人妻久久一区二区三区蜜桃| 少妇对白露脸打电话系列| 国内精品91久久久久| 久久精品亚洲94久久精品| 亚洲乱亚洲乱妇| 无码的精品免费不卡在线| 超短裙老师在线观看一区| 国产麻豆一区二区三区在| 欧美xxxxx高潮喷水麻豆| 国产成人乱色伦区| 色播在线永久免费视频网站| 亚洲精品女同在线观看| 国产亚洲精品美女久久久久| 国产97在线 | 免费| 国产精品麻豆A啊在线观看| 中文字幕亚洲精品在线免费| 国产乱国产乱老熟300部视频| 久久狠狠高潮亚洲精品暴力打 | 日韩精品人妻系列无码专区免费 |