本發明涉及一種基于afsa-bp神經網絡的濕度傳感器溫度補償方法,屬于傳感器軟補償技術領域。
背景技術:
人工魚群算法(afsaartificialfish-swarmalgorithm)是模仿魚類群體覓食的一種算法,和粒子群算法、蟻群算法相似,都是仿生類智能優化算法。在一片寬闊的水域中,魚能自行或尾隨其他魚找到營養物質多的地方,因而魚生存數目最多的地方一般就是本水域中營養物質最多的地方,人工魚群算法就是根據這一特點,通過構造人工魚來模仿魚群的覓食、聚群及追尾行為來解決組合優化問題的。在尋優過程中,每條人工魚根據它當前所處的環境情況(包括目標函數的變化情況和伙伴的變化情況)進行行為的選擇進而執行一種行為來更新自身的位置狀態。同時,通過與群體中最優個體魚信息的比較得到全局最優值信息,經過多次迭代尋優最終實現全局最優值的搜索。
了盡可能的消除溫度對濕度傳感器的影響,國內外許多學者從硬件電路補償和軟件補償這兩方面進行了研究。硬件補償受電路復雜性與成本昂貴等限制,很難實現整體的補償。軟件補償的方法有最小二乘法、多元回歸、bp神經網絡法等。最小二乘法在應用時,雖然算法比較簡單,收斂速度較快,但精度卻不是很高。多元回歸雖然建立了多變量間的線性因果關系,但是可能忽略了交互效應和非線性的因果關系。bp神經網絡是非線性優化,其權值是隨著局部改善的方向逐漸調整的,這樣容易出現局部極小問題,而且其目標函數越來越復雜,收斂速度也明顯變慢。
技術實現要素:
本發明所要解決的技術問題是克服現有技術的缺陷,提供一種基于afsa-bp神經網絡的濕度傳感器溫度補償方法,采用人工魚群優化算法來優化bp神經網絡的方法,通過人工魚群中個體的局部尋優找到全局最優權閾值,以此來優化bp神經網絡,建立了afsa-bp神經網絡的濕度傳感器溫度補償模型,補償溫度對濕度傳感器測量結果帶來的誤差。
為解決上述技術問題,本發明提供一種基于afsa-bp神經網絡的濕度傳感器溫度補償方法,其特征是,包括如下步驟:
1)初始化bp神經網絡結構及人工魚群的相關參數;
2)計算各條魚的適應度函數值f,取f最大值賦給公告板;
3)順序進行覓食、聚群、追尾行為,選f值最大的行為實際執行;
4)用f值最大人工魚更新公布板,記作bestf;
5)是否達到最大迭代次數,若未達到則回到步驟2),達到則輸出最優全閾值。
進一步的,所述步驟1)的相關參數包括人工魚群的群體規模m,迭代次數num,最大迭代次數try_number,感知距離visual、移動步長step,擁擠度因子σ。
進一步的,定義適應度函數值f為bp神經網絡輸出結果與期望值結果的誤差值e的倒數,
其中,n是訓練樣本集的維數:dij是第i個樣本的第j個網絡輸出層節點的理想輸出值,yij是第i個樣本的第j個網絡輸出層節點的實際輸出值。
進一步的,所述bp神經網絡結構采用三層神經網絡,輸入層節點數為2,隱含層節點數為5,輸出層節點數為1。
進一步的,所述步驟2)中,設初始的迭代次數num=0,在人工魚的感知范圍visual內,人工魚隨機生成m個人工魚個體,形成初始人工魚群;分別計算初始魚群中每條人工魚個體的適應度函數值f,通過比較適應度的大小,將適應度最大的人工魚個體記錄到公告牌中,同時將此人工魚個體復制給公告牌。
進一步的,所述步驟3)中,當yc/nf>σyi時,人工魚分別模擬進行追尾行為和聚群行為,將得到的f值較大行為進行實際執行,缺省行為方式為覓食行為,其中yi為人工魚感知范圍內的最大狀態,nf為xi感知范圍內所有人工魚數目,yc為xi感知范圍內所有人工魚中心位置的狀態,xi為人工魚i的當前狀態。
進一步的,所述步驟4)中,所有的人工魚每進行一次行動之后,都將當前的適應度函數值f與公告牌的適應度函數值進行比較,如果自身狀態優于公告牌狀態,就將自身狀態寫入并更新公告牌。
進一步的,所述步驟5)中,如果num達到最大迭代次數try_number,行為結束,輸出計算結果,即bp神經網絡的最優權閾值,否則num=num+1,轉步驟(2)。
進一步的,所述最大迭代次數在程序運行前進行設置,當人工魚迭代次數達到最大迭代次數,行為結束。
本發明所達到的有益效果:
本發明由于bp神經網絡算法本質上為梯度下降法,而它所要優化的目標函數有非常復雜,導致其存在很多缺陷:學習速度慢、易陷入局部極小、網絡結構選擇不一。而afsa算法是全局尋優的算法,具有很好的泛化能力。因此,將afsa與bp神經網絡相結合,通過bp神經網絡的全局尋優能力不但克服bp訓練神經網絡易陷入局部極小的缺陷,又提高了訓練速度,其補償效果遠遠高于bp網絡,該方法有效地抑制了溫度給濕度傳感器帶來的誤差,提高了傳感器測量的精確度。
附圖說明
圖1是溫度對濕度傳感器測量結果的影響;
圖2是afsa-bp算法的流程圖;
圖3是適應度曲線;
圖4是誤差曲線。
具體實施方式
下面結合附圖對本發明作進一步描述。以下實施例僅用于更加清楚地說明本發明的技術方案,而不能以此來限制本發明的保護范圍。
表1為實際測量的數據,即濕度傳感器在不同溫度條件下測量的濕度值。圖1為根據實驗數據繪出的在不同溫度和不同濕度條件下濕度傳感器的測量誤差曲線圖。
圖2為afsa-bp算法的流程圖。將人工魚群算法(fasa)與bp神經網絡相結合,就是利用人工魚群算法的全局尋化能力來克服bp神經網絡容易陷入局部極小的缺陷。假設人工魚群中的每一條人工魚代表一個bp神經網絡,需要優化的初始權閾值和人工魚的個體狀態一一對應,通過找到最優人工魚的位置得到最優的權閾值,然后用所得到的最優權閾值訓練bp神經網絡。定義人工魚群的適應度函數f為bp神經網絡輸出結果與期望值結果的誤差值e的倒數。
其中,n是訓練樣本集的維數:dij是第i個樣本的第j個網絡輸出層節點的理想輸出值,yij是第i個樣本的第j個網絡輸出層節點的實際輸出值。
(1)設定bp網絡結構:采用三層神經網絡,輸入層節點數為2.隱含層節點數為5,輸出層節點數為1。
(2)設定人工魚群的群體規模m,最大迭代次數try_number,感知距離visual、移動步長step,擁擠度因子σ。
(3)假設初始迭代次數num=0,在其感知范圍內,人工魚隨機生成m個人工魚個體,形成初始人工魚群。
(4)分別計算初始魚群中每條人工魚個體的適應度函數值f,通過比較適應度的大小,將適應度最大的人工魚個體記錄到公告牌中,同時將此人工魚個體復制給公告牌。
(5)每條人工魚分別模擬進行追尾行為和聚群行為,將得到的f值較大行為進行實際執行,缺省行為方式為覓食行為。
(6)所有的人工魚每進行一次行動之后,都將當前的適應度值f與公告牌的適應度值進行比較,如果自身狀態優于公告牌狀態,就將自身狀態寫入并更新公告牌。
(7)如果num達到最大迭代次數trynumber,行為結束,輸出計算結果,也就是bp神經網絡的最優權閾值,否則num=num+1,轉步驟(4)。
圖3表明進化代數進行到45代時,其適應度值已經達到最大,此時就找到了bp神經網絡的最優權閾值。
圖4中包括afsa-bp神經網絡的誤差曲線和bp神經網絡進行溫度補償后的誤差曲線圖,仿真結果表明,除了個別溫度點之外,afsa-bp神經網絡的預測誤差全部小于傳統bp神經網絡的預測誤差,說明afsa-bp神經網絡的補償精度較高,有效的避免bp神經網絡容易陷入局部極小的缺陷。
為了檢驗本發明提出afsa-bp神經網絡算法的效果,把該算法與傳統bp神經網絡方法進行了對比。在仿真過程中,當數據易復雜時,傳統bp神經網絡方法學習訓練速度就會變慢,容易陷入局部極小,嚴重影響了補償效果,而經過afsa算法優化后,擬合精度相對較高,收斂速度變快,補償效果得到了明顯的提高。
表2是利用afsa-bp神經網絡建立的模型訓練實驗數據,并對訓練的結果進行測試,將得到的實驗結果與用傳統bp神經網絡訓練、測試得到的結果進行對比,得到最后的濕度傳感器進行溫度補償后的部分數據。
本發明將afsa算法和bp神經網絡相結合,通過利用afsa的全局尋優能力不但改善了bp神經網絡易陷入局部極小的缺陷,又提高了訓練速度和學習精度,有效地補償了溫度對濕度傳感器產生的影響,提高了測量的精確度。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發明的保護范圍。