南美白對(duì)蝦圍塘養(yǎng)殖水質(zhì)預(yù)測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明專利涉及水質(zhì)預(yù)測(cè)方法,尤其涉及一種南美白對(duì)蝦圍塘養(yǎng)殖水質(zhì)預(yù)測(cè)方 法。
【背景技術(shù)】
[0002] 隨著水產(chǎn)養(yǎng)殖技術(shù)的發(fā)展,養(yǎng)殖規(guī)模的擴(kuò)大,如何減小養(yǎng)殖的風(fēng)險(xiǎn),提高養(yǎng)殖的收 益成了重要的課題,而水產(chǎn)養(yǎng)殖的重中之重,就是為水產(chǎn)提供良好的生存生長(zhǎng)的環(huán)境,也就 是說,如何保持一個(gè)良好的水質(zhì)是減小養(yǎng)殖風(fēng)險(xiǎn)的關(guān)鍵。農(nóng)業(yè)上可以通過在養(yǎng)殖地設(shè)立傳 感器組的方式對(duì)水質(zhì)進(jìn)行監(jiān)測(cè),然而大范圍的養(yǎng)殖用水有體量大,變化緩慢的特點(diǎn),在發(fā)現(xiàn) 水質(zhì)超出報(bào)警邊界時(shí)采取補(bǔ)救措施可能并不能及時(shí)的挽回?fù)p失,所以有必要對(duì)水質(zhì)進(jìn)行前 饋控制,及時(shí)發(fā)現(xiàn)并消除有可能的水質(zhì)惡化。
[0003] 目前人工神經(jīng)網(wǎng)絡(luò)因?yàn)槠淞己玫姆蔷€性擬合特性,對(duì)于解決水質(zhì)問題有出色的表 現(xiàn),在水質(zhì)評(píng)價(jià),水質(zhì)預(yù)測(cè),水質(zhì)識(shí)別等方面都有應(yīng)用。但是如果要求神經(jīng)網(wǎng)絡(luò)適應(yīng)整個(gè)水 產(chǎn)養(yǎng)殖過程的預(yù)測(cè)要求,神經(jīng)網(wǎng)絡(luò)需要對(duì)整個(gè)養(yǎng)殖過程的大量數(shù)據(jù)進(jìn)行多次的有效學(xué)習(xí)。 學(xué)習(xí)的時(shí)間成本和空間成本十分巨大。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)不足,提供一種快速高效的南美白對(duì)蝦圍塘養(yǎng)殖 水質(zhì)預(yù)測(cè)方法。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:
[0006] 這種南美白對(duì)蝦圍塘養(yǎng)殖水質(zhì)預(yù)測(cè)方法,包括如下步驟:
[0007] 第一步,水質(zhì)預(yù)測(cè)模型:
[0008] 為了保證神經(jīng)網(wǎng)絡(luò)對(duì)樣本具有足夠的輸入敏感性和良好的擬合性,對(duì)獲得的參數(shù) 做歸一化處理:
[0010] 其中,h為規(guī)范后的下線,lh為規(guī)范后的上線;
[0011] 設(shè)置神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為5K,K代表輸入的數(shù)據(jù)的組數(shù),每組數(shù)據(jù)都含有時(shí) 間、水溫、溶解氧、ΡΗ、和濁度五項(xiàng)因素,輸出層結(jié)點(diǎn)數(shù)設(shè)為5Μ,Μ代表輸出要求預(yù)測(cè)的時(shí)間長(zhǎng) 度;隱含層節(jié)點(diǎn)數(shù)根據(jù)輸入和輸出的要求確定;通過過去的數(shù)據(jù)來尋找水質(zhì)時(shí)間上的對(duì)應(yīng) 關(guān)系;以若干連續(xù)值作為輸入數(shù)據(jù),尋找下一時(shí)段的輸出值;調(diào)整權(quán)值之后,給Τ加1,即把神 經(jīng)網(wǎng)絡(luò)向右側(cè)挪動(dòng)一格,繼續(xù)進(jìn)行收斂,在這樣的大量次滾動(dòng)下,神經(jīng)網(wǎng)絡(luò)掌握水質(zhì)變化的 規(guī)律;
[0012] 預(yù)測(cè)模型為:
[0013] D(t+m)=F(D(t-l),D(t-2),D(t-3),D(t-4),· · .,D(t-k),)
[0014] 其中,D(t+m)表示預(yù)測(cè)m個(gè)時(shí)間單位后的時(shí)間信息,F(xiàn)表示神經(jīng)網(wǎng)絡(luò)的映射關(guān)系,D (t)表示t時(shí)間單位前的數(shù)據(jù);
[0015]第二步,改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法步驟:
[0016] 1)步長(zhǎng)動(dòng)量項(xiàng)可變
[0017] 首先由于串行輸入引起的誤差變化是隨機(jī)性的,符合X~N的統(tǒng)計(jì)規(guī)律,通過概率 統(tǒng)計(jì)的方法進(jìn)行排除;當(dāng)誤差上升過大時(shí),屬于小概率事件,認(rèn)定為是由于隨機(jī)性造成的;
[0018] 動(dòng)量項(xiàng)用在直線下降地帶,來加強(qiáng)收斂速度,而在等高線比較密集的地帶將動(dòng)量 項(xiàng)歸零,避免它帶來的不良影響;根據(jù)誤差的變化情況,分成五種處理方式:
[0019]當(dāng)誤差增長(zhǎng)過大時(shí),我們步長(zhǎng)進(jìn)行削減,把動(dòng)量項(xiàng)置為零,并且取消這四次收斂, 回到之前從新收斂;
[0020] 當(dāng)誤差出現(xiàn)增長(zhǎng),但是增長(zhǎng)情況并不大時(shí),判斷收斂處于復(fù)雜狀態(tài),將動(dòng)量項(xiàng)歸 零;
[0021] 當(dāng)誤差出現(xiàn)小幅下降時(shí),適當(dāng)?shù)募涌鞂W(xué)習(xí)速錄,并且把動(dòng)量項(xiàng)置為預(yù)設(shè)值的一半;
[0022] 但誤差出現(xiàn)大范圍的下降時(shí),適當(dāng)加快學(xué)習(xí)速錄,并且把動(dòng)量項(xiàng)置為預(yù)設(shè)值;
[0023]如此循環(huán),直到得到最終結(jié)果;
[0024] 2)模糊控制器
[0025] 為了判斷誤差值的變化是由輸入的隨機(jī)性造成的還是由神將網(wǎng)絡(luò)的收斂性造成 的,通過一個(gè)模糊的控制器來除去隨機(jī)性對(duì)算法造成的影響;輸入的誤差變化信號(hào)通過模 糊控制系統(tǒng),能夠輸出權(quán)值調(diào)整的指示信號(hào),具體過程如下:
[0026] 首先對(duì)輸入信號(hào)進(jìn)行如下處理,利用本次迭代與上一次的迭代的誤差值e作為數(shù) 據(jù),考量誤差值的變化率:
[0028] 對(duì)其進(jìn)行歸一處理:
[0030]系統(tǒng)通過隸屬度函數(shù),對(duì)X(n)信號(hào)進(jìn)行模糊處理,處理成為權(quán)值高速上升、權(quán)值中 速上升、權(quán)值低速上升、權(quán)值穩(wěn)定、誤差值低速下降、權(quán)值中速下降、權(quán)值高速下降七種情 況;并且把信號(hào)傳輸給控制規(guī)則;
[0031] 為了除去隨機(jī)輸入帶來的隨機(jī)性,對(duì)輸出的七種情況進(jìn)行計(jì)數(shù);計(jì)數(shù)的量越大,設(shè) 定對(duì)相應(yīng)調(diào)整的Μ值越尚;
[0032] 3)調(diào)整步長(zhǎng)
[0033] 得到了調(diào)整步長(zhǎng)的信號(hào),依據(jù)信號(hào)對(duì)步長(zhǎng)進(jìn)行調(diào)整。
[0034]本發(fā)明的有益效果是:
[0035] 1)提出了一種ΒΡ神經(jīng)網(wǎng)絡(luò)改進(jìn)算法用于水質(zhì)預(yù)測(cè)。改進(jìn)傳統(tǒng)ΒΡ神經(jīng)網(wǎng)絡(luò)算法存在 的收斂速度慢、步長(zhǎng)不可變、易陷入局部極小點(diǎn)等缺陷,給出了步長(zhǎng)可根據(jù)自身環(huán)境自動(dòng)確 定的、動(dòng)量自適應(yīng)的、具有模糊控制的改進(jìn)算法,用于養(yǎng)殖水質(zhì)預(yù)測(cè)。改進(jìn)后的算法具有避 免學(xué)習(xí)陷入局部極小點(diǎn)并提高收斂速度優(yōu)點(diǎn)。
[0036] 2)針對(duì)改進(jìn)的ΒΡ神經(jīng)網(wǎng)絡(luò)算法進(jìn)行了水質(zhì)預(yù)測(cè)的實(shí)驗(yàn)。通過反復(fù)檢驗(yàn)后的該算法 可進(jìn)行養(yǎng)殖水體的預(yù)測(cè)和預(yù)警。
【附圖說明】
[0037]圖1是本發(fā)明神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型示意圖;
[0038]圖2是模糊控制器示意圖;
[0039] 圖3是權(quán)值變換的隸屬度函數(shù)示意圖;
[0040] 圖4是步長(zhǎng)調(diào)整示意圖;
[0041 ]圖5是結(jié)合水質(zhì)模型的改進(jìn)方案示意圖;
[0042]圖6是傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法和本文改進(jìn)后的算法效果示意圖;
[0043]圖7至圖10是擬合結(jié)果圖;
[0044] 圖11至圖14是預(yù)測(cè)效果圖。
【具體實(shí)施方式】
[0045] 下面結(jié)合實(shí)施例對(duì)本發(fā)明做進(jìn)一步描述。下述實(shí)施例的說明只是用于幫助理解本 發(fā)明。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還 可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍 內(nèi)。
[0046] 為了利用現(xiàn)場(chǎng)移動(dòng)端獲得實(shí)時(shí)檢測(cè)數(shù)據(jù)對(duì)養(yǎng)殖用水進(jìn)行監(jiān)測(cè)和預(yù)警,以時(shí)間為預(yù) 測(cè)尺度以神經(jīng)網(wǎng)絡(luò)為工具對(duì)水溫、溶解氧、PH和濁度等因素進(jìn)行預(yù)測(cè),并通過預(yù)測(cè)值的大小 來對(duì)水質(zhì)參數(shù)進(jìn)行報(bào)警,這里各水質(zhì)指標(biāo)的檢測(cè)周期為1分鐘。
[0047] 為了保證神經(jīng)網(wǎng)絡(luò)對(duì)樣本具有足夠的輸入敏感性和良好的擬合性,對(duì)獲得的參數(shù) 做如下處理:
[0049] 其中,h為規(guī)范后的下線,lh為規(guī)范后的上線。
[0050] 設(shè)置神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為5K(K代表輸入的數(shù)據(jù)的組數(shù)),每組數(shù)據(jù)都含有 時(shí)間、水溫、溶解氧、ΡΗ、和濁度五項(xiàng)因素,輸出層結(jié)點(diǎn)數(shù)設(shè)為5Μ(Μ代表輸出要求預(yù)測(cè)的時(shí)間 長(zhǎng)度)。隱含層節(jié)點(diǎn)數(shù)根據(jù)輸入和輸出的要求確定。因?yàn)樗|(zhì)數(shù)據(jù)變化是一個(gè)漸變的過程, 所以可以通過過去的數(shù)據(jù)來尋找水質(zhì)時(shí)間上的對(duì)應(yīng)關(guān)系。水質(zhì)預(yù)測(cè)模型如圖1所示。以若干 連續(xù)值作為輸入數(shù)據(jù),尋找下一時(shí)段的輸出值。調(diào)整權(quán)值之后,給Τ加1,就是把下圖的神經(jīng) 網(wǎng)絡(luò)向右側(cè)挪動(dòng)一格,繼續(xù)進(jìn)行收斂,在這樣的大量次滾動(dòng)下,神經(jīng)網(wǎng)絡(luò)會(huì)掌握水質(zhì)變化的 規(guī)律。
[0051] 預(yù)測(cè)模型為:
[0052] D(t+m)=D(D(t-l),D(t-2),D(t-3),D(t-4),· · ·,D(t-k),)
[0053] 其中,D(t+m)表示預(yù)測(cè)m個(gè)時(shí)間單位后的時(shí)間信息,F(xiàn)表示神經(jīng)網(wǎng)絡(luò)的映射關(guān)系,D (t)表示t時(shí)間單位前的數(shù)據(jù);
[0054]由于采用串行輸入方式,這使得每次輸入網(wǎng)絡(luò)的數(shù)據(jù)會(huì)與上一次有所不同,所以 誤差在一定的范圍內(nèi)會(huì)出現(xiàn)突變,這種突變是自然而且必須的。但是這會(huì)對(duì)神經(jīng)網(wǎng)絡(luò)的步 長(zhǎng)控制提出更高的要求。
[0055]對(duì)于學(xué)習(xí)速率自適應(yīng)算法如何才能識(shí)別出誤差的變化是由于串行的輸入模式引 起的還是由于算法本身步長(zhǎng)太大引起的成為了一個(gè)新的問題。算法的響應(yīng)速度必須足夠快 速,因?yàn)轭A(yù)測(cè)本身是在和時(shí)間賽跑,所以必須采取辦法來提高BP算法的運(yùn)行速度,盡量減少 不成功的收斂時(shí)間。
[0056]步長(zhǎng)和動(dòng)量項(xiàng)可變的BP神經(jīng)網(wǎng)絡(luò)算法,結(jié)合了動(dòng)量法和學(xué)習(xí)速率自適應(yīng)算法,在 判斷誤差變化來源的基礎(chǔ)上利用學(xué)習(xí)速錄自適應(yīng)算法的思想實(shí)現(xiàn)對(duì)于動(dòng)量和學(xué)習(xí)速率的 自動(dòng)變化。期望在不加大原有算法復(fù)雜度的情況下,讓算法能夠智能的選取合適的學(xué)習(xí)速 率和動(dòng)量大小,高效的向下收斂,達(dá)到加速的效果。
[0057] 首先我們要判斷誤差的變化的引起的原因,一般由于串行輸入引起的誤差變化是 隨機(jī)性的,符合X~N的統(tǒng)計(jì)規(guī)律,所以我們可以通過概率統(tǒng)計(jì)的方法進(jìn)行排除。具體的方法 是改變誤差上升的判定條件,我們?cè)O(shè)計(jì)了模糊控制系統(tǒng)來對(duì)算法所處的收斂狀態(tài)進(jìn)行判 斷。當(dāng)誤差上升過大時(shí),比如大于原來誤差的50%,屬于小概率事件,我們直接認(rèn)定為是由 于隨機(jī)性造成的。
[0058] 由于動(dòng)量項(xiàng)在直線下降時(shí)有著很好的效果,但是在等高線比較密集的地帶表現(xiàn)出 不穩(wěn)定性,我們只動(dòng)量項(xiàng)用在直線下降地帶,來加強(qiáng)收斂速度,而在等高線比較密集的地帶 將動(dòng)量項(xiàng)歸零,避免它帶來的不良影響。我們根據(jù)誤差的變化情況,分成五種處理方式: [0059]當(dāng)我們發(fā)現(xiàn)誤差增長(zhǎng)過大時(shí),我們步長(zhǎng)進(jìn)行削減,把動(dòng)量項(xiàng)置為零,并且取消這四 次收斂,回到之前從新收斂。
[0060] 當(dāng)我們判定誤差出現(xiàn)增長(zhǎng),但是增長(zhǎng)情況并不大時(shí),我們判斷收斂處于復(fù)雜狀態(tài), 將動(dòng)量項(xiàng)歸零。
[0061] 當(dāng)我們判斷誤差出現(xiàn)小幅下降時(shí),我們適當(dāng)?shù)募涌鞂W(xué)習(xí)速錄,并且把動(dòng)量項(xiàng)置為 預(yù)設(shè)值的一半。
[0062] 但我們判斷誤差出現(xiàn)大范圍的下降時(shí),我們適當(dāng)加快學(xué)習(xí)速錄,并且把動(dòng)量項(xiàng)置 為預(yù)設(shè)值。
[0063] 如此循環(huán),直到得到我們的最終結(jié)果。
[