2015-12-21 52 views
4

我正在開發淡水質量管理設備,可用於湖泊和河流等淡水體。該項目是流傳於三個部分:正在使用BPNN進行水質管理和矯枉過正?

  1. 第一部分涉及的獲取參數,如pH值,濁度等
  2. 的使用採取基於參數糾正措施第二部分交易。例如,如果pH值太低,則該裝置將注入鹼性溶液以保持pH值爲7-7.5。
  3. 現在第三部分是基於所獲得的參數(pH /濁度等)預測湖泊健康狀況。預測算法應考慮參數並在它們之間建立相關關係來解釋湖泊將維持多長時間。要做到這一點,我目前傾向於使用BP神經網絡(BP神經網絡)偏置爲我發現,多個其他人/機構喜歡NN水質管理。*

現在我關心的是,是否使用BP神經網絡會對這個項目來說是否過火?如果是,我應該選擇哪種方法/工具?

* 123

+1

反向傳播是微分計算方法,而不是網絡類型。這裏的網絡類型是前饋網絡。它可以用來解決你的問題,看起來像你需要線性輸出層(用於迴歸問題)。它並不過分,但您也可以嘗試使用線性迴歸或多項式迴歸。 –

回答

8

做一些 「它曾經是」 is not always the best idea的方式。一般來說,如果你沒有強,分析原因要選擇不應該永遠開始使用它神經網絡。神經網絡訓練非常棘手,擁有大量超參數,非確定性和計算成本昂貴。 總是從最簡單的模型開始,只有當它產生不良結果時纔會移動到更復雜的模型。從理論上的視角來看,Vapnik定理強有力地證明了它的正確性,並且從實際上來看它類似於編程中的敏捷方法。

那麼從哪裏開始?

  1. 線性迴歸(嶺迴歸,套索)
  2. 多項式迴歸
  3. KNN迴歸
  4. RBF網絡
  5. 隨機森林Regresor

如果所有的人都失敗 - 想想「古典「神經網絡。但機會相當小。

2

反向傳播(BP)是用於使用梯度下降學習人工神經網絡模型參數的方法。它以有效的方式計算梯度。還有其他方法來訓練這些模型,但由於許多原因,BP更常用。我對項目規模和收集的數據量一無所知,但如果示例數量很大,神經網絡會更有效。如果你有10個屬性(pH值,濁度...),並且可能超過2-3k個例子,那麼神經網絡可能會有所幫助。

但是,你不應該認爲神經網絡是有史以來的模型。您需要嘗試不同的型號並選擇能夠提供最佳性能的型號。

4

神經網絡是一個函數逼近器。如果你有什麼是輸入的實值向量,並且與這些向量中的每一個相關聯,那麼你就有一個目標實數或分類,例如「好」,「壞」,「紅色」等,那麼神經網絡可以被用來解決你的問題。 神經網絡最簡單的形式是函數形式n(x):= g(Wh(Ax + b)+ c),其中A和W是矩陣,b和c是向量,h是分量 - 非線性函數,通常是一個sigmoid函數,g是一個函數,其值與目標空間的值相同。 在你的情況下,你的輸入矢量,如上面的x表示,將包含pH值,濁度等,你的目標是湖將維持多長時間。如果您的網絡得到了「訓練」,它將能夠在給定一個看不見的輸入的情況下(對pH和濁度等進行新的測量),計算湖泊持續時間的近似值。 「訓練」神經網絡包括選擇A,W,b,c的參數。這些參數中有多少取決於您爲A和W選擇了多少列(因此也取決於b和c)。選擇這些參數的一種方法是使函數n(x)接近您在所有歷史(訓練)示例中的實際測量目標。更具體地說,選擇A,W,b,c以最小化E(A,W,b,c):其中t(x)是你歷史測量的目標當在x)中測量pH和濁度時,該湖持續多長時間。一種嘗試使E比A,W,b,c最小的方法是計算E相對於每個參數的梯度,然後通過稱爲反向傳播的算法向梯度的負值邁進一步。

我想要說明的是,當參數固定時,神經網絡的計算是確定性的,但是有一些算法用於計算E不確定性的梯度。其他一些算法是確定性的。

所以,所有的背景,是神經網絡矯枉過正你的項目?這取決於你試圖從你的觀察到你試圖預測的輸出的近似函數。一個神經網絡是否會給你很好的預測準確度取決於很多因素,其中最重要的可能是你需要訓練多少個例子。如果相對於預測因子的數量沒有很多訓練樣例,神經網絡可能不是您想要的,但大多數情況下,這是一個經驗問題,而不是理論問題。

好的是,如果你願意使用python,那麼有很好的庫可以讓你對這些測試非常簡單。如果你嘗試一個神經網絡,但它不能給你很好的預測,還有很多其他的迴歸方法可以嘗試。你可以嘗試線性迴歸(這是一個神經網絡的特例),或者例如一個隨機森林。如果你使用sklearn進行線性迴歸和隨機森林,所有這些都很容易在Python中進行編碼。有幾個神經網絡庫可以讓他們玩起來很容易。我建議神經網絡張量流。

我的建議是花一點時間嘗試幾種方法。對於這樣一個相對簡單的預測問題,訓練網絡的時間應該很短。您可能聽說過的幾天或幾周的較長時間是大規模數據集,包含數百萬甚至數十億訓練示例和數百萬個參數。

這裏http://pastebin.com/KrUAX9je是我創建 「學習」 來近似函數f的玩具神經網絡(A,B,C)=一個b℃。

相關問題