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